📄 desmain.src
字号:
MOV DPTR,#SBoxes
MOVC A,@A+DPTR
MOV R5,A
MOV DPTR,#A?054
MOVX @DPTR,A
; tmp=A;
; SOURCE LINE # 399
MOV DPTR,#tmp?057
MOVX @DPTR,A
; A=BitMap[R0];
; SOURCE LINE # 400
MOV DPTR,#A?054
MOV A,R7
MOVX @DPTR,A
; BitMap[R0]=tmp;
; SOURCE LINE # 401
LCALL L?0285
MOV A,R5
; R0++;
; SOURCE LINE # 402
LCALL L?0313
; tmp=A;A=(A&0xf0)+(CalcArea[R1]&0x0f);CalcArea[R1]=(CalcArea[R1]&0xf0)+(tmp&0x0f);
; SOURCE LINE # 403
LCALL L?0332
MOV R5,A
MOV A,#LOW (CalcArea?044)
ADD A,R1
LCALL L?0275
MOVX A,@DPTR
MOV R4,A
ANL A,#0FH
MOV R3,A
MOV A,R7
ANL A,#0F0H
ADD A,R3
MOV DPTR,#A?054
MOVX @DPTR,A
MOV A,R4
ANL A,#0F0H
MOV R7,A
MOV A,R5
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
; A=CalcArea[R1];
; SOURCE LINE # 404
MOV A,#LOW (CalcArea?044)
ADD A,R1
LCALL L?0275
MOVX A,@DPTR
MOV R7,A
MOV DPTR,#A?054
MOVX @DPTR,A
; A=A^BitMap[R0];
; SOURCE LINE # 405
MOV DPTR,#R0?047
MOVX A,@DPTR
MOV R5,A
LCALL L?0286
MOVX A,@DPTR
XRL A,R7
MOV DPTR,#A?054
MOVX @DPTR,A
; A=A&0xfc;
; SOURCE LINE # 406
ANL A,#0FCH
MOVX @DPTR,A
; BitMap[R0]=SBoxes[4-R4+A];
; SOURCE LINE # 407
ADD A,R6
MOV DPTR,#SBoxes
MOVC A,@A+DPTR
MOV R7,A
MOV A,#LOW (BitMap?043)
ADD A,R5
LCALL L?0287
MOV A,R7
; R0++;
; SOURCE LINE # 408
LCALL L?0313
; A=CalcArea[R1];
; SOURCE LINE # 409
MOV A,#LOW (CalcArea?044)
ADD A,R1
LCALL L?0275
; R1--;
; SOURCE LINE # 410
LCALL L?0331
DEC A
; }
; SOURCE LINE # 411
LCALL L?0284
MOVX A,@DPTR
JZ $ + 5H
LJMP ?C0172
?C0173:
; if((R3-1)&0x01)//Odd Round?
; SOURCE LINE # 412
MOV DPTR,#R3?050
MOVX A,@DPTR
DEC A
JNB ACC.0,?C0175
; {
; SOURCE LINE # 413
; R1+=8;
; SOURCE LINE # 414
MOV DPTR,#R1?048
MOVX A,@DPTR
ADD A,#08H
MOVX @DPTR,A
; }
; SOURCE LINE # 415
?C0175:
; A>>=1;
; SOURCE LINE # 416
LCALL L?0280
; if(BitMap[1]&0x40)A|=0x80;else A&=~0x80;
; SOURCE LINE # 417
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
JNB ACC.6,?C0176
LCALL L?0278
SJMP ?C0177
?C0176:
LCALL L?0276
?C0177:
; A>>=1;
; SOURCE LINE # 418
LCALL L?0280
; if(BitMap[4]&0x08)A|=0x80;else A&=~0x80;
; SOURCE LINE # 419
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
MOV R7,A
JNB ACC.3,?C0178
LCALL L?0278
SJMP ?C0179
?C0178:
LCALL L?0276
?C0179:
; A>>=1;
; SOURCE LINE # 420
LCALL L?0299
; if(BitMap[5]&0x10)A|=0x80;else A&=~0x80;
; SOURCE LINE # 421
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
MOV R6,A
JNB ACC.4,?C0180
LCALL L?0279
SJMP ?C0181
?C0180:
LCALL L?0277
?C0181:
; A>>=1;
; SOURCE LINE # 422
LCALL L?0290
; if(BitMap[7]&0x10)A|=0x80;else A&=~0x80;
; SOURCE LINE # 423
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
JNB ACC.4,?C0182
LCALL L?0279
SJMP ?C0183
?C0182:
LCALL L?0277
?C0183:
; A>>=1;
; SOURCE LINE # 424
LCALL L?0290
; if(BitMap[2]&0x08)A|=0x80;else A&=~0x80;
; SOURCE LINE # 425
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
JNB ACC.3,?C0184
LCALL L?0279
SJMP ?C0185
?C0184:
LCALL L?0277
?C0185:
; A>>=1;
; SOURCE LINE # 426
LCALL L?0291
; if(BitMap[6]&0x08)A|=0x80;else A&=~0x80;
; SOURCE LINE # 427
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
MOV R5,A
JNB ACC.3,?C0186
LCALL L?0279
SJMP ?C0187
?C0186:
LCALL L?0277
?C0187:
; A>>=1;
; SOURCE LINE # 428
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R4,A
CLR C
RRC A
MOVX @DPTR,A
; if(BitMap[4]&0x01)A|=0x80;else A&=~0x80;
; SOURCE LINE # 429
MOV A,R7
JNB ACC.0,?C0188
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0189
?C0188:
LCALL L?0277
?C0189:
; A>>=1;
; SOURCE LINE # 430
LCALL L?0281
; if(BitMap[0]&0x01)A|=0x80;else A&=~0x80;
; SOURCE LINE # 431
MOV DPTR,#BitMap?043
MOVX A,@DPTR
JNB ACC.0,?C0190
LCALL L?0279
SJMP ?C0191
?C0190:
LCALL L?0277
?C0191:
; CalcArea[R1]^=A;
; SOURCE LINE # 432
MOV DPTR,#R1?048
LCALL L?0273
PUSH DPH
PUSH DPL
LCALL L?0329
MOV R4,A
MOV A,R7
XRL A,R4
POP DPL
POP DPH
;
; A>>=1;
; SOURCE LINE # 434
LCALL L?0307
; if(BitMap[3]&0x40)A|=0x80;else A&=~0x80;
; SOURCE LINE # 435
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
JNB ACC.6,?C0192
LCALL L?0279
SJMP ?C0193
?C0192:
LCALL L?0277
?C0193:
; A>>=1;
; SOURCE LINE # 436
LCALL L?0281
; if(BitMap[5]&0x40)A|=0x80;else A&=~0x80;
; SOURCE LINE # 437
MOV A,R6
JNB ACC.6,?C0194
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0195
?C0194:
LCALL L?0277
?C0195:
; A>>=1;
; SOURCE LINE # 438
LCALL L?0281
; if(BitMap[6]&0x02)A|=0x80;else A&=~0x80;
; SOURCE LINE # 439
MOV A,R5
JNB ACC.1,?C0196
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0197
?C0196:
LCALL L?0277
?C0197:
; A>>=1;
; SOURCE LINE # 440
LCALL L?0281
; if(BitMap[1]&0x10)A|=0x80;else A&=~0x80;
; SOURCE LINE # 441
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
MOV R7,A
JNB ACC.4,?C0198
LCALL L?0279
SJMP ?C0199
?C0198:
LCALL L?0277
?C0199:
; A>>=1;
; SOURCE LINE # 442
LCALL L?0299
; if(BitMap[4]&0x02)A|=0x80;else A&=~0x80;
; SOURCE LINE # 443
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
JNB ACC.1,?C0200
LCALL L?0279
SJMP ?C0201
?C0200:
LCALL L?0277
?C0201:
; A>>=1;
; SOURCE LINE # 444
LCALL L?0300
; if(BitMap[7]&0x40)A|=0x80;else A&=~0x80;
; SOURCE LINE # 445
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
MOV R6,A
JNB ACC.6,?C0202
LCALL L?0279
SJMP ?C0203
?C0202:
LCALL L?0277
?C0203:
; A>>=1;
; SOURCE LINE # 446
LCALL L?0291
; if(BitMap[2]&0x02)A|=0x80;else A&=~0x80;
; SOURCE LINE # 447
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
JNB ACC.1,?C0204
LCALL L?0279
SJMP ?C0205
?C0204:
LCALL L?0277
?C0205:
; A>>=1;
; SOURCE LINE # 448
LCALL L?0291
; if(BitMap[0]&0x02)A|=0x80;else A&=~0x80;
; SOURCE LINE # 449
MOV DPTR,#BitMap?043
MOVX A,@DPTR
JNB ACC.1,?C0206
LCALL L?0279
SJMP ?C0207
?C0206:
LCALL L?0277
?C0207:
; R1--;
; SOURCE LINE # 450
MOV DPTR,#R1?048
MOVX A,@DPTR
DEC A
; CalcArea[R1]^=A;
; SOURCE LINE # 451
LCALL L?0272
PUSH DPH
PUSH DPL
LCALL L?0333
POP DPL
POP DPH
;
; A>>=1;
; SOURCE LINE # 453
LCALL L?0307
; if(BitMap[1]&0x80)A|=0x80;else A&=~0x80;
; SOURCE LINE # 454
MOV A,R7
JNB ACC.7,?C0208
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0209
?C0208:
LCALL L?0277
?C0209:
; A>>=1;
; SOURCE LINE # 455
LCALL L?0281
; if(BitMap[5]&0x80)A|=0x80;else A&=~0x80;
; SOURCE LINE # 456
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
JNB ACC.7,?C0210
LCALL L?0279
SJMP ?C0211
?C0210:
LCALL L?0277
?C0211:
; A>>=1;
; SOURCE LINE # 457
LCALL L?0281
; if(BitMap[3]&0x20)A|=0x80;else A&=~0x80;
; SOURCE LINE # 458
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
MOV R7,A
JNB ACC.5,?C0212
LCALL L?0279
SJMP ?C0213
?C0212:
LCALL L?0277
?C0213:
; A>>=1;
; SOURCE LINE # 459
LCALL L?0291
; if(BitMap[7]&0x80)A|=0x80;else A&=~0x80;
; SOURCE LINE # 460
MOV A,R6
JNB ACC.7,?C0214
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0215
?C0214:
LCALL L?0277
?C0215:
; A>>=1;
; SOURCE LINE # 461
LCALL L?0300
; if(BitMap[6]&0x04)A|=0x80;else A&=~0x80;
; SOURCE LINE # 462
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
JNB ACC.2,?C0216
LCALL L?0279
SJMP ?C0217
?C0216:
LCALL L?0277
?C0217:
; A>>=1;
; SOURCE LINE # 463
LCALL L?0300
; if(BitMap[0]&0x04)A|=0x80;else A&=~0x80;
; SOURCE LINE # 464
MOV DPTR,#BitMap?043
MOVX A,@DPTR
JNB ACC.2,?C0218
LCALL L?0279
SJMP ?C0219
?C0218:
LCALL L?0277
?C0219:
; A>>=1;
; SOURCE LINE # 465
LCALL L?0300
; if(BitMap[2]&0x01)A|=0x80;else A&=~0x80;
; SOURCE LINE # 466
MOV DPTR,#BitMap?043+02H
MOVX A,@DPTR
MOV R6,A
JNB ACC.0,?C0220
LCALL L?0279
SJMP ?C0221
?C0220:
LCALL L?0277
?C0221:
; A>>=1;
; SOURCE LINE # 467
LCALL L?0291
; if(BitMap[4]&0x04)A|=0x80;else A&=~0x80;
; SOURCE LINE # 468
MOV DPTR,#BitMap?043+04H
MOVX A,@DPTR
JNB ACC.2,?C0222
LCALL L?0279
SJMP ?C0223
?C0222:
LCALL L?0277
?C0223:
; R1--;
; SOURCE LINE # 469
MOV DPTR,#R1?048
MOVX A,@DPTR
DEC A
; CalcArea[R1]^=A;
; SOURCE LINE # 470
LCALL L?0272
PUSH DPH
PUSH DPL
LCALL L?0333
POP DPL
POP DPH
;
; A>>=1;
; SOURCE LINE # 472
LCALL L?0308
; if(BitMap[3]&0x10)A|=0x80;else A&=~0x80;
; SOURCE LINE # 473
MOV A,R7
JNB ACC.4,?C0224
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0225
?C0224:
LCALL L?0277
?C0225:
; A>>=1;
; SOURCE LINE # 474
LCALL L?0281
; if(BitMap[7]&0x20)A|=0x80;else A&=~0x80;
; SOURCE LINE # 475
MOV DPTR,#BitMap?043+07H
MOVX A,@DPTR
JNB ACC.5,?C0226
LCALL L?0279
SJMP ?C0227
?C0226:
LCALL L?0277
?C0227:
; A>>=1;
; SOURCE LINE # 476
LCALL L?0281
; if(BitMap[1]&0x20)A|=0x80;else A&=~0x80;
; SOURCE LINE # 477
MOV DPTR,#BitMap?043+01H
MOVX A,@DPTR
JNB ACC.5,?C0228
LCALL L?0279
SJMP ?C0229
?C0228:
LCALL L?0277
?C0229:
; A>>=1;
; SOURCE LINE # 478
LCALL L?0281
; if(BitMap[5]&0x20)A|=0x80;else A&=~0x80;
; SOURCE LINE # 479
MOV DPTR,#BitMap?043+05H
MOVX A,@DPTR
JNB ACC.5,?C0230
LCALL L?0279
SJMP ?C0231
?C0230:
LCALL L?0277
?C0231:
; A>>=1;
; SOURCE LINE # 480
LCALL L?0281
; if(BitMap[2]&0x04)A|=0x80;else A&=~0x80;
; SOURCE LINE # 481
MOV A,R6
JNB ACC.2,?C0232
MOVX A,@DPTR
ORL A,#080H
MOVX @DPTR,A
SJMP ?C0233
?C0232:
LCALL L?0277
?C0233:
; A>>=1;
; SOURCE LINE # 482
LCALL L?0281
; if(BitMap[0]&0x08)A|=0x80;else A&=~0x80;
; SOURCE LINE # 483
MOV DPTR,#BitMap?043
MOVX A,@DPTR
JNB ACC.3,?C0234
LCALL L?0279
SJMP ?C0235
?C0234:
LCALL L?0277
?C0235:
; A>>=1;
; SOURCE LINE # 484
LCALL L?0281
; if(BitMap[6]&0x01)A|=0x80;else A&=~0x80;
; SOURCE LINE # 485
MOV DPTR,#BitMap?043+06H
MOVX A,@DPTR
JNB ACC.0,?C0236
LCALL L?0279
SJMP ?C0237
?C0236:
LCALL L?0277
?C0237:
; A>>=1;
; SOURCE LINE # 486
LCALL L?0281
; if(BitMap[3]&0x80)A|=0x80;else A&=~0x80;
; SOURCE LINE # 487
MOV DPTR,#BitMap?043+03H
MOVX A,@DPTR
JNB ACC.7,?C0238
LCALL L?0279
SJMP ?C0239
?C0238:
LCALL L?0277
?C0239:
; R1--;
; SOURCE LINE # 488
MOV DPTR,#R1?048
MOVX A,@DPTR
DEC A
; CalcArea[R1]^=A;
; SOURCE LINE # 489
LCALL L?0272
PUSH DPH
PUSH DPL
LCALL L?0330
MOV R6,A
MOV A,R7
XRL A,R6
POP DPL
POP DPH
; }
; SOURCE LINE # 490
LCALL L?0297
LJMP ?C0049
?C0050:
; // Normalize output of 16 rounds
; //PreOutput:
; BitMap[7]=CalcArea[R1];
; SOURCE LINE # 493
MOV DPTR,#R1?048
LCALL L?0273
MOVX A,@DPTR
MOV DPTR,#BitMap?043+07H
; R1++;
; SOURCE LINE # 494
; BitMap[5]=CalcArea[R1];
; SOURCE LINE # 495
LCALL L?0270
MOVX A,@DPTR
MOV DPTR,#BitMap?043+05H
; R1++;
; SOURCE LINE # 496
; BitMap[3]=CalcArea[R1];
; SOURCE LINE # 497
LCALL L?0270
MOVX A,@DPTR
MOV DPTR,#BitMap?043+03H
; R1++;
; SOURCE LINE # 498
; BitMap[1]=CalcArea[R1];
; SOURCE LINE # 499
LCALL L?0271
MOVX A,@DPTR
MOV DPTR,#BitMap?043+01H
; R1++;
; SOURCE LINE # 500
; BitMap[6]=CalcArea[R1];
; SOURCE LINE # 501
LCALL L?0271
MOVX A,@DPTR
MOV DPTR,#BitMap?043+06H
; R1++;
; SOURCE LINE # 502
; BitMap[4]=CalcArea[R1];
; SOURCE LINE # 503
LCALL L?0271
MOVX A,@DPTR
MOV DPTR,#BitMap?043+04H
; R1++;
; SOURCE LINE # 504
; BitMap[2]=CalcArea[R1];
; SOURCE LINE # 505
LCALL L?0271
MOVX A,@DPTR
MOV DPTR,#BitMap?043+02H
; R1++;
; SOURCE LINE # 506
; BitMap[0]=CalcArea[R1];
; SOURCE LINE # 507
LCALL L?0271
MOVX A,@DPTR
MOV DPTR,#BitMap?043
;
; //InvItPerm:
; for(R3=8,R0=0;R3!=0;R3--)
; SOURCE LINE # 510
LCALL L?0301
CLR A
MOV DPTR,#R0?047
MOVX @DPTR,A
?C0240:
; {
; SOURCE LINE # 511
; A=BitMap[R0];
; SOURCE LINE # 512
LCALL L?0285
MOVX A,@DPTR
MOV DPTR,#A?054
; R0++;
; SOURCE LINE # 513
LCALL L?0314
; A=(A<<1)+(A>>7);
; SOURCE LINE # 514
MOV DPTR,#A?054
MOVX A,@DPTR
MOV R7,A
LCALL L?0312
RRC A
ANL A,#01H
ADD A,R6
; for(R4=8;R4!=0;R4--)
; SOURCE LINE # 515
LCALL L?0326
?C0243:
; {
; SOURCE LINE # 516
; CalcArea[R1]<<=1;
; SOURCE LINE # 517
MOV DPTR,#R1?048
MOVX A,@DPTR
MOV R7,A
LCALL L?0274
MOVX A,@DPTR
MOV R6,A
ADD A,ACC
; if(A&0x01)CalcArea[R1]|=0x01;else CalcArea[R1]&=~0x01;
; SOURCE LINE # 518
LCALL L?0317
JNB ACC.0,?C0246
MOV A,#LOW (CalcArea?044)
ADD A,R7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -