⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des.lst

📁 C51下把DES汇编改为C语言的程序.改进版程序.
💻 LST
📖 第 1 页 / 共 5 页
字号:
0227 13              515                 Rrc         A
0228 A200     F      516                 Mov         C, BM1.4        ;P(B)12   := B5
022A 13              517                 Rrc         A
022B A200     F      518                 Mov         C, BM4.1        ;P(B)13   := B18
022D 13              519                 Rrc         A
022E A200     F      520                 Mov         C, BM7.6        ;P(B)14   := B31
A51 MACRO ASSEMBLER  DES                                                                  09/11/2002 09:44:25 PAGE     9

0230 13              521                 Rrc         A
0231 A200     F      522                 Mov         C, BM2.1        ;P(B)15   := B10
0233 13              523                 Rrc         A
0234 A200     F      524                 Mov         C, BM0.1        ;P(B)16   := B2
0236 13              525                 Rrc         A
0237 19              526                 Dec         R1
0238 67              527                 Xrl         A,   @R1        ;Acc      := new Right1
0239 F7              528                 Mov         @R1,  A         ;Left1    := new Right1
023A A200     F      529                 Mov         C, BM1.7        ;P(B)17   := B8
023C 13              530                 Rrc         A
023D A200     F      531                 Mov         C, BM5.7        ;P(B)18   := B24
023F 13              532                 Rrc         A
0240 A200     F      533                 Mov         C, BM3.5        ;P(B)19   := B14
0242 13              534                 Rrc         A
0243 A200     F      535                 Mov         C, BM7.7        ;P(B)20   := B32
0245 13              536                 Rrc         A
0246 A200     F      537                 Mov         C, BM6.2        ;P(B)21   := B27
0248 13              538                 Rrc         A
0249 A200     F      539                 Mov         C, BM0.2        ;P(B)22   := B3
024B 13              540                 Rrc         A
024C A200     F      541                 Mov         C, BM2.0        ;P(B)23   := B9
024E 13              542                 Rrc         A
024F A200     F      543                 Mov         C, BM4.2        ;P(B)24   := B19
0251 13              544                 Rrc         A
0252 19              545                 Dec         R1
0253 67              546                 Xrl         A,   @R1        ;Acc      := new Right2
0254 F7              547                 Mov         @R1,  A         ;Left2    := new Right2
0255 A200     F      548                 Mov         C, BM3.4        ;P(B)25   := B13
0257 13              549                 Rrc         A
0258 A200     F      550                 Mov         C, BM7.5        ;P(B)26   := B30
025A 13              551                 Rrc         A
025B A200     F      552                 Mov         C, BM1.5        ;P(B)27   := B6
025D 13              553                 Rrc         A
025E A200     F      554                 Mov         C, BM5.5        ;P(B)28   := B22
0260 13              555                 Rrc         A
0261 A200     F      556                 Mov         C, BM2.2        ;P(B)29   := B11
0263 13              557                 Rrc         A
0264 A200     F      558                 Mov         C, BM0.3        ;P(B)30   := B4
0266 13              559                 Rrc         A
0267 A200     F      560                 Mov         C, BM6.0        ;P(B)31   := B25
0269 13              561                 Rrc         A
026A A200     F      562                 Mov         C, BM3.7        ;P(B)32   := B16
026C 13              563                 Rrc         A
026D 19              564                 Dec         R1
026E 67              565                 Xrl         A,   @R1        ;Acc      := new Right3
026F F7              566                 Mov         @R1,  A         ;Left3    := new Right3
                     567     
0270 EB              568                 Mov         A,    R3        ;Acc      := RoundCounter
0271 6003            569                 Jz          PreOutput       ;Ready Rounds ?
0273 020000   F      570                 Jmp         OneRound        ;Next  Round  !
                     571     
                     572             ;Normalize output of 16 rounds
0276 8700     F      573     PreOutput:  Mov         BM7, @R1        ;BM7      := Right3
0278 09              574                 Inc         R1
0279 8700     F      575                 Mov         BM5, @R1        ;BM5      := Right2
027B 09              576                 Inc         R1
027C 8700     F      577                 Mov         BM3, @R1        ;BM3      := Right1
027E 09              578                 Inc         R1
027F 8700     F      579                 Mov         BM1, @R1        ;BM1      := Right0
0281 09              580                 Inc         R1
0282 8700     F      581                 Mov         BM6, @R1        ;BM6      := Left3
0284 09              582                 Inc         R1
0285 8700     F      583                 Mov         BM4, @R1        ;BM4      := Left2
0287 09              584                 Inc         R1
0288 8700     F      585                 Mov         BM2, @R1        ;BM2      := Left1
028A 09              586                 Inc         R1
A51 MACRO ASSEMBLER  DES                                                                  09/11/2002 09:44:25 PAGE    10

028B 8700     F      587                 Mov         BM0, @R1        ;BM0      := Left0
                     588     
028D 7B08            589                 Mov         R3,  #8         ;Inverse initial permutation IP^-1
028F 7800     F      590                 Mov         R0,  #BM0
                     591     
0291 E6              592     InvItPerm:  Mov         A,   @R0
0292 08              593                 Inc         R0
0293 23              594                 Rl          A               ;Due to Left and Right notation
0294 7C08            595                 Mov         R4,  #8         ;which are rotated right 1 bit
0296 13              596                 Rrc         A               ;in comparision with Standard
0297 C7              597                 Xch         A,   @R1
0298 33              598                 Rlc         A
0299 C7              599                 Xch         A,   @R1
029A 19              600                 Dec         R1
029B DCF9            601                 Djnz        R4, $-5
                     602     
029D E9              603                 Mov         A,    R1        ;Acc      := addr (Output0) - 1
029E 2408            604                 Add         A,   #8         ;Acc      := addr (Output7)
02A0 F9              605                 Mov         R1,   A         ;R1       := addr (Output7)
02A1 DBEE            606                 Djnz        R3, InvItPerm
                     607     
02A3 E7              608                 Mov         A,   @R1        ;Acc      := Output7 << 2
02A4 03              609                 Rr          A
02A5 03              610                 Rr          A
02A6 F7              611                 Mov         @R1,  A
                     612             ;Result of DES operation available
02A7 EE              613                 Mov         A,    R6        ;Acc      := addr (Input0) + 8
02A8 F8              614                 Mov         R0,   A         ;R0       := addr (Input0) + 8
02A9 C3              615                 Clr         C
                     616     
02AA ED              617                 Mov         A,    R5
02AB 20E40C          618                 Jb          Acc.4, TestEnd  ;BuildMac ?
02AE 23              619                 Rl          A
02AF 33              620                 Rlc         A
02B0 B0E7            621                 Anl         C,   /Acc.7     ;Carry    := Mode is CBC decode
                     622     
02B2 7B08            623                 Mov         R3,  #8         ;Copy data to input location
02B4 E7              624                 Mov         A,   @R1        ;Acc      := OutputI
02B5 19              625                 Dec         R1
02B6 18              626                 Dec         R0
02B7 F6              627                 Mov         @R0,  A
02B8 DBFA            628                 Djnz        R3, $-4
                     629     
02BA EF              630     TestEnd:    Mov         A,    R7
02BB 6013            631                 Jz          DesEnd          ;End of input data reached?
02BD 500E            632                 Jnc         NoCbcDec
02BF EE              633                 Mov         A,    R6        ;For CBC decode set pointer to next block
02C0 24F0            634                 Add         A,   #0F0h
02C2 FE              635                 Mov         R6,   A
02C3 F9              636                 Mov         R1,   A
02C4 7B08            637                 Mov         R3,  #8         ;and XOR it with previous output
02C6 E7              638                 Mov         A,   @R1
02C7 66              639                 Xrl         A,   @R0
02C8 F6              640                 Mov         @R0,  A
02C9 08              641                 Inc         R0
02CA 09              642                 Inc         R1
02CB DBF9            643                 Djnz        R3, $-5
02CD 020000   F      644     NoCbcDec:   LJmp        DesAction
                     645     
02D0 D083            646     DesEnd:     Pop         Dph             ;Restore DataPointer
02D2 D082            647                 Pop         Dpl
02D4 5017            648                 Jnc         DesRet
02D6 120000   F      649                 Call        VecExist
02D9 5012            650                 Jnc         DesRet
                     651     
02DB 7401            652                 Mov         A,   #1         ;CBC decode only
A51 MACRO ASSEMBLER  DES                                                                  09/11/2002 09:44:25 PAGE    11

                     653     
                     654     ;            MovC        A, @A+Dptr      ;Acc      := HeaderLength
02DD 120000   F      655                 lcall       GetKey          
                     656     
02E0 240E            657                 Add         A,   #14        ;Acc      := index (Vector0)
02E2 F9              658                 Mov         R1,   A
02E3 E9              659                 Mov         A,    R1
                     660     ;            MovC        A, @A+Dptr      ;Acc      := VectorI
02E4 120000   F      661                 lcall       GetKey                      
                     662     
02E7 09              663                 Inc         R1
02E8 66              664                 Xrl         A,   @R0
02E9 F6              665                 Mov         @R0,  A
02EA 08              666                 Inc         R0
02EB DBF8            667                 Djnz        R3, $-6
                     668     
02ED 7B08            669     DesRet:     Mov         R3,  #8
02EF EA              670                 Mov         A,    R2        ;Acc      := addr (D0, C0)
02F0 2B              671                 Add         A,    R3        ;Acc      := addr (Output0)
02F1 F9              672                 Mov         R1,   A         ;R1       := addr (Output0)
02F2 ED              673                 Mov         A,    R5        ;Acc      := Mode
02F3 30E40D          674                 Jnb         Acc.4,NoMAC
                     675             ;MAC verification/copy MAC to end of data
02F6 A2E5            676                 Mov         C,    Acc.5
02F8 E7              677                 Mov         A,   @R1
02F9 4003            678                 Jc          $+5
02FB 66              679                 Xrl         A,   @R0
02FC 700B            680                 Jnz         MacErr
02FE F6              681                 Mov         @R0,  A
02FF 08              682                 Inc         R0
0300 09              683                 Inc         R1
0301 DBF5            684                 Djnz        R3, $-9
                     685     
0303 EE              686     NoMAC:      Mov         A,    R6
0304 F9              687                 Mov         R1,   A

⌨️ 快捷键说明

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