📄 ex3-12.asm
字号:
IMUL: MOV A,R2
XRL A,R6
MOV C,ACC.7
MOV F0,C ;暂存积的符号
MOV A,R2
CLR ACC.7 ;清0被乘数符号位
MOV R2,A
MOV A,R6
CLR ACC.7 ;清0乘数符号位
MOV R6,A
ACALL NMUL ;调用无符号双字节乘法子程序
MOV A,R4
MOV C,F0 ;回送积符
MOV ACC.7,C
MOV R4,A
RET
NMUL: MOV R4,#0
MOV R5,#0
MOV R0,#16 ;16位二进制数
CLR C
NMLP: MOV A,R4 ;右移一位
RRC A
MOV R4,A
MOV A,R5
RRC A
MOV R5,A
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
JNC NMLN ;C为移出的乘数最低位, 若为0, 不执行加法
MOV A,R5 ;执行加法
ADD A,R3
MOV R5,A
MOV A,R4
ADDC A,R2
MOV R4,A
NMLN: DJNZ R0,NMLP ;循环16次
MOV A,R4 ;最后再右移一位
RRC A
MOV R4,A
MOV A,R5
RRC A
MOV R5,A
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -