📄 double_div.asm
字号:
.def _double_div
.data
NUM: .word -24257 ;被除数
DEN: .word -243 ;除数
.bss OUT,1 ;商
.text
_double_div:
STM #NUM,AR1 ;把被除数放到AR1寄存器里
STM #DEN,AR2 ;把除数放到AR2寄存器里
STM #OUT,AR3 ;把商放到AR3寄存器里
LD *AR2,16,a ;将分母移到累加器a(32-16)
MPYA *AR1 ;(NUM)*(a(32-16)))--b,获得商的符号
ABS A ;分母取绝对值
STH A,*AR2 ;分母绝对值存回原处
LD *AR1,A ;分子-a(32-16)
ABS A ;分子取绝对值
RPT #0FH ;16次减法循环,完成除法
SUBC *AR2,A
XC 1,BLT ;若b<0(商是负数),则需要变号
NEG A
STL A,*AR3 ;保存商
NOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -