des.lst

来自「51系列计算DES的方法之一.....,很小的测试程序....」· LST 代码 · 共 896 行 · 第 1/5 页

LST
896
字号
013E F500     F      342                 Mov         BM3,  A         ;Bit16
0140 23              343                 Rl          A
0141 33              344                 Rlc         A
0142 9200     F      345                 Mov         BM3.7,C         ;Bit2
0144 08              346                 Inc         R0
0145 E6              347                 Mov         A,   @R0        ;Acc      := D2, C2
0146 33              348                 Rlc         A
0147 9200     F      349                 Mov         BM0.1,C         ;Bit24
0149 33              350                 Rlc         A
014A 9200     F      351                 Mov         BM5.7,C         ;Bit48
014C 33              352                 Rlc         A
014D 9200     F      353                 Mov         BM0.7,C         ;Bit17
014F 33              354                 Rlc         A
0150 9200     F      355                 Mov         BM4.6,C         ;Bit41
0152 33              356                 Rlc         A
0153 9200     F      357                 Mov         BM1.7,C         ;Bit10
0155 33              358                 Rlc         A
0156 9200     F      359                 Mov         BM6.2,C         ;Bit34
0158 33              360                 Rlc         A
0159 9200     F      361                 Mov         BM1.2,C         ;Bit3
015B 33              362                 Rlc         A
015C 9200     F      363                 Mov         BM4.3,C         ;Bit55
015E 08              364                 Inc         R0
015F E6              365                 Mov         A,   @R0        ;Acc      := D3, C3
0160 23              366                 Rl          A
0161 33              367                 Rlc         A
0162 9200     F      368                 Mov         BM6.7,C         ;Bit49
0164 23              369                 Rl          A
0165 33              370                 Rlc         A
0166 9200     F      371                 Mov         BM7.3,C         ;Bit42
0168 33              372                 Rlc         A
0169 9200     F      373                 Mov         BM0.0,C         ;Bit11
016B 23              374                 Rl          A
016C 33              375                 Rlc         A
016D 9200     F      376                 Mov         BM2.1,C         ;Bit4
016F 33              377                 Rlc         A
0170 9200     F      378                 Mov         BM6.1,C         ;Bit56
0172 08              379                 Inc         R0
0173 E6              380                 Mov         A,   @R0        ;Acc      := D4, C4
0174 33              381                 Rlc         A
0175 9200     F      382                 Mov         BM2.2,C         ;Bit26
0177 33              383                 Rlc         A
0178 9200     F      384                 Mov         BM7.4,C         ;Bit50
017A 33              385                 Rlc         A
017B 9200     F      386                 Mov         BM2.7,C         ;Bit19
017D 23              387                 Rl          A
017E 33              388                 Rlc         A
A51 MACRO ASSEMBLER  DES                                                                  09/18/2002 08:53:03 PAGE     7

017F 9200     F      389                 Mov         BM2.0,C         ;Bit12
0181 33              390                 Rlc         A
0182 9200     F      391                 Mov         BM7.5,C         ;Bit36
0184 33              392                 Rlc         A
0185 9200     F      393                 Mov         BM0.3,C         ;Bit5
0187 33              394                 Rlc         A
0188 9200     F      395                 Mov         BM7.6,C         ;Bit29
018A 08              396                 Inc         R0
018B E6              397                 Mov         A,   @R0        ;Acc      := D5, C5
018C 33              398                 Rlc         A
018D 9200     F      399                 Mov         BM3.4,C         ;Bit27
018F 33              400                 Rlc         A
0190 9200     F      401                 Mov         BM5.4,C         ;Bit51
0192 33              402                 Rlc         A
0193 9200     F      403                 Mov         BM3.5,C         ;Bit20
0195 33              404                 Rlc         A
0196 9200     F      405                 Mov         BM6.6,C         ;Bit44
0198 33              406                 Rlc         A
0199 9200     F      407                 Mov         BM3.6,C         ;Bit13
019B 33              408                 Rlc         A
019C 9200     F      409                 Mov         BM4.1,C         ;Bit37
019E 33              410                 Rlc         A
019F 9200     F      411                 Mov         BM1.5,C         ;Bit6
01A1 33              412                 Rlc         A
01A2 9200     F      413                 Mov         BM5.2,C         ;Bit30
01A4 08              414                 Inc         R0
01A5 E6              415                 Mov         A,   @R0        ;Acc      := D6, C6
01A6 33              416                 Rlc         A
01A7 9200     F      417                 Mov         BM1.3,C         ;Bit28
01A9 33              418                 Rlc         A
01AA 9200     F      419                 Mov         BM4.7,C         ;Bit52
01AC 33              420                 Rlc         A
01AD 9200     F      421                 Mov         BM1.6,C         ;Bit21
01AF 33              422                 Rlc         A
01B0 9200     F      423                 Mov         BM5.5,C         ;Bit45
01B2 33              424                 Rlc         A
01B3 9200     F      425                 Mov         BM0.6,C         ;Bit14
01B5 23              426                 Rl          A
01B6 33              427                 Rlc         A
01B7 9200     F      428                 Mov         BM3.3,C         ;Bit7
01B9 33              429                 Rlc         A
01BA 9200     F      430                 Mov         BM4.0,C         ;Bit31
                     431     
                     432     
01BC ED              433                 Mov         A,    R5        ;Acc      := Parameter2 of APDU
01BD 5430            434                 Anl         A,   #030h      ;Acc5..4  := Decode~, BuildMac
01BF 701B            435                 Jnz         InitExpand;
                     436     
01C1 EA              437                 Mov         A,    R2        ;Acc      := addr (D0, C0)
01C2 F8              438                 Mov         R0,   A         ;R0       := addr (D0, C0)
01C3 E5F0            439                 Mov         A,    B         ;Acc      := RoundCounter mod 7
01C5 14              440                 Dec         A
01C6 24FF            441                 Add         A,   #0FFh      ;Carry    := Acc != 0  => Shift2
01C8 EB              442                 Mov         A,    R3
01C9 7001            443                 Jnz         DecShift2-1     ;Last Round ?
01CB C3              444                 Clr         C               ;Carry    == 0         => Shift1
01CC E6              445                 Mov         A,   @R0        ;Acc      := D0, C0
01CD 7C06            446     DecShift2:  Mov         R4,  #6         ;R4       := shift through 7 bytes
01CF 08              447                 Inc         R0              ;Address  += 1
01D0 C6              448                 Xch         A,   @R0        ;ShiftUp one byte
01D1 DCFC            449                 Djnz        R4, $-2
01D3 F8              450                 Mov         R0,   A         ;R0       := D0, C0 >> 2 = D6, C6
01D4 EA              451                 Mov         A,    R2        ;Acc      := addr (D0, C0)
01D5 C8              452                 Xch         A,    R0        ;Acc      := D0, C0 >> 2
01D6 23              453                 Rl          A               ;Acc      := D0, C0 >> 1
01D7 23              454                 Rl          A               ;Acc      := D0, C0
A51 MACRO ASSEMBLER  DES                                                                  09/18/2002 08:53:03 PAGE     8

01D8 10D7F2          455                 Jbc         PSW.7,DecShift2 ;Shift twice ?
01DB F6              456                 Mov         @R0,  A         ;Store D0, C0
                     457     
                     458     
01DC 7800     F      459     InitExpand: Mov         R0,  #BM0       ;R0       := addr (first SBoxValue)
01DE 7C04            460                 Mov         R4,  #4         ;Half number of    SBoxes
01E0 900000   F      461                 Mov         Dptr,#SBoxes    ;Dptr     := addr (SBoxes)
01E3 E7              462                 Mov         A,   @R1        ;Acc      := Right3
01E4 09              463                 Inc         R1
01E5 09              464                 Inc         R1
01E6 09              465                 Inc         R1              ;R1       := addr (Right0)
                     466     
01E7 D7              467     ExpXorSBox: XchD        A,   @R1        ;Acc3..0  := RightI,    4 bits
01E8 C6              468                 Xch         A,   @R0        ;Acc      := RoundKey,  bits 7, 6, 3..0
01E9 66              469                 Xrl         A,   @R0        ;Acc      := SBoxIndex, bits 7, 6, 3..0
01EA C4              470                 Swap        A               ;Acc7..2  := SBoxIndex, 6 bits
01EB 54FC            471                 Anl         A,   #0FCh      ;Mask        SBoxIndex
01ED 93              472                 MovC        A, @A+Dptr      ;Acc      := SBoxValue, LowNibble valid
01EE C6              473                 Xch         A,   @R0        ;Acc3..0  := RightI,    4 bits
01EF 08              474                 Inc         R0
01F0 D7              475                 XchD        A,   @R1        ;Rebuild    RightI
01F1 E7              476                 Mov         A,   @R1        ;Acc7..0  := RightI
01F2 66              477                 Xrl         A,   @R0        ;Acc7..2  := SBoxIndex, 6bits
01F3 54FC            478                 Anl         A,   #0FCh      ;Mask        SBoxIndex
01F5 93              479                 MovC        A, @A+Dptr      ;Acc      := SBoxValue, HighNibble valid
01F6 F6              480                 Mov         @R0,  A
01F7 08              481                 Inc         R0
01F8 E7              482                 Mov         A,   @R1        ;Acc7..0  := RightI
01F9 19              483                 Dec         R1
01FA A3              484                 Inc         Dptr
01FB DCEA            485                 Djnz        R4, ExpXorSBox
                     486     
01FD EB              487                 Mov         A,    R3        ;Acc      := RoundCounter
01FE 30E004          488                 Jnb         Acc.0,$+7       ;Odd Round ?
0201 E9              489                 Mov         A,    R1        ;Acc      := addr (Right3) -1
0202 2408            490                 Add         A,   #8         ;Address  += 8
0204 F9              491                 Mov         R1,   A         ;R1       := addr (Left0)
                     492     
0205 A200     F      493                 Mov         C, BM1.6        ;P(B)1    := B7, Right := P(B) ExOr Left
0207 13              494                 Rrc         A
0208 A200     F      495                 Mov         C, BM4.3        ;P(B)2    := B20
020A 13              496                 Rrc         A
020B A200     F      497                 Mov         C, BM5.4        ;P(B)3    := B21
020D 13              498                 Rrc         A
020E A200     F      499                 Mov         C, BM7.4        ;P(B)4    := B29
0210 13              500                 Rrc         A
0211 A200     F      501                 Mov         C, BM2.3        ;P(B)5    := B12
0213 13              502                 Rrc         A
0214 A200     F      503                 Mov         C, BM6.3        ;P(B)6    := B28
0216 13              504                 Rrc         A
0217 A200     F      505                 Mov         C, BM4.0        ;P(B)7    := B17
0219 13              506                 Rrc         A
021A A200     F      507                 Mov         C, BM0.0        ;P(B)8    := B1
021C 13              508                 Rrc         A
021D 67              509                 Xrl         A,   @R1        ;Acc      := new Right0
021E F7              510                 Mov         @R1,  A         ;Left0    := new Right0
021F A200     F      511                 Mov         C, BM3.6        ;P(B)9    := B15
0221 13              512                 Rrc         A
0222 A200     F      513                 Mov         C, BM5.6        ;P(B)10   := B23
0224 13              514                 Rrc         A
0225 A200     F      515                 Mov         C, BM6.1        ;P(B)11   := B26
0227 13              516                 Rrc         A
0228 A200     F      517                 Mov         C, BM1.4        ;P(B)12   := B5

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?