START: ;密钥生成模块
;47H~40H中存放初始密钥,输出结果存放在80H~FFH,每一圈的圈子密钥没6bit单独存放在一个字节,共8B
MOV 47H,#01H
MOV 46H,#23H
MOV 45H,#45H
MOV 44H,#67H
MOV 43H,#89H
MOV 42H,#0ABH
MOV 41H,#0CDH
MOV 40H,#0EFH
LCALL KEY
;输入明文,;4FH~48H中存放明文,47H~40H加密存放输出序列
MOV 4FH,#66H;输入明文
MOV 4EH,#6FH
MOV 4DH,#72H
MOV 4CH,#20H
MOV 4BH,#61H
MOV 4AH,#6CH
MOV 49H,#6CH
MOV 48H,#20H
LCALL DES
;结果存放
RET
DES: ;初始明文移入27H~20H
MOV 27H,4FH
MOV 26H,4EH
MOV 25H,4DH
MOV 24H,4CH
MOV 23H,4BH
MOV 22H,4AH
MOV 21H,49H
MOV 20H,48H
;初始置换IP,置换后8B数据存放在2FH~28H
LCALL RIP
;S盒定义
;第一圈函数,结果仍然存放在2FH~28H
LCALL ROUND1
LCALL ROUND2
LCALL ROUND3
LCALL ROUND4
LCALL ROUND5
LCALL ROUND6
LCALL ROUND7
LCALL ROUND8
LCALL ROUND9
LCALL ROUND10
LCALL ROUND11
LCALL ROUND12
LCALL ROUND13
LCALL ROUND14
LCALL ROUND15
LCALL ROUND16
LCALL IP_1
SJMP $
RET
RIP: ;初始置换IP
MOV C,06H;输出的第一字节
MOV 7FH,C
MOV C,0EH
MOV 7EH,C
MOV C,16H
MOV 7DH,C
MOV C,1EH
MOV 7CH,C
MOV C,26H
MOV 7BH,C
MOV C,2EH
MOV 7AH,C
MOV C,36H
MOV 79H,C
MOV C,3EH
MOV 78H,C
MOV C,04H;输出的第二字节
MOV 77H,C
MOV C,0CH
MOV 76H,C
MOV C,14H
MOV 75H,C
MOV C,1CH
MOV 74H,C
MOV C,24H
MOV 73H,C
MOV C,2CH
MOV 72H,C
MOV C,34H
MOV 71H,C
MOV C,3CH
MOV 70H,C
MOV C,02H;输出的第三字节
MOV 6FH,C
MOV C,0AH
MOV 6EH,C
MOV C,12H
MOV 6DH,C
MOV C,1AH
MOV 6CH,C
MOV C,22H
MOV 6BH,C
MOV C,2AH
MOV 6AH,C
MOV C,32H
MOV 69H,C
MOV C,3AH
MOV 68H,C
MOV C,00H;输出的第四字节
MOV 67H,C
MOV C,08H
MOV 66H,C
MOV C,10H
MOV 65H,C
MOV C,18H
MOV 64H,C
MOV C,20H
MOV 63H,C
MOV C,28H
MOV 62H,C
MOV C,30H
MOV 61H,C
MOV C,38H
MOV 60H,C
MOV C,07H;输出的第五字节
MOV 5FH,C
MOV C,0FH
MOV 5EH,C
MOV C,17H
MOV 5DH,C
MOV C,1FH
MOV 5CH,C
MOV C,27H
MOV 5BH,C
MOV C,2FH
MOV 5AH,C
MOV C,37H
MOV 59H,C
MOV C,3FH
MOV 58H,C
MOV C,05H;输出的第六字节
MOV 57H,C
MOV C,0DH
MOV 56H,C
MOV C,15H
MOV 55H,C
MOV C,1DH
MOV 54H,C
MOV C,25H
MOV 53H,C
MOV C,2DH
MOV 52H,C
MOV C,35H
MOV 51H,C
MOV C,3DH
MOV 50H,C
MOV C,03H;输出的第七字节
MOV 4FH,C
MOV C,0BH
MOV 4EH,C
MOV C,13H
MOV 4DH,C
MOV C,1BH
MOV 4CH,C
MOV C,23H
MOV 4BH,C
MOV C,2BH
MOV 4AH,C
MOV C,33H
MOV 49H,C
MOV C,3BH
MOV 48H,C
MOV C,01H;输出的第八字节
MOV 47H,C
MOV C,09H
MOV 46H,C
MOV C,11H
MOV 45H,C
MOV C,19H
MOV 44H,C
MOV C,21H
MOV 43H,C
MOV C,29H
MOV 42H,C
MOV C,31H
MOV 41H,C
MOV C,39H
MOV 40H,C
RET
IP_1: MOV C,58H
MOV 3FH,C
MOV C,78H
MOV 3EH,C
MOV C,50H
MOV 3DH,C
MOV C,70H
MOV 3CH,C
MOV C,48H
MOV 3BH,C
MOV C,68H
MOV 3AH,C
MOV C,40H
MOV 39H,C
MOV C,60H
MOV 38H,C
MOV C,59H
MOV 37H,C
MOV C,79H
MOV 36H,C
MOV C,51H
MOV 35H,C
MOV C,71H
MOV 34H,C
MOV C,49H
MOV 33H,C
MOV C,69H
MOV 32H,C
MOV C,41H
MOV 31H,C
MOV C,61H
MOV 30H,C
MOV C,5AH
MOV 2FH,C
MOV C,7AH
MOV 2EH,C
MOV C,52H
MOV 2DH,C
MOV C,72H
MOV 2CH,C
MOV C,4AH
MOV 2BH,C
MOV C,6AH
MOV 2AH,C
MOV C,42H
MOV 29H,C
MOV C,62H
MOV 28H,C
MOV C,5BH
MOV 27H,C
MOV C,7BH
MOV 26H,C
MOV C,53H
MOV 25H,C
MOV C,73H
MOV 24H,C
MOV C,4BH
MOV 23H,C
MOV C,6BH
MOV 22H,C
MOV C,43H
MOV 21H,C
MOV C,63H
MOV 20H,C
MOV C,5CH
MOV 1FH,C
MOV C,7CH
MOV 1EH,C
MOV C,54H
MOV 1DH,C
MOV C,74H
MOV 1CH,C
MOV C,4CH
MOV 1BH,C
MOV C,6CH
MOV 1AH,C
MOV C,44H
MOV 19H,C
MOV C,64H
MOV 18H,C
MOV C,5DH
MOV 17H,C
MOV C,7DH
MOV 16H,C
MOV C,55H
MOV 15H,C
MOV C,75H
MOV 14H,C
MOV C,4DH
MOV 13H,C
MOV C,6DH
MOV 12H,C
MOV C,45H
MOV 11H,C
MOV C,65H
MOV 10H,C
MOV C,5EH
MOV 0FH,C
MOV C,7EH
MOV 0EH,C
MOV C,56H
MOV 0DH,C
MOV C,76H
MOV 0CH,C
MOV C,4EH
MOV 0BH,C
MOV C,6EH
MOV 0AH,C
MOV C,46H
MOV 09H,C
MOV C,66H
MOV 08H,C
MOV C,5FH
MOV 07H,C
MOV C,7FH
MOV 06H,C
MOV C,57H
MOV 05H,C
MOV C,77H
MOV 04H,C
MOV C,4FH
MOV 03H,C
MOV C,6FH
MOV 02H,C
MOV C,47H
MOV 01H,C
MOV C,67H
MOV 00H,C
RET
KEY: ;初始密钥移入27H~20H
MOV 27H,47H
MOV 26H,46H
MOV 25H,45H
MOV 24H,44H
MOV 23H,43H
MOV 22H,42H
MOV 21H,41H
MOV 20H,40H
;置换选择1,置换后7B数据存放在2EH~28H
LCALL KEYP1
;第一圈,左移一位
LCALL KEYSHIFT
;置换选择2
MOV C,6AH;第一字节
MOV ACC.5,C
MOV C,67H
MOV ACC.4,C
MOV C,6DH
MOV ACC.3,C
MOV C,60H
MOV ACC.2,C
MOV C,77H
MOV ACC.1,C
MOV C,73H
MOV ACC.0,C
MOV R0,#0FFH
MOV @R0,ACC
MOV C,75H;第二字节
MOV ACC.5,C
MOV C,5CH
MOV ACC.4,C
MOV C,69H
MOV ACC.3,C
MOV C,72H
MOV ACC.2,C
MOV C,63H
MOV ACC.1,C
MOV C,6EH
MOV ACC.0,C
MOV R0,#0FEH
MOV @R0,ACC
MOV C,61H;第三字节
MOV ACC.5,C
MOV C,65H
MOV ACC.4,C
MOV C,6CH
MOV ACC.3,C
MOV C,74H
MOV ACC.2,C
MOV C,5EH
MOV ACC.1,C
MOV C,70H
MOV ACC.0,C
MOV R0,#0FDH
MOV @R0,ACC
MOV C,68H;第四字节
MOV ACC.5,C
MOV C,71H
MOV ACC.4,C
MOV C,5DH
MOV ACC.3,C
MOV C,64H
MOV ACC.2,C
MOV C,6BH
MOV ACC.1,C
MOV C,76H
MOV ACC.0,C
MOV R0,#0FCH
MOV @R0,ACC
MOV C,4FH;第五字节
MOV ACC
DES.rar_des
版权申诉
154 浏览量
2022-09-20
18:27:28
上传
评论
收藏 4KB RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+