5-6-1.asm

来自「51单片机开发与应用技术详解(珍藏版)PPT及源码」· 汇编 代码 · 共 33 行

ASM
33
字号
FUMUL:		MOV		A,R1			;取被乘数送入累加器A
			RLC		A			;符号位送入CY
			MOV		00H,C		;存被乘数的符号
			MOV		A,R0			;取乘数
			RLC		A			;符号位送入CY
			MOV		01H,C		;存乘数的符号
			ANL		C,/00H
			MOV		02H,C		;暂存到02H位
			ANL		C,00H		;取被乘数符号
			MOV		C,/01H
			ORL		C,02H		;或运算
			MOV		02H,C		;存积的符号
			MOV		A,R0			;取乘数
			JNB		ACC.7,FUN1	;乘数为正则转向FUN1
			CPL		A			;乘数为负则求补
			INC		A
FUN1:		MOV		B,A			;乘数存入B
			MOV		A,R1			;取被乘数
			JNB		ACC.7,FUN2	;被乘数为正则转向FUN2
			CPL		A			;被乘数为负则求补
			INC		A
FUN2:		MUL		AB			;相乘
			JNB		02H,FUN3	;积为正则转向FUN3
			CPL		A			;积为负则求补
			ADD		A,#01H		;需用加法来加1
FUN3:		MOV		R2,A			;存积的低8位
			MOV		A,B			;积的高8位送A
			JNB		02H,FUN4	;积为正则转向FUN4
			CPL		A			;高8位取反
			ADDC	A,#00H		;加进位
FUN4:		MOV		R3,A			;存积的高8位
			RET					;返回

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?