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

📄 desmain.src

📁 C51下把DES汇编改为C语言的程序.改进版程序.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; .\DesMain.SRC generated from: .\DesMain.c


NAME	DESMAIN

?PR?_DES?DESMAIN     SEGMENT CODE
?XD?_DES?DESMAIN     SEGMENT XDATA OVERLAYABLE
?PR?main?DESMAIN     SEGMENT CODE
?XD?main?DESMAIN     SEGMENT XDATA OVERLAYABLE
?C_INITSEG           SEGMENT CODE
?CO?DESMAIN          SEGMENT CODE
?XD?DESMAIN          SEGMENT XDATA
?DT?main?DESMAIN     SEGMENT DATA OVERLAYABLE
?PR?DESMAIN          SEGMENT CODE
	EXTRN	CODE (?C?CLDPTR)
	EXTRN	CODE (?C?CSTPTR)
	EXTRN	CODE (?C?CILDPTR)
	EXTRN	CODE (?C?IILDX)
	EXTRN	CODE (?C?COPY)
	EXTRN	CODE (?C_STARTUP)
	PUBLIC	VecExit
	PUBLIC	InitValue
	PUBLIC	SBoxes
	PUBLIC	main
	PUBLIC	_DES

	RSEG  ?XD?_DES?DESMAIN
?_DES?BYTE:
       mode?040:   DS   1
       text?041:   DS   1
	ORG  2
     BitMap?043:   DS   8
   CalcArea?044:   DS   16
       ptr0?045:   DS   3
       ptr2?046:   DS   3
         R0?047:   DS   1
         R1?048:   DS   1
         R2?049:   DS   1
         R3?050:   DS   1
         R4?051:   DS   1
         R6?052:   DS   1
         R7?053:   DS   1
          A?054:   DS   1
          B?055:   DS   1
          C?056:   DS   1
        tmp?057:   DS   1

	RSEG  ?XD?main?DESMAIN
?main?BYTE:
        key?158:   DS   8

	RSEG  ?XD?DESMAIN
      InitValue:   DS   8
        VecExit:   DS   1

	RSEG  ?DT?main?DESMAIN
       sour?159:   DS   8
       dest?160:   DS   8

	RSEG  ?CO?DESMAIN
SBoxes:
	DB	0F7H
	DB	0E5H
	DB	034H
	DB	0B2H
	DB	002H
	DB	05BH
	DB	092H
	DB	0E8H
	DB	09CH
	DB	088H
	DB	001H
	DB	05CH
	DB	0AFH
	DB	0FDH
	DB	0EFH
	DB	005H
	DB	064H
	DB	006H
	DB	09EH
	DB	06FH
	DB	05BH
	DB	031H
	DB	045H
	DB	093H
	DB	03AH
	DB	0DDH
	DB	07BH
	DB	0AAH
	DB	09CH
	DB	0AAH
	DB	086H
	DB	0F0H
	DB	01BH
	DB	079H
	DB	052H
	DB	014H
	DB	0E7H
	DB	092H
	DB	0F8H
	DB	02DH
	DB	046H
	DB	013H
	DB	0CCH
	DB	0C9H
	DB	039H
	DB	0C4H
	DB	023H
	DB	056H
	DB	0CDH
	DB	09FH
	DB	06DH
	DB	0D1H
	DB	0B4H
	DB	0ECH
	DB	03EH
	DB	07EH
	DB	0A0H
	DB	024H
	DB	0A7H
	DB	036H
	DB	04AH
	DB	017H
	DB	0D0H
	DB	0A9H
	DB	082H
	DB	0B0H
	DB	083H
	DB	04DH
	DB	078H
	DB	066H
	DB	074H
	DB	0D2H
	DB	0E5H
	DB	04BH
	DB	0BAH
	DB	093H
	DB	013H
	DB	088H
	DB	009H
	DB	06FH
	DB	0DFH
	DB	06CH
	DB	045H
	DB	0F0H
	DB	026H
	DB	0DFH
	DB	01BH
	DB	03CH
	DB	009H
	DB	032H
	DB	0E0H
	DB	005H
	DB	0C5H
	DB	045H
	DB	0BCH
	DB	0CAH
	DB	078H
	DB	0C7H
	DB	0F8H
	DB	027H
	DB	0D1H
	DB	009H
	DB	0ADH
	DB	08BH
	DB	0B3H
	DB	0AEH
	DB	02FH
	DB	07EH
	DB	06EH
	DB	073H
	DB	05AH
	DB	0B1H
	DB	021H
	DB	05AH
	DB	016H
	DB	08BH
	DB	08DH
	DB	0B0H
	DB	0C1H
	DB	047H
	DB	05EH
	DB	0F1H
	DB	0D9H
	DB	0E8H
	DB	0F0H
	DB	02EH
	DB	067H
	DB	014H
	DB	0C0H
	DB	0BBH
	DB	057H
	DB	08BH
	DB	0BFH
	DB	0C8H
	DB	02DH
	DB	046H
	DB	035H
	DB	024H
	DB	06AH
	DB	037H
	DB	0DAH
	DB	092H
	DB	0D6H
	DB	0F9H
	DB	0F7H
	DB	06CH
	DB	0E2H
	DB	052H
	DB	0C2H
	DB	056H
	DB	098H
	DB	028H
	DB	069H
	DB	083H
	DB	00CH
	DB	004H
	DB	005H
	DB	03DH
	DB	065H
	DB	0C7H
	DB	02EH
	DB	0D0H
	DB	024H
	DB	0BDH
	DB	051H
	DB	00BH
	DB	043H
	DB	07BH
	DB	083H
	DB	04AH
	DB	0BFH
	DB	06AH
	DB	0ECH
	DB	0A7H
	DB	080H
	DB	090H
	DB	01BH
	DB	006H
	DB	09BH
	DB	0E8H
	DB	028H
	DB	0B1H
	DB	0F4H
	DB	015H
	DB	0DCH
	DB	07FH
	DB	0C1H
	DB	091H
	DB	076H
	DB	044H
	DB	01AH
	DB	06CH
	DB	0BFH
	DB	01EH
	DB	0FDH
	DB	0F0H
	DB	013H
	DB	0F5H
	DB	0C1H
	DB	08DH
	DB	006H
	DB	0E1H
	DB	080H
	DB	0ACH
	DB	06DH
	DB	02FH
	DB	07FH
	DB	03AH
	DB	044H
	DB	0F2H
	DB	03EH
	DB	0C9H
	DB	0F9H
	DB	089H
	DB	0A7H
	DB	052H
	DB	09AH
	DB	05DH
	DB	0D9H
	DB	07FH
	DB	0A0H
	DB	0EAH
	DB	002H
	DB	0A4H
	DB	0E2H
	DB	0A9H
	DB	043H
	DB	01EH
	DB	084H
	DB	060H
	DB	03EH
	DB	0E1H
	DB	05DH
	DB	037H
	DB	075H
	DB	0D3H
	DB	037H
	DB	0DCH
	DB	0E9H
	DB	00FH
	DB	078H
	DB	0C5H
	DB	0A8H
	DB	025H
	DB	04EH
	DB	01EH
	DB	05BH
	DB	0BEH
	DB	0A1H
	DB	098H
	DB	016H
	DB	046H
	DB	09BH
	DB	073H
	DB	0BCH
	DB	0D3H

_?ix1000:
	DB	001H
	DB	023H
	DB	045H
	DB	067H
	DB	089H
	DB	0ABH
	DB	0CDH
	DB	0EFH

_?ix1001:
	DB	001H
	DB	023H
	DB	045H
	DB	067H
	DB	089H
	DB	0ABH
	DB	0CDH
	DB	0EFH

_?ix1002:
	DB	0A2H
	DB	0D9H
	DB	039H
	DB	016H
	DB	05DH
	DB	026H
	DB	0A4H
	DB	0CAH


	RSEG  ?C_INITSEG
	DB	041H
	DW	VecExit
	DB	001H

	DB	048H
	DW	InitValue
	DB	012H
	DB	034H
	DB	056H
	DB	078H
	DB	090H
	DB	0ABH
	DB	0CDH
	DB	0EFH

; /*--------------------------------------------------------------------------------
; DES.C: DES Algorithm Program 
; --------------------------------------------------------------------------------*/
; #include <string.h>
; #define BYTE unsigned char
; //BYTE bdata BM0,BM1,BM2,BM3,BM4,BM5,BM6,BM7;
; BYTE xdata VecExit=1;
; BYTE xdata InitValue[8]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef};
; BYTE code SBoxes[]={//BoxNr.: 2,1  4,3  6,5  8,7
;   0xF7,0xE5,0x34,0xB2,
;   0x02,0x5B,0x92,0xE8,
;   0x9C,0x88,0x01,0x5C,
;   0xAF,0xFD,0xEF,0x05,
;   0x64,0x06,0x9E,0x6F,
;   0x5B,0x31,0x45,0x93,
;   0x3A,0xDD,0x7B,0xAA,
;   0x9C,0xAA,0x86,0xF0,
;   0x1B,0x79,0x52,0x14,
;   0xE7,0x92,0xF8,0x2D,
;   0x46,0x13,0xCC,0xC9,
;   0x39,0xC4,0x23,0x56,
;   0xCD,0x9F,0x6D,0xD1,
;   0xB4,0xEC,0x3E,0x7E,
;   0xA0,0x24,0xA7,0x36,
;   0x4A,0x17,0xD0,0xA9,
;   0x82,0xB0,0x83,0x4D,
;   0x78,0x66,0x74,0xD2,
;   0xE5,0x4B,0xBA,0x93,
;   0x13,0x88,0x09,0x6F,
;   0xDF,0x6C,0x45,0xF0,
;   0x26,0xDF,0x1B,0x3C,
;   0x09,0x32,0xE0,0x05,
;   0xC5,0x45,0xBC,0xCA,
;   0x78,0xC7,0xF8,0x27,
;   0xD1,0x09,0xAD,0x8B,
;   0xB3,0xAE,0x2F,0x7E,
;   0x6E,0x73,0x5A,0xB1,
;   0x21,0x5A,0x16,0x8B,
;   0x8D,0xB0,0xC1,0x47,
;   0x5E,0xF1,0xD9,0xE8,
;   0xF0,0x2E,0x67,0x14,
;   0xC0,0xBB,0x57,0x8B,
;   0xBF,0xC8,0x2D,0x46,
;   0x35,0x24,0x6A,0x37,
;   0xDA,0x92,0xD6,0xF9,
;   0xF7,0x6C,0xE2,0x52,
;   0xC2,0x56,0x98,0x28,
;   0x69,0x83,0x0C,0x04,
;   0x05,0x3D,0x65,0xC7,
;   0x2E,0xD0,0x24,0xBD,
;   0x51,0x0B,0x43,0x7B,
;   0x83,0x4A,0xBF,0x6A,
;   0xEC,0xA7,0x80,0x90,
;   0x1B,0x06,0x9B,0xE8,
;   0x28,0xB1,0xF4,0x15,
;   0xDC,0x7F,0xC1,0x91,
;   0x76,0x44,0x1A,0x6C,
;   0xBF,0x1E,0xFD,0xF0,
;   0x13,0xF5,0xC1,0x8D,
;   0x06,0xE1,0x80,0xAC,
;   0x6D,0x2F,0x7F,0x3A,
;   0x44,0xF2,0x3E,0xC9,
;   0xF9,0x89,0xA7,0x52,
;   0x9A,0x5D,0xD9,0x7F,
;   0xA0,0xEA,0x02,0xA4,
;   0xE2,0xA9,0x43,0x1E,
;   0x84,0x60,0x3E,0xE1,
;   0x5D,0x37,0x75,0xD3,
;   0x37,0xDC,0xE9,0x0F,
;   0x78,0xC5,0xA8,0x25,
;   0x4E,0x1E,0x5B,0xBE,
;   0xA1,0x98,0x16,0x46,
;   0x9B,0x73,0xBC,0xD3};
; 

	RSEG  ?PR?DESMAIN
Com010D:
L?0270:
	USING	0
L?0271:
	MOVX 	@DPTR,A
	MOV  	DPTR,#R1?048
	MOVX 	A,@DPTR
	INC  	A
L?0272:
	MOVX 	@DPTR,A
L?0273:
	MOVX 	A,@DPTR
L?0274:
	ADD  	A,#LOW (CalcArea?044)
L?0275:
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (CalcArea?044)
	MOV  	DPH,A
	RET  	
L?0276:
	USING	0
L?0277:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	ANL  	A,#07FH
	MOVX 	@DPTR,A
	RET  	
L?0278:
	USING	0
L?0279:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	ORL  	A,#080H
	MOVX 	@DPTR,A
	RET  	
L?0280:
	USING	0
L?0281:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	RRC  	A
	MOVX 	@DPTR,A
	RET  	
L?0282:
	USING	0
	MOV  	DPTR,#R1?048
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	MOV  	A,R6
	CLR  	C
	RRC  	A
L?0283:
	MOV  	DPTR,#A?054
L?0284:
	MOVX 	@DPTR,A
	MOV  	DPTR,#R4?051
	MOVX 	A,@DPTR
	DEC  	A
	MOVX 	@DPTR,A
	RET  	
L?0285:
	USING	0
	MOV  	DPTR,#R0?047
	MOVX 	A,@DPTR
L?0286:
	ADD  	A,#LOW (BitMap?043)
L?0287:
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (BitMap?043)
	MOV  	DPH,A
	RET  	
L?0288:
	USING	0
	MOV  	A,R7
	MOV  	R5,A
	CLR  	C
	MOV  	A,#08H
L?0289:
	SUBB 	A,R5
	MOV  	R5,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	R4,A
	MOV  	A,#LOW (BitMap?043)
	ADD  	A,R5
	MOV  	DPL,A
	MOV  	A,#HIGH (BitMap?043)
	ADDC 	A,R4
	MOV  	DPH,A
	MOVX 	A,@DPTR
	RET  	
L?0290:
	USING	0
L?0291:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R5,A
	CLR  	C
	RRC  	A
	MOVX 	@DPTR,A
	RET  	
L?0292:
	USING	0
	MOVX 	A,@DPTR
	MOV  	DPTR,#tmp?057
	MOVX 	@DPTR,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	SWAP 	A
	RLC  	A
	RLC  	A
	RLC  	A
	ANL  	A,#080H
L?0293:
	MOV  	R5,A
	MOV  	A,R6
	RRC  	A
	RRC  	A
	ANL  	A,#03FH
	ADD  	A,R5
	MOV  	R6,A
	MOV  	A,#LOW (CalcArea?044)
	ADD  	A,R7
	RET  	
L?0294:
	USING	0
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R7,A
L?0295:
	MOV  	DPTR,#R1?048
	MOVX 	A,@DPTR
	ADD  	A,#LOW (CalcArea?044+08H)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (CalcArea?044+08H)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	RET  	
L?0296:
	USING	0
	MOVX 	A,@DPTR
	INC  	A
L?0297:
	MOVX 	@DPTR,A
L?0298:
	MOV  	DPTR,#R3?050
	MOVX 	A,@DPTR
	DEC  	A
	MOVX 	@DPTR,A
	RET  	
L?0299:
	USING	0
L?0300:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R6,A
	CLR  	C
	RRC  	A
	MOVX 	@DPTR,A
	RET  	
L?0301:
	USING	0
L?0302:
	MOVX 	@DPTR,A
	MOV  	DPTR,#R3?050
	MOV  	A,#08H
	MOVX 	@DPTR,A
	RET  	
L?0303:
	USING	0
L?0304:
	MOV  	R6,#00H
	MOV  	R7,#08H
	LJMP 	?C?COPY
L?0305:
	USING	0
	MOV  	DPTR,#ptr0?045
L?0306:
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	RET  	
L?0307:
	USING	0
L?0308:
	MOVX 	@DPTR,A
	MOV  	A,R4
L?0309:
	CLR  	C
	RRC  	A
	MOV  	DPTR,#A?054
	MOVX 	@DPTR,A
	RET  	
L?0310:
	USING	0
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#R0?047
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	DPTR,#text?041
	MOVX 	A,@DPTR
	ADD  	A,R6
	MOV  	R0,A
	RET  	
L?0311:
	USING	0
	MOVX 	A,@DPTR
	MOV  	R7,A
	ADD  	A,ACC
L?0312:
	ADD  	A,ACC
	MOV  	R6,A
	MOV  	A,R7
	SWAP 	A
	RRC  	A
	RRC  	A
	RET  	
L?0313:
	USING	0
L?0314:
	MOVX 	@DPTR,A
L?0315:
	MOV  	DPTR,#R0?047
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	RET  	
L?0316:
	USING	0
	MOV  	A,R6
L?0317:
	MOVX 	@DPTR,A
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	R6,A
	RET  	
L?0318:
	USING	0
L?0319:
	MOV  	DPTR,#A?054
	MOVX 	A,@DPTR
	MOV  	DPTR,#CalcArea?044
	MOVX 	@DPTR,A
	RET  	
L?0320:
	USING	0
	MOV  	DPTR,#R2?049
	MOVX 	A,@DPTR
	MOV  	DPTR,#R0?047
	MOVX 	@DPTR,A
	MOV  	DPTR,#B?055
	MOVX 	A,@DPTR
	RET  	
L?0321:
	USING	0
L?0322:
	MOV  	R7,A
	MOV  	DPTR,#text?041
	MOVX 	A,@DPTR
	ADD  	A,R7
	MOV  	R0,A
	RET  	
L?0323:
	USING	0
L?0324:
	MOV  	R6,A
	MOV  	A,R7
	XRL  	A,R6
	MOV  	DPTR,#A?054

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -