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

📄 desmain.src

📁 C51下把DES汇编改为C语言的程序.改进版程序.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	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 + -