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

📄 desmain.src

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