double_div.asm
来自「dsp实验箱的实验一:基本数学运算,dsp入门的好例子」· 汇编 代码 · 共 26 行
ASM
26 行
.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 + =
减小字号Ctrl + -
显示快捷键?