longdiv.asm

来自「文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的」· 汇编 代码 · 共 55 行

ASM
55
字号
	;----ACC=DIVISOR, ACCB(|.|<|ACC|)=DIVIDEND ,RESULT(1.15) IN LOW ACC-
	;--ACCB/ACC------------
LONGDIV
	LDP #ACCBUF
	SACL ACCBUF
	SACH ACCBUF+1
	ABS
	SUB #7FFFH
	BCND LDIV_0,C		;C=0,JUMP IF ACC>0X8000
	  LACB
	  SACL DIVISOR
	  LACC DIVISOR,15
	  SACB
	  LACC ACCBUF
	  SACL DIVISOR
	  B LDIV_2
	;-------------
LDIV_0
	LACC ACCBUF+1,16
	OR ACCBUF

	LAR AR4,#0
	MAR *,AR4
	;CLRC TC
LDIV_1
	NORM *+
	BCND LDIV_1A,TC
	EXAR			;ACC<->ACCB,
	NORM *
	EXAR
	B LDIV_1
LDIV_1A
	SACH DIVISOR
	EXAR
	SFR			;ACCB>>1
	EXAR
LDIV_2
	XORB
	SACH SIGNFLAG		;if (acc*accb<0) signflag<0
	LACC DIVISOR
	ABS
	SACL DIVISOR
	LACB
	ABS
	RPT #15
	  SUBC DIVISOR
	BIT SIGNFLAG,0		;test if signflag(bit 15)<0
	BCND LDIV_3,NTC
	 NEG
LDIV_3
	SACL ACCBUF		;in order to sign extend high acc
	LACC ACCBUF
	RET

⌨️ 快捷键说明

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