📄 desmain.src
字号:
MOVX @DPTR,A
SJMP ?C0101
?C0100:
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0101:
; if(A&0x04)BitMap[6]|=0x04;else BitMap[6]&=~0x04;
; SOURCE LINE # 323
MOV A,R1
JNB ACC.2,?C0102
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0103
?C0102:
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0103:
; if(A&0x02)BitMap[1]|=0x04;else BitMap[1]&=~0x04;
; SOURCE LINE # 324
MOV A,R1
JNB ACC.1,?C0104
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0105
?C0104:
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0105:
; if(A&0x01)BitMap[4]|=0x08;else BitMap[4]&=~0x08;
; SOURCE LINE # 325
MOV A,R1
JNB ACC.0,?C0106
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0107
?C0106:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0107:
;
; // memcpy(BitMap,"\x1c\x2d\x8e\xdd\xe6\x2e\x76\xe5",8);
; A=CalcArea[3];
; SOURCE LINE # 328
MOV DPTR,#CalcArea?044+03H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x40)BitMap[6]|=0x80;else BitMap[6]&=~0x80;
; SOURCE LINE # 329
JNB ACC.6,?C0108
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0109
?C0108:
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0109:
; if(A&0x10)BitMap[7]|=0x08;else BitMap[7]&=~0x08;
; SOURCE LINE # 330
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R7,A
JNB ACC.4,?C0110
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0111
?C0110:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0111:
; if(A&0x08)BitMap[0]|=0x01;else BitMap[0]&=~0x01;
; SOURCE LINE # 331
MOV A,R7
JNB ACC.3,?C0112
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
SJMP ?C0113
?C0112:
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
?C0113:
; if(A&0x02)BitMap[2]|=0x02;else BitMap[2]&=~0x02;
; SOURCE LINE # 332
MOV A,R7
JNB ACC.1,?C0114
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
SJMP ?C0115
?C0114:
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
?C0115:
; if(A&0x01)BitMap[6]|=0x02;else BitMap[6]&=~0x02;
; SOURCE LINE # 333
MOV A,R7
JNB ACC.0,?C0116
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
SJMP ?C0117
?C0116:
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
?C0117:
;
; // memcpy(BitMap,"\x1c\x2d\x8c\xdd\xe6\x2e\x76\xe5",8);
; A=CalcArea[4];
; SOURCE LINE # 336
MOV DPTR,#CalcArea?044+04H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80)BitMap[2]|=0x04;else BitMap[2]&=~0x04;
; SOURCE LINE # 337
JNB ACC.7,?C0118
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0119
?C0118:
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0119:
; if(A&0x40)BitMap[7]|=0x10;else BitMap[7]&=~0x10;
; SOURCE LINE # 338
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R7,A
JNB ACC.6,?C0120
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
SJMP ?C0121
?C0120:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
?C0121:
; if(A&0x20)BitMap[2]|=0x80;else BitMap[2]&=~0x80;
; SOURCE LINE # 339
MOV A,R7
JNB ACC.5,?C0122
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0123
?C0122:
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0123:
; if(A&0x08)BitMap[2]|=0x01;else BitMap[2]&=~0x01;
; SOURCE LINE # 340
MOV A,R7
JNB ACC.3,?C0124
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
SJMP ?C0125
?C0124:
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
?C0125:
; if(A&0x04)BitMap[7]|=0x20;else BitMap[7]&=~0x20;
; SOURCE LINE # 341
MOV A,R7
JNB ACC.2,?C0126
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
SJMP ?C0127
?C0126:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
?C0127:
; if(A&0x02)BitMap[0]|=0x08;else BitMap[0]&=~0x08;
; SOURCE LINE # 342
MOV A,R7
JNB ACC.1,?C0128
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0129
?C0128:
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0129:
; if(A&0x01)BitMap[7]|=0x40;else BitMap[7]&=~0x40;
; SOURCE LINE # 343
MOV A,R7
JNB ACC.0,?C0130
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0131
?C0130:
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0131:
; // memcpy(BitMap,"\x14\x2d\x09\xdd\xe6\x2e\x76\xa5",8);
; A=CalcArea[5];
; SOURCE LINE # 345
MOV DPTR,#CalcArea?044+05H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80)BitMap[3]|=0x10;else BitMap[3]&=~0x10;
; SOURCE LINE # 346
JNB ACC.7,?C0132
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
SJMP ?C0133
?C0132:
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
?C0133:
; if(A&0x40)BitMap[5]|=0x10;else BitMap[5]&=~0x10;
; SOURCE LINE # 347
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R1,A
JNB ACC.6,?C0134
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#010H
MOVX @DPTR,A
SJMP ?C0135
?C0134:
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0EFH
MOVX @DPTR,A
?C0135:
; if(A&0x20)BitMap[3]|=0x20;else BitMap[3]&=~0x20;
; SOURCE LINE # 348
MOV A,R1
JNB ACC.5,?C0136
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
SJMP ?C0137
?C0136:
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
?C0137:
; if(A&0x10)BitMap[6]|=0x40;else BitMap[6]&=~0x40;
; SOURCE LINE # 349
MOV A,R1
JNB ACC.4,?C0138
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0139
?C0138:
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0139:
; if(A&0x08)BitMap[3]|=0x40;else BitMap[3]&=~0x40;
; SOURCE LINE # 350
MOV A,R1
JNB ACC.3,?C0140
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0141
?C0140:
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0141:
; if(A&0x04)BitMap[4]|=0x02;else BitMap[4]&=~0x02;
; SOURCE LINE # 351
MOV A,R1
JNB ACC.2,?C0142
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#02H
MOVX @DPTR,A
SJMP ?C0143
?C0142:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0FDH
MOVX @DPTR,A
?C0143:
; if(A&0x02)BitMap[1]|=0x20;else BitMap[1]&=~0x20;
; SOURCE LINE # 352
MOV A,R1
JNB ACC.1,?C0144
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
SJMP ?C0145
?C0144:
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
?C0145:
; if(A&0x01)BitMap[5]|=0x04;else BitMap[5]&=~0x04;
; SOURCE LINE # 353
MOV A,R1
JNB ACC.0,?C0146
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#04H
MOVX @DPTR,A
SJMP ?C0147
?C0146:
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0FBH
MOVX @DPTR,A
?C0147:
; // memcpy(BitMap,"\x14\x0d\x09\xed\xe6\x2e\x76\xa5",8);
; A=CalcArea[6];
; SOURCE LINE # 355
MOV DPTR,#CalcArea?044+06H
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(A&0x80)BitMap[1]|=0x08;else BitMap[1]&=~0x08;
; SOURCE LINE # 356
JNB ACC.7,?C0148
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0149
?C0148:
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0149:
; if(A&0x40)BitMap[4]|=0x80;else BitMap[4]&=~0x80;
; SOURCE LINE # 357
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R7,A
JNB ACC.6,?C0150
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0151
?C0150:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#07FH
MOVX @DPTR,A
?C0151:
; if(A&0x20)BitMap[1]|=0x40;else BitMap[1]&=~0x40;
; SOURCE LINE # 358
MOV A,R7
JNB ACC.5,?C0152
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0153
?C0152:
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0153:
; if(A&0x10)BitMap[5]|=0x20;else BitMap[5]&=~0x20;
; SOURCE LINE # 359
MOV A,R7
JNB ACC.4,?C0154
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
SJMP ?C0155
?C0154:
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
?C0155:
; if(A&0x08)BitMap[0]|=0x40;else BitMap[0]&=~0x40;
; SOURCE LINE # 360
MOV A,R7
JNB ACC.3,?C0156
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ORL A,#040H
MOVX @DPTR,A
SJMP ?C0157
?C0156:
MOV DPTR,#BitMap?043
MOVX A,@DPTR
ANL A,#0BFH
MOVX @DPTR,A
?C0157:
; if(A&0x02)BitMap[3]|=0x08;else BitMap[3]&=~0x08;
; SOURCE LINE # 361
MOV A,R7
JNB ACC.1,?C0158
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ORL A,#08H
MOVX @DPTR,A
SJMP ?C0159
?C0158:
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
ANL A,#0F7H
MOVX @DPTR,A
?C0159:
; if(A&0x01)BitMap[4]|=0x01;else BitMap[4]&=~0x01;
; SOURCE LINE # 362
MOV A,R7
JNB ACC.0,?C0160
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ORL A,#01H
MOVX @DPTR,A
SJMP ?C0161
?C0160:
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
ANL A,#0FEH
MOVX @DPTR,A
?C0161:
; // memcpy(BitMap,"\x14\x0d\x09\xe5\x66\x2e\x76\xa5",8);
; if(mode&0x30) //= Decode~, BuildMac
; SOURCE LINE # 364
MOV DPTR,#mode?040
MOVX A,@DPTR
ANL A,#030H
JNZ ?_DES?InitExpand
; goto InitExpand;
; SOURCE LINE # 365
?C0162:
; R0=R2;
; SOURCE LINE # 366
; B--;
; SOURCE LINE # 367
LCALL L?0320
DEC A
MOVX @DPTR,A
; C=(B!=0);
; SOURCE LINE # 368
MOVX A,@DPTR
JZ ?C0164
MOV R7,#01H
SJMP ?C0165
?C0164:
MOV R7,#00H
?C0165:
MOV DPTR,#C?056
MOV A,R7
MOVX @DPTR,A
; A=R3;
; SOURCE LINE # 369
MOV DPTR,#R3?050
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; if(R3==0)C=0;
; SOURCE LINE # 370
JNZ ?C0166
MOV DPTR,#C?056
MOVX @DPTR,A
?C0166:
; A=CalcArea[0];
; SOURCE LINE # 371
MOV DPTR,#CalcArea?044
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; DecShift2:
; SOURCE LINE # 372
?_DES?DecShift2:
; for(R4=6;R4!=0;R4--)
; SOURCE LINE # 373
MOV DPTR,#R4?051
MOV A,#06H
MOVX @DPTR,A
?C0168:
MOV DPTR,#R4?051
MOVX A,@DPTR
MOV R7,A
JZ ?C0169
; {
; SOURCE LINE # 374
; tmp=A;
; SOURCE LINE # 375
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R6,A
MOV DPTR,#tmp?057
MOVX @DPTR,A
; A=CalcArea[7-R4];
; SOURCE LINE # 376
MOV A,R7
MOV R5,A
CLR C
MOV A,#07H
SUBB A,R5
MOV R5,A
CLR A
SUBB A,#00H
MOV R4,A
LCALL L?0328
MOVX A,@DPTR
MOV DPTR,#A?054
MOVX @DPTR,A
; CalcArea[7-R4]=tmp;
; SOURCE LINE # 377
LCALL L?0328
MOV A,R6
; }
; SOURCE LINE # 378
LCALL L?0284
SJMP ?C0168
?C0169:
; A=(A<<2)+(A>>6);
; SOURCE LINE # 379
MOV DPTR,#A?054
LCALL L?0311
ANL A,#03H
ADD A,R6
MOVX @DPTR,A
; if(C!=0)
; SOURCE LINE # 380
MOV DPTR,#C?056
MOVX A,@DPTR
JZ ?C0171
; {
; SOURCE LINE # 381
; C=0;
; SOURCE LINE # 382
CLR A
MOVX @DPTR,A
; goto DecShift2;
; SOURCE LINE # 383
SJMP ?_DES?DecShift2
; }
; SOURCE LINE # 384
?C0171:
; CalcArea[0]=A;
; SOURCE LINE # 385
LCALL L?0319
; InitExpand:;
; SOURCE LINE # 386
?_DES?InitExpand:
; // DPTR=SBoxes;
; A=CalcArea[R1];
; SOURCE LINE # 388
MOV DPTR,#R1?048
LCALL L?0273
; R1+=3;
; SOURCE LINE # 389
LCALL L?0331
ADD A,#03H
MOVX @DPTR,A
; for(R4=4,R0=0;R4!=0;R4--)
; SOURCE LINE # 390
MOV DPTR,#R4?051
MOV A,#04H
MOVX @DPTR,A
CLR A
MOV DPTR,#R0?047
MOVX @DPTR,A
?C0172:
; {
; SOURCE LINE # 391
; //ExpXorSBox:
; tmp=A;A=(A&0xf0)+(CalcArea[R1]&0x0f);CalcArea[R1]=(CalcArea[R1]&0xf0)+(tmp&0x0f);
; SOURCE LINE # 393
LCALL L?0332
MOV DPTR,#R1?048
MOVX A,@DPTR
MOV R1,A
LCALL L?0274
MOVX A,@DPTR
MOV R6,A
ANL A,#0FH
MOV R5,A
MOV A,R7
ANL A,#0F0H
ADD A,R5
MOV DPTR,#A?054
MOVX @DPTR,A
MOV A,R6
ANL A,#0F0H
MOV R7,A
MOV DPTR,#tmp?057
MOVX A,@DPTR
ANL A,#0FH
ADD A,R7
MOV R7,A
MOV A,#LOW (CalcArea?044)
ADD A,R1
LCALL L?0275
MOV A,R7
MOVX @DPTR,A
; tmp=BitMap[R0];BitMap[R0]=A;A=tmp;
; SOURCE LINE # 394
MOV DPTR,#R0?047
MOVX A,@DPTR
MOV R7,A
LCALL L?0286
MOVX A,@DPTR
MOV DPTR,#tmp?057
LCALL L?0317
MOV A,#LOW (BitMap?043)
ADD A,R7
LCALL L?0287
MOV A,R6
MOVX @DPTR,A
MOV DPTR,#tmp?057
MOVX A,@DPTR
MOV R6,A
MOV DPTR,#A?054
MOVX @DPTR,A
; A=A^BitMap[R0];
; SOURCE LINE # 395
MOV A,#LOW (BitMap?043)
ADD A,R7
LCALL L?0287
MOVX A,@DPTR
MOV R7,A
XRL A,R6
MOV DPTR,#A?054
MOVX @DPTR,A
; A=(A>>4)+(A<<4);
; SOURCE LINE # 396
MOVX A,@DPTR
MOV R6,A
SWAP A
ANL A,#0F0H
MOV R5,A
MOV A,R6
SWAP A
ANL A,#0FH
ADD A,R5
MOVX @DPTR,A
; A=A&0xfc;
; SOURCE LINE # 397
ANL A,#0FCH
MOVX @DPTR,A
; A=SBoxes[4-R4+A];
; SOURCE LINE # 398
MOV DPTR,#R4?051
MOVX A,@DPTR
MOV R6,A
CLR C
MOV A,#04H
SUBB A,R6
MOV R6,A
MOV DPTR,#A?054
MOVX A,@DPTR
ADD A,R6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -