📄 des.lst
字号:
013D 33 340 Rlc A
013E F500 F 341 Mov BM3, A ;Bit16
0140 23 342 Rl A
0141 33 343 Rlc A
0142 9200 F 344 Mov BM3.7,C ;Bit2
0144 08 345 Inc R0
0145 E6 346 Mov A, @R0 ;Acc := D2, C2
0146 33 347 Rlc A
0147 9200 F 348 Mov BM0.1,C ;Bit24
0149 33 349 Rlc A
014A 9200 F 350 Mov BM5.7,C ;Bit48
014C 33 351 Rlc A
014D 9200 F 352 Mov BM0.7,C ;Bit17
014F 33 353 Rlc A
0150 9200 F 354 Mov BM4.6,C ;Bit41
0152 33 355 Rlc A
0153 9200 F 356 Mov BM1.7,C ;Bit10
0155 33 357 Rlc A
0156 9200 F 358 Mov BM6.2,C ;Bit34
0158 33 359 Rlc A
0159 9200 F 360 Mov BM1.2,C ;Bit3
015B 33 361 Rlc A
015C 9200 F 362 Mov BM4.3,C ;Bit55
015E 08 363 Inc R0
015F E6 364 Mov A, @R0 ;Acc := D3, C3
0160 23 365 Rl A
0161 33 366 Rlc A
0162 9200 F 367 Mov BM6.7,C ;Bit49
0164 23 368 Rl A
0165 33 369 Rlc A
0166 9200 F 370 Mov BM7.3,C ;Bit42
0168 33 371 Rlc A
0169 9200 F 372 Mov BM0.0,C ;Bit11
016B 23 373 Rl A
016C 33 374 Rlc A
016D 9200 F 375 Mov BM2.1,C ;Bit4
016F 33 376 Rlc A
0170 9200 F 377 Mov BM6.1,C ;Bit56
0172 08 378 Inc R0
0173 E6 379 Mov A, @R0 ;Acc := D4, C4
0174 33 380 Rlc A
0175 9200 F 381 Mov BM2.2,C ;Bit26
0177 33 382 Rlc A
0178 9200 F 383 Mov BM7.4,C ;Bit50
017A 33 384 Rlc A
017B 9200 F 385 Mov BM2.7,C ;Bit19
017D 23 386 Rl A
017E 33 387 Rlc A
017F 9200 F 388 Mov BM2.0,C ;Bit12
A51 MACRO ASSEMBLER DES 09/11/2002 09:44:25 PAGE 7
0181 33 389 Rlc A
0182 9200 F 390 Mov BM7.5,C ;Bit36
0184 33 391 Rlc A
0185 9200 F 392 Mov BM0.3,C ;Bit5
0187 33 393 Rlc A
0188 9200 F 394 Mov BM7.6,C ;Bit29
018A 08 395 Inc R0
018B E6 396 Mov A, @R0 ;Acc := D5, C5
018C 33 397 Rlc A
018D 9200 F 398 Mov BM3.4,C ;Bit27
018F 33 399 Rlc A
0190 9200 F 400 Mov BM5.4,C ;Bit51
0192 33 401 Rlc A
0193 9200 F 402 Mov BM3.5,C ;Bit20
0195 33 403 Rlc A
0196 9200 F 404 Mov BM6.6,C ;Bit44
0198 33 405 Rlc A
0199 9200 F 406 Mov BM3.6,C ;Bit13
019B 33 407 Rlc A
019C 9200 F 408 Mov BM4.1,C ;Bit37
019E 33 409 Rlc A
019F 9200 F 410 Mov BM1.5,C ;Bit6
01A1 33 411 Rlc A
01A2 9200 F 412 Mov BM5.2,C ;Bit30
01A4 08 413 Inc R0
01A5 E6 414 Mov A, @R0 ;Acc := D6, C6
01A6 33 415 Rlc A
01A7 9200 F 416 Mov BM1.3,C ;Bit28
01A9 33 417 Rlc A
01AA 9200 F 418 Mov BM4.7,C ;Bit52
01AC 33 419 Rlc A
01AD 9200 F 420 Mov BM1.6,C ;Bit21
01AF 33 421 Rlc A
01B0 9200 F 422 Mov BM5.5,C ;Bit45
01B2 33 423 Rlc A
01B3 9200 F 424 Mov BM0.6,C ;Bit14
01B5 23 425 Rl A
01B6 33 426 Rlc A
01B7 9200 F 427 Mov BM3.3,C ;Bit7
01B9 33 428 Rlc A
01BA 9200 F 429 Mov BM4.0,C ;Bit31
430
431
01BC ED 432 Mov A, R5 ;Acc := Parameter2 of APDU
01BD 5430 433 Anl A, #030h ;Acc5..4 := Decode~, BuildMac
01BF 701B 434 Jnz InitExpand
435
01C1 EA 436 Mov A, R2 ;Acc := addr (D0, C0)
01C2 F8 437 Mov R0, A ;R0 := addr (D0, C0)
01C3 E5F0 438 Mov A, B ;Acc := RoundCounter mod 7
01C5 14 439 Dec A
01C6 24FF 440 Add A, #0FFh ;Carry := Acc != 0 => Shift2
01C8 EB 441 Mov A, R3
01C9 7001 442 Jnz DecShift2-1 ;Last Round ?
01CB C3 443 Clr C ;Carry == 0 => Shift1
01CC E6 444 Mov A, @R0 ;Acc := D0, C0
01CD 7C06 445 DecShift2: Mov R4, #6 ;R4 := shift through 7 bytes
01CF 08 446 Inc R0 ;Address += 1
01D0 C6 447 Xch A, @R0 ;ShiftUp one byte
01D1 DCFC 448 Djnz R4, $-2
01D3 F8 449 Mov R0, A ;R0 := D0, C0 >> 2 = D6, C6
01D4 EA 450 Mov A, R2 ;Acc := addr (D0, C0)
01D5 C8 451 Xch A, R0 ;Acc := D0, C0 >> 2
01D6 23 452 Rl A ;Acc := D0, C0 >> 1
01D7 23 453 Rl A ;Acc := D0, C0
01D8 10D7F2 454 Jbc PSW.7,DecShift2 ;Shift twice ?
A51 MACRO ASSEMBLER DES 09/11/2002 09:44:25 PAGE 8
01DB F6 455 Mov @R0, A ;Store D0, C0
456
457
01DC 7800 F 458 InitExpand: Mov R0, #BM0 ;R0 := addr (first SBoxValue)
01DE 7C04 459 Mov R4, #4 ;Half number of SBoxes
01E0 900000 F 460 Mov Dptr,#SBoxes ;Dptr := addr (SBoxes)
01E3 E7 461 Mov A, @R1 ;Acc := Right3
01E4 09 462 Inc R1
01E5 09 463 Inc R1
01E6 09 464 Inc R1 ;R1 := addr (Right0)
465
01E7 D7 466 ExpXorSBox: XchD A, @R1 ;Acc3..0 := RightI, 4 bits
01E8 C6 467 Xch A, @R0 ;Acc := RoundKey, bits 7, 6, 3..0
01E9 66 468 Xrl A, @R0 ;Acc := SBoxIndex, bits 7, 6, 3..0
01EA C4 469 Swap A ;Acc7..2 := SBoxIndex, 6 bits
01EB 54FC 470 Anl A, #0FCh ;Mask SBoxIndex
01ED 93 471 MovC A, @A+Dptr ;Acc := SBoxValue, LowNibble valid
01EE C6 472 Xch A, @R0 ;Acc3..0 := RightI, 4 bits
01EF 08 473 Inc R0
01F0 D7 474 XchD A, @R1 ;Rebuild RightI
01F1 E7 475 Mov A, @R1 ;Acc7..0 := RightI
01F2 66 476 Xrl A, @R0 ;Acc7..2 := SBoxIndex, 6bits
01F3 54FC 477 Anl A, #0FCh ;Mask SBoxIndex
01F5 93 478 MovC A, @A+Dptr ;Acc := SBoxValue, HighNibble valid
01F6 F6 479 Mov @R0, A
01F7 08 480 Inc R0
01F8 E7 481 Mov A, @R1 ;Acc7..0 := RightI
01F9 19 482 Dec R1
01FA A3 483 Inc Dptr
01FB DCEA 484 Djnz R4, ExpXorSBox
485
01FD EB 486 Mov A, R3 ;Acc := RoundCounter
01FE 30E004 487 Jnb Acc.0,$+7 ;Odd Round ?
0201 E9 488 Mov A, R1 ;Acc := addr (Right3) -1
0202 2408 489 Add A, #8 ;Address += 8
0204 F9 490 Mov R1, A ;R1 := addr (Left0)
491
0205 A200 F 492 Mov C, BM1.6 ;P(B)1 := B7, Right := P(B) ExOr Left
0207 13 493 Rrc A
0208 A200 F 494 Mov C, BM4.3 ;P(B)2 := B20
020A 13 495 Rrc A
020B A200 F 496 Mov C, BM5.4 ;P(B)3 := B21
020D 13 497 Rrc A
020E A200 F 498 Mov C, BM7.4 ;P(B)4 := B29
0210 13 499 Rrc A
0211 A200 F 500 Mov C, BM2.3 ;P(B)5 := B12
0213 13 501 Rrc A
0214 A200 F 502 Mov C, BM6.3 ;P(B)6 := B28
0216 13 503 Rrc A
0217 A200 F 504 Mov C, BM4.0 ;P(B)7 := B17
0219 13 505 Rrc A
021A A200 F 506 Mov C, BM0.0 ;P(B)8 := B1
021C 13 507 Rrc A
021D 67 508 Xrl A, @R1 ;Acc := new Right0
021E F7 509 Mov @R1, A ;Left0 := new Right0
021F A200 F 510 Mov C, BM3.6 ;P(B)9 := B15
0221 13 511 Rrc A
0222 A200 F 512 Mov C, BM5.6 ;P(B)10 := B23
0224 13 513 Rrc A
0225 A200 F 514 Mov C, BM6.1 ;P(B)11 := B26
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -