📄 desmain.src
字号:
; CalcArea[10]=BitMap[2];
; SOURCE LINE # 210
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
MOV DPTR,#CalcArea?044+0AH
MOVX @DPTR,A
; CalcArea[9]=BitMap[4];
; SOURCE LINE # 211
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
MOV DPTR,#CalcArea?044+09H
MOVX @DPTR,A
; CalcArea[8]=BitMap[6];
; SOURCE LINE # 212
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
MOV DPTR,#CalcArea?044+08H
MOVX @DPTR,A
; //16 rounds DES operation
; A=R1;
; SOURCE LINE # 214
MOV DPTR,#R1?048
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; R2=R1-8;
; SOURCE LINE # 215
ADD A,#0F8H
MOV DPTR,#R2?049
MOVX @DPTR,A
; R3=16;
; SOURCE LINE # 216
INC DPTR
MOV A,#010H
MOVX @DPTR,A
;
; R1=8;
; SOURCE LINE # 218
MOV DPTR,#R1?048
MOV A,#08H
MOVX @DPTR,A
; //OneRound:
; for(R3=16;R3!=0;R3--)
; SOURCE LINE # 220
MOV DPTR,#R3?050
MOV A,#010H
MOVX @DPTR,A
?C0049:
MOV DPTR,#R3?050
MOVX A,@DPTR
MOV R7,A
JNZ $ + 5H
LJMP ?C0050
; {
; SOURCE LINE # 221
; A=R3-1;
; SOURCE LINE # 222
DEC A
MOV DPTR,#A?054
MOVX @DPTR,A
; B=A%7;
; SOURCE LINE # 223
MOV B,#07H
DIV AB
INC DPTR
MOV A,B
MOVX @DPTR,A
; if(mode&0x30)
; SOURCE LINE # 224
MOV DPTR,#mode?040
MOVX A,@DPTR
ANL A,#030H
JNZ $ + 5H
LJMP ?C0052
; {
; SOURCE LINE # 225
; R0=R2;
; SOURCE LINE # 226
; C=(B!=0);
; SOURCE LINE # 227
LCALL L?0320
JZ ?C0053
MOV R6,#01H
SJMP ?C0054
?C0053:
MOV R6,#00H
?C0054:
MOV DPTR,#C?056
MOV A,R6
MOVX @DPTR,A
; BitMap[0]&=0x7f;
; SOURCE LINE # 228
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
; if( C&&(!(R3&0x10)))
; SOURCE LINE # 229
MOV A,R6
JZ ?_DES?EncShift2
MOV A,R7
JB ACC.4,?_DES?EncShift2
; BitMap[0]+=0x80;
; SOURCE LINE # 230
MOVX A,@DPTR
ADD A,#080H
MOVX @DPTR,A
;
; EncShift2:
; SOURCE LINE # 232
?_DES?EncShift2:
; tmp=CalcArea[0];
; SOURCE LINE # 233
MOV DPTR,#CalcArea?044
MOVX A,@DPTR
MOV DPTR,#tmp?057
MOVX @DPTR,A
; A=CalcArea[6];
; SOURCE LINE # 234
MOV DPTR,#CalcArea?044+06H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; CalcArea[6]=(tmp>>2)+(tmp<<6);
; SOURCE LINE # 235
MOV DPTR,#tmp?057
MOVX A,@DPTR
MOV R7,A
SWAP A
RLC A
RLC A
ANL A,#0C0H
MOV R6,A
MOV A,R7
RRC A
RRC A
ANL A,#03FH
ADD A,R6
MOV DPTR,#CalcArea?044+06H
MOVX @DPTR,A
; for(R4=5;R4!=0;R4--)
; SOURCE LINE # 236
MOV DPTR,#R4?051
MOV A,#05H
MOVX @DPTR,A
?C0057:
; {
; SOURCE LINE # 237
; tmp=CalcArea[R4];
; SOURCE LINE # 238
MOV DPTR,#R4?051
MOVX A,@DPTR
MOV R7,A
LCALL L?0274
MOVX A,@DPTR
MOV R6,A
MOV DPTR,#tmp?057
MOVX @DPTR,A
; CalcArea[R4]=A;
; SOURCE LINE # 239
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R5,A
MOV A,#LOW (CalcArea?044)
ADD A,R7
LCALL L?0275
MOV A,R5
MOVX @DPTR,A
; A=tmp;
; SOURCE LINE # 240
MOV DPTR,#A?054
MOV A,R6
; }
; SOURCE LINE # 241
LCALL L?0284
MOVX A,@DPTR
JNZ ?C0057
?C0058:
; if(BitMap[0]&0x80)
; SOURCE LINE # 242
MOV DPTR,#BitMap?043
MOVX A,@DPTR
MOV R7,A
JNB ACC.7,?C0060
; {
; SOURCE LINE # 243
; BitMap[0]&=0x7f;
; SOURCE LINE # 244
ANL A,#07FH
MOVX @DPTR,A
; CalcArea[0]=A;
; SOURCE LINE # 245
LCALL L?0318
; goto EncShift2;
; SOURCE LINE # 246
SJMP ?_DES?EncShift2
; }else{
; SOURCE LINE # 247
?C0060:
; BitMap[0]&=0x7f;
; SOURCE LINE # 248
MOV A,R7
ANL A,#07FH
MOV DPTR,#BitMap?043
MOVX @DPTR,A
; }
; SOURCE LINE # 249
?C0061:
; CalcArea[0]=A;
; SOURCE LINE # 250
LCALL L?0318
; }//Decode~, BuildMac
; SOURCE LINE # 251
?C0052:
; //RoundKey:
; /*Permutation 36 5 27 61 18 54 9 47 = D6, C6
; 44 13 35 6 26 62 17 55 = D5, C5
; 52 21 43 14 34 7 25 63 = D4, C4
; 60 29 51 22 42 15 33 4 = D3, C3
; 3 37 59 30 50 23 41 12 = D2, C2
; 11 45 2 38 58 31 49 20 = D1, C1
; 19 53 10 46 1 39 57 28 = D0, C0
; */
; A=CalcArea[0];
; SOURCE LINE # 261
MOV DPTR,#CalcArea?044
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80)BitMap[7]|=0x01;else BitMap[7]&=~0x01;
; SOURCE LINE # 262
JNB ACC.7,?C0062
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
SJMP ?C0063
?C0062:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
?C0063:
; if(A&0x40)BitMap[7]|=0x04;else BitMap[7]&=~0x04;
; SOURCE LINE # 263
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R1,A
JNB ACC.6,?C0064
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0065
?C0064:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0065:
; if(A&0x20){
; SOURCE LINE # 264
MOV A,R1
JNB ACC.5,?C0066
; BitMap[1]|=0x10;BitMap[2]|=0x20;BitMap[7]|=0x02;
; SOURCE LINE # 265
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 266
SJMP ?C0067
?C0066:
; BitMap[1]&=~0x10;BitMap[2]&=~0x20;BitMap[7]&=~0x02;
; SOURCE LINE # 267
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
; }
; SOURCE LINE # 268
?C0067:
; if(A&0x10){
; SOURCE LINE # 269
MOV A,R1
JNB ACC.4,?C0068
; BitMap[0]|=0x20;BitMap[1]|=0x02;BitMap[2]|=0x10;BitMap[6]|=0x01;
; SOURCE LINE # 270
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 271
SJMP ?C0069
?C0068:
; BitMap[0]&=~0x20;BitMap[1]&=~0x02;BitMap[2]&=~0x10;BitMap[6]&=~0x01;
; SOURCE LINE # 272
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
; }
; SOURCE LINE # 273
?C0069:
; if(A&0x08){
; SOURCE LINE # 274
MOV A,R1
JNB ACC.3,?C0070
; BitMap[0]|=0x10;BitMap[2]|=0x08;
; SOURCE LINE # 275
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 276
SJMP ?C0071
?C0070:
; BitMap[0]&=~0x10;BitMap[2]&=~0x08;
; SOURCE LINE # 277
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
; }
; SOURCE LINE # 278
?C0071:
; if(A&0x04){
; SOURCE LINE # 279
MOV A,R1
JNB ACC.2,?C0072
; BitMap[1]|=0x01;BitMap[6]|=0x20;BitMap[7]|=0x80;
; SOURCE LINE # 280
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 281
SJMP ?C0073
?C0072:
; BitMap[1]&=~0x01;BitMap[6]&=~0x20;BitMap[7]&=~0x80;
; SOURCE LINE # 282
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
; }
; SOURCE LINE # 283
?C0073:
; if(A&0x02){
; SOURCE LINE # 284
MOV A,R1
JNB ACC.1,?C0074
; BitMap[0]|=0x04;BitMap[6]|=0x10;
; SOURCE LINE # 285
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 286
SJMP ?C0075
?C0074:
; BitMap[0]&=~0x04;BitMap[6]&=~0x10;
; SOURCE LINE # 287
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
; }
; SOURCE LINE # 288
?C0075:
; if(A&0x01)BitMap[6]|=0x08;else BitMap[6]&=~0x08;
; SOURCE LINE # 289
MOV A,R1
JNB ACC.0,?C0076
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0077
?C0076:
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0077:
; // memcpy(BitMap,"\x9c\x2d\xce\x80\x87\x99\x72\xe5",8);
; A=CalcArea[1];
; SOURCE LINE # 291
MOV DPTR,#CalcArea?044+01H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80){
; SOURCE LINE # 292
JNB ACC.7,?C0078
; BitMap[2]|=0x40;BitMap[3]|=0x02;BitMap[5]|=0x01;
; SOURCE LINE # 293
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 294
SJMP ?C0079
?C0078:
; BitMap[2]&=~0x40;BitMap[3]&=~0x02;BitMap[5]&=~0x01;
; SOURCE LINE # 295
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
; }
; SOURCE LINE # 296
?C0079:
; if(A&0x40)BitMap[4]|=0x04;else BitMap[4]&=~0x04;
; SOURCE LINE # 297
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R7,A
JNB ACC.6,?C0080
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0081
?C0080:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0081:
; if(A&0x20){
; SOURCE LINE # 298
MOV A,R7
JNB ACC.5,?C0082
; BitMap[3]|=0x04;BitMap[5]|=0x02;
; SOURCE LINE # 299
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 300
SJMP ?C0083
?C0082:
; BitMap[3]&=~0x04;BitMap[5]&=~0x02;
; SOURCE LINE # 301
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
; }
; SOURCE LINE # 302
?C0083:
; if(A&0x10){
; SOURCE LINE # 303
MOV A,R7
JNB ACC.4,?C0084
; BitMap[3]|=0x01;BitMap[5]|=0x08;
; SOURCE LINE # 304
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 305
SJMP ?C0085
?C0084:
; BitMap[3]&=~0x01; BitMap[5]&=~0x08;
; SOURCE LINE # 306
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
; }
; SOURCE LINE # 307
?C0085:
; if(A&0x04)BitMap[5]|=0x40;else BitMap[5]&=~0x40;
; SOURCE LINE # 308
MOV A,R7
JNB ACC.2,?C0086
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0087
?C0086:
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0087:
; if(A&0x02){
; SOURCE LINE # 309
MOV A,R7
JNB ACC.1,?C0088
; BitMap[3]|=0x80;BitMap[4]|=0x20;
; SOURCE LINE # 310
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
; }else{
; SOURCE LINE # 311
SJMP ?C0089
?C0088:
; BitMap[3]&=~0x80;BitMap[4]&=~0x20;
; SOURCE LINE # 312
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
; }
; SOURCE LINE # 313
?C0089:
; if(A&0x01)BitMap[4]|=0x10;else BitMap[4]&=~0x10;
; SOURCE LINE # 314
MOV A,R7
JNB ACC.0,?C0090
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
SJMP ?C0091
?C0090:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
?C0091:
;
; // memcpy(BitMap,"\x9c\x2d\x8e\xdd\xae\xae\x72\xe5",8);
; A=CalcArea[2];
; SOURCE LINE # 317
MOV DPTR,#CalcArea?044+02H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80)BitMap[0]|=0x02;else BitMap[0]&=~0x02;
; SOURCE LINE # 318
JNB ACC.7,?C0092
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
SJMP ?C0093
?C0092:
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
?C0093:
; if(A&0x40)BitMap[5]|=0x80;else BitMap[5]&=~0x80;
; SOURCE LINE # 319
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R1,A
JNB ACC.6,?C0094
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0095
?C0094:
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0095:
; if(A&0x20)BitMap[0]|=0x80;else BitMap[0]&=~0x80;
; SOURCE LINE # 320
MOV A,R1
JNB ACC.5,?C0096
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0097
?C0096:
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0097:
; if(A&0x10)BitMap[4]|=0x40;else BitMap[4]&=~0x40;
; SOURCE LINE # 321
MOV A,R1
JNB ACC.4,?C0098
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0099
?C0098:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0099:
; if(A&0x08)BitMap[1]|=0x80;else BitMap[1]&=~0x80;
; SOURCE LINE # 322
MOV A,R1
JNB ACC.3,?C0100
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#080H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -