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 + -
显示快捷键?