📄 des_sam.lst
字号:
00C9 EB 188 MOV A,R3
00CA 604A 189 JZ N_SHIF
00CC 7900 190 LLOP0A: MOV R1,#0H ;SET THE INITIATE ADDRESS SHIF VALUE
A51 MACRO ASSEMBLER DES_SAM 01/31/2008 15:07:52 PAGE 4
00CE C3 191 CLR C
00CF 9200 F 192 MOV D_TMP_B,C
00D1 E9 193 LP00A: MOV A,R1 ;GET THE Ci-1 BYTE
00D2 7C00 F 194 MOV R4,#Ci_ADDR ;
00D4 2C 195 ADD A,R4 ;
00D5 F8 196 MOV R0,A ;
00D6 E6 197 MOV A,@R0 ;
00D7 A200 F 198 MOV C,D_TMP_B ;
00D9 92E7 199 MOV ACC.7,C
00DB C3 200 CLR C
00DC 13 201 RRC A ;SHIF Ci
00DD 9200 F 202 WW00A: MOV D_TMP_B,C
00DF F6 203 MOV @R0,A
00E0 09 204 INC R1
00E1 B904ED 205 CJNE R1,#4,LP00A;
00E4 A200 F 206 MOV C,D_TMP_B
00E6 5008 207 JNC WW01A
00E8 7800 F 208 MOV R0,#Ci_ADDR
00EA E6 209 MOV A,@R0
00EB A200 F 210 MOV C,D_TMP_B
00ED 92E6 211 MOV ACC.6,C
00EF F6 212 MOV @R0,A
00F0 7900 213 WW01A: MOV R1,#0
00F2 C3 214 CLR C
00F3 9200 F 215 MOV D_TMP_B,C
216
00F5 E9 217 LP01A: MOV A,R1 ;GET THE Di-1 BYTE
00F6 7C00 F 218 MOV R4,#Di_ADDR ;
00F8 2C 219 ADD A,R4 ;
00F9 F8 220 MOV R0,A ;
00FA E6 221 MOV A,@R0 ;
00FB A200 F 222 MOV C,D_TMP_B ;
00FD 92E7 223 MOV ACC.7,C ;
00FF C3 224 CLR C
0100 13 225 RRC A ;SHIF Di
0101 9200 F 226 WW02A: MOV D_TMP_B,C
0103 F6 227 MOV @R0,A
0104 09 228 INC R1
0105 B904ED 229 CJNE R1,#4,LP01A;
0108 A200 F 230 MOV C,D_TMP_B
010A 5008 231 JNC WW03A
010C 7800 F 232 MOV R0,#Di_ADDR
010E E6 233 MOV A,@R0
010F A200 F 234 MOV C,D_TMP_B
0111 92E6 235 MOV ACC.6,C
0113 F6 236 MOV @R0,A
0114 DBB6 237 WW03A: DJNZ R3,LLOP0A
0116 020000 F 238 N_SHIF: LJMP SH_O
0119 EB 239 DES0: MOV A,R3
011A 7001 240 JNZ LLOP0B
011C 0B 241 INC R3
011D 7904 242 LLOP0B: MOV R1,#4H ;SET THE INITIATE ADDRESS SHIF VALUE
011F C3 243 CLR C
0120 9200 F 244 MOV D_TMP_B,C
0122 E9 245 LP00B: MOV A,R1 ;GET THE Ci-1 BYTE
0123 7C00 F 246 MOV R4,#Ci_ADDR ;
0125 1C 247 DEC R4 ;
0126 2C 248 ADD A,R4 ;
0127 F8 249 MOV R0,A ;
0128 E6 250 MOV A,@R0 ;
0129 A200 F 251 MOV C,D_TMP_B ;
012B 33 252 RLC A ;SHIF Ci
012C 30E703 253 JNB ACC.7,WW00B
012F B3 254 CPL C
0130 B2E7 255 CPL ACC.7
0132 9200 F 256 WW00B: MOV D_TMP_B,C
A51 MACRO ASSEMBLER DES_SAM 01/31/2008 15:07:52 PAGE 5
0134 F6 257 MOV @R0,A
0135 D9EB 258 DJNZ R1,LP00B ;
0137 A200 F 259 MOV C,D_TMP_B
0139 5009 260 JNC WW01B
013B 7800 F 261 MOV R0,#Di_ADDR
013D 18 262 DEC R0
013E E6 263 MOV A,@R0
013F A200 F 264 MOV C,D_TMP_B
0141 92E0 265 MOV ACC.0,C
0143 F6 266 MOV @R0,A
0144 7904 267 WW01B: MOV R1,#4H
0146 C3 268 CLR C
0147 9200 F 269 MOV D_TMP_B,C
0149 E9 270 LP01B: MOV A,R1 ;GET THE Di-1 BYTE
014A 7C00 F 271 MOV R4,#Di_ADDR ;
014C 1C 272 DEC R4
014D 2C 273 ADD A,R4 ;
014E F8 274 MOV R0,A ;
014F E6 275 MOV A,@R0 ;
0150 A200 F 276 MOV C,D_TMP_B ;
0152 33 277 RLC A ;SHIF Di
0153 30E703 278 JNB ACC.7,WW02B
0156 B3 279 CPL C
0157 B2E7 280 CPL ACC.7
0159 9200 F 281 WW02B: MOV D_TMP_B,C
015B F6 282 MOV @R0,A
015C D9EB 283 DJNZ R1,LP01B ;
015E A200 F 284 MOV C,D_TMP_B
0160 500B 285 JNC WW03B
0162 7400 F 286 MOV A,#Di_ADDR
0164 2403 287 ADD A,#3H
0166 F8 288 MOV R0,A
0167 E6 289 MOV A,@R0
0168 A200 F 290 MOV C,D_TMP_B
016A 92E0 291 MOV ACC.0,C
016C F6 292 MOV @R0,A
016D DBAE 293 WW03B: DJNZ R3,LLOP0B
294 ;SHIF IS OVER
016F 7E08 295 SH_O: MOV R6,#8H
0171 7A00 296 MOV R2,#0H ;SHIF VALUE OF PC_2 TABLE
297
0173 7C00 298 LLOP11: MOV R4,#0
0175 7D06 299 MOV R5,#6H ;LLOP110 VIABLE
0177 EC 300 LLOP110: MOV A,R4
0178 23 301 RL A
0179 FC 302 MOV R4,A
017A EA 303 MOV A,R2
017B 900000 F 304 MOV DPTR,#PC_2
017E 93 305 MOVC A,@A+DPTR
017F 0A 306 INC R2
0180 75F007 307 MOV B,#7
0183 84 308 DIV AB
0184 2400 F 309 ADD A,#Ci_ADDR
0186 F9 310 MOV R1,A ;GET THE ADDRESS OF BYTE IN C OR D
0187 E7 311 MOV A,@R1 ;GET THE VALUE OF BYTE IN C OR D
0188 F9 312 MOV R1,A
0189 E5F0 313 MOV A,B
018B 04 314 INC A
018C F4 315 CPL A
018D 5407 316 ANL A,#07H
018F 600B 317 JZ N_LLOP3
0191 F5F0 318 MOV B,A
0193 7401 319 MOV A,#1
0195 23 320 LOP: RL A
0196 D5F0FC 321 DJNZ B,LOP
0199 020000 F 322 LJMP E_LLOP3
A51 MACRO ASSEMBLER DES_SAM 01/31/2008 15:07:52 PAGE 6
019C 7401 323 N_LLOP3: MOV A,#1
019E 59 324 E_LLOP3: ANL A,R1
019F 6001 325 JZ TT11
01A1 0C 326 INC R4
01A2 DDD3 327 TT11: DJNZ R5,LLOP110 ;IF A BYTE IS OVER
01A4 EE 328 MOV A,R6 ;SAVE THE BYTE TO RAM
01A5 14 329 DEC A ;
01A6 F4 330 CPL A ;
01A7 5407 331 ANL A,#07H ;
01A9 A900 F 332 MOV R1,KEY_ADDR ;GET THE BEGINNING ADDRESS OF THE Ki
01AB 29 333 ADD A,R1 ;
01AC F9 334 MOV R1,A ;
01AD EC 335 MOV A,R4 ;
01AE F7 336 MOV @R1,A ;
01AF DEC2 337 DJNZ R6,LLOP11 ;IF CONVERT IS OVER
338 ;E=E^Ki
01B1 7E08 339 MOV R6,#8
01B3 A800 F 340 MOV R0,DATA_ADDR
01B5 A900 F 341 MOV R1,KEY_ADDR
01B7 E6 342 LLOP13: MOV A,@R0
01B8 67 343 XRL A,@R1
01B9 F6 344 MOV @R0,A
01BA 08 345 INC R0
01BB 09 346 INC R1
01BC DEF9 347 DJNZ R6,LLOP13
348 ;P<-E^Ki CHANGED BY S
01BE 7E08 349 MOV R6,#8
01C0 AD00 F 350 MOV R5,DATA_ADDR ;E^Ki
01C2 A900 F 351 MOV R1,KEY_ADDR ;P
01C4 19 352 DEC R1
01C5 900000 F 353 MOV DPTR,#SX
01C8 354 LLOP14:
01C8 7A00 355 MOV R2,#0
01CA ED 356 MOV A,R5 ;GET THE VALUE OF E^Ki
01CB F8 357 MOV R0,A ;
01CC E6 358 MOV A,@R0 ;
01CD F8 359 MOV R0,A ;SAVE IN R0
01CE 0D 360 INC R5 ;POINT THE NEXT E^Ki
01CF 13 361 RRC A ;GET THE BIT 4,3,2,1
01D0 9200 F 362 MOV D_TMP_B,C ;
01D2 540F 363 ANL A,#0FH ;
01D4 FB 364 MOV R3,A ;SAVE IN R3
01D5 E8 365 JB0: MOV A,R0 ;
01D6 30E501 366 JNB ACC.5,JB1 ;
01D9 0A 367 INC R2 ;SAVE IN R2
01DA 368 JB1:
369 ;SHIF VALUE OF TABLE S
01DA EA 370 MOV A,R2
01DB 75F010 371 MOV B,#10H
01DE A4 372 MUL AB
01DF A200 F 373 MOV C,D_TMP_B
01E1 5002 374 JNC B0
01E3 2408 375 ADD A,#8H
01E5 FC 376 B0: MOV R4,A
01E6 EE 377 MOV A,R6
01E7 14 378 DEC A
01E8 F4 379 CPL A
01E9 5407 380 ANL A,#7H
01EB 75F020 381 MOV B,#20H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -