📄 longdiv.asm
字号:
;----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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -