利用汇编语言实现DES加密算法(2)
2016-06-01 01:11
导读:;功能:将入口寄存器的数据按置换表换位。 IP:MOVC,06H;将m58送到进位标志中 MOV7FH,C;将进位标志送m1中 MOVC,0EH;将m50送到进位标志中 MOV7EH,C;将进
;功能:将入口寄存器的数据按置换表换位。
IP:MOVC,06H;将m58送到进位标志中
MOV7FH,C;将进位标志送m1中
MOVC,0EH;将m50送到进位标志中
MOV7EH,C;将进位标志送m2中
;重复,按表编写
.
.
.
MOVC,31H;将m15送到进位标志中
MOV41H,C;将进位标志送m63中
MOVC,39H;将m7送到进位标志中
MOV40H,C;将进位标志送m64中
RET
(2)逆置换子程序
;入口寄存器:(MSB)2726252423222120(LSB),出口寄存器:(MSB)2F2E2D2C2B2A2928(LSB)
;功能:将入口寄存器的数据按逆置换表换位。
IPRVS:MOVC,18H;将m40送到进位标志中
MOV7FH,C;将进位标志送m1中
MOVC,38H
.
.
.
RET
(3)异或子程序
;入口寄存器:272625243F3E3D3C,出口寄存器:2B2A2928
;功能:将寄存器27262524的和寄存器3F3E3D3C的内容异或。结果保存在2B2A2928寄存器中。
XORLF:MOVA,3FH;将高8位异或
XRLA,27H
MOV2BH,A;放入出口处
MOVA,3EH
XRLA,26H
MOV2AH,A
MOVA,3DH
XRLA,25H
MOV29H,A
MOVA,3CH
XRLA,24H
MOV28H,A
RET
(4)S盒子程序
;入口寄存器:(MSB)2F2E2D2C2B2A2928,出口寄存器:(MSB)27262524
;功能:48位→32位
S6TO4:MOV20h,2FH;取出高位数据
LCALLS162345;调用实现Si(b1b6,b2b3b4b5)
;的功能子程序
MOVDPTR,#S1TAB;S盒表的首址
MOVA,21H;取出第几个S盒
LCALLDPTRADD
CLRA
MOVCA,@A DPTR;求出S盒的表地址及S结果
SWAPA
MOV27H,A;保存高位结果
MOV20H,2EH
LCALLS162345
;重复
RET
利用这些子程序,我们成功地开发了以89C52为核心单片机的密钥键盘,可用于系统的用户远程密码修改,也可用于其它商用密文的传输。
(科教作文网http://zw.ΝsΕAc.com发布)
|