📄 desfor51.lst
字号:
A51 MACRO ASSEMBLER DESFOR51 11/19/2006 01:53:22 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\DESfor51.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\DESfor51.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;=========================================================================
2 ;功能:完成DES算法
3 ; ==>Ln=Rn-1;Rn=Ln-1 xor f(Rn-1,Kn)
4 ;名称:Des_Arithmetic()
5 ;入口: #MINGWEN,8字节明文;#MIYUE,8字节密钥;
6 ;出口: #DES_MIWEN,8字节密文;
7 ;占用:FLAG_TEMP,30H~3FH,40H~43H,48H~4FH,ACC,R0,R1,R2,R5,R6,R7
8 ;其它:a、字节的bit7~0,对应位置的1~8
9 ; b、因为用到直接寻址,变量需定义在00H~80H
10 ; c、51汇编,foc=12M,program by 唐TB DATE:2003/08/12~14
11 ; d、代码长度: 约1.5K字节 运行时间: 约11.2ms 深度:0级(无调用)
12 ;=========================================================================
0020 13 FLAG_TEMP DATA 20H ;DES算法要用到的位单元
0000 14 BIT_00H BIT 00H ;对应第8位
0001 15 BIT_01H BIT 01H ;对应第7位
0002 16 BIT_02H BIT 02H ;对应第6位
0003 17 BIT_03H BIT 03H ;对应第5位
0004 18 BIT_04H BIT 04H ;对应第4位
0005 19 BIT_05H BIT 05H ;对应第3位
0006 20 BIT_06H BIT 06H ;对应第2位
0007 21 BIT_07H BIT 07H ;对应第1位
22
0030 23 DES_TEMP0 EQU 30H ;计算(L0,R0),(C0,D0)时暂用单元,8BY
TES
0031 24 DES_TEMP1 DATA 31H
0032 25 DES_TEMP2 DATA 32H
0033 26 DES_TEMP3 DATA 33H
0034 27 DES_TEMP4 DATA 34H
0035 28 DES_TEMP5 DATA 35H
0036 29 DES_TEMP6 DATA 36H
0037 30 DES_TEMP7 DATA 37H
31
0030 32 DES_MIWEN EQU 30H ;密文首地址
0030 33 DES_Ln0 EQU 30H ;存储Ln(0~3)
0031 34 DES_Ln1 DATA 31H
0032 35 DES_Ln2 DATA 32H
0033 36 DES_Ln3 DATA 33H
0034 37 DES_Rn0 DATA 34H ;存储Dn(0~3)
0035 38 DES_Rn1 DATA 35H
0036 39 DES_Rn2 DATA 36H
0037 40 DES_Rn3 DATA 37H
41
0038 42 MINGWEN EQU 38H ;明文首地址,8bytes
0038 43 DES_L0 DATA 38H ;存储Ln-1(0~3)
0039 44 DES_L1 DATA 39H
003A 45 DES_L2 DATA 3AH
003B 46 DES_L3 DATA 3BH
003C 47 DES_R0 DATA 3CH ;存储Rn-1(0~3)
003D 48 DES_R1 DATA 3DH
003E 49 DES_R2 DATA 3EH
003F 50 DES_R3 DATA 3FH
51
0040 52 DES_Ki EQU 40H ;Ki首地址,4BYTE
0040 53 DES_Ki0 DATA 40H
0041 54 DES_Ki1 DATA 41H
0042 55 DES_Ki2 DATA 42H
0043 56 DES_Ki3 DATA 43H
57
A51 MACRO ASSEMBLER DESFOR51 11/19/2006 01:53:22 PAGE 2
0048 58 MIYUE EQU 48H ;*64位密钥,8BYTE
0048 59 DES_C0 DATA 48H ;存储Cn(0~3)
0049 60 DES_C1 DATA 49H
004A 61 DES_C2 DATA 4AH
004B 62 DES_C3 DATA 4BH
004C 63 DES_D0 DATA 4CH ;存储Dn(0~3)
004D 64 DES_D1 DATA 4DH
004E 65 DES_D2 DATA 4EH
004F 66 DES_D3 DATA 4FH
67 ;-------------------------------------------------------------------------
0040 68 BCD_BYTE3 DATA 40H ;for HEX-->BCD
0041 69 BCD_BYTE2 DATA 41H
0042 70 BCD_BYTE1 DATA 42H
0043 71 BCD_BYTE0 DATA 43H
72 ;=========================================================================
0000 73 ORG 0000H
0000 C11F 74 AJMP MAIN
0030 75 ORG 0030H
76 ;=========================================================================
77 ;构造Cn,Dn的循环移位次时
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -