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