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