ex3-12.asm

来自「《单片机原理实用教程——基于Proteus虚拟仿真》一书的配套光盘」· 汇编 代码 · 共 61 行

ASM
61
字号
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 + =
减小字号Ctrl + -
显示快捷键?