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

📄 des_sam.lst

📁 DES的C语言算法,是一个完整C51工程,直接下载就可以应用了.
💻 LST
📖 第 1 页 / 共 4 页
字号:
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 + -