📄 divisioninteger.asm
字号:
;********************************************;
; FileName: DivisionInteger ;
; Author: hejianlong ;
; Function: 32bit有符号整数除以16bit整数。
; 输入数据为被除数Num和除数Den,
; 输出数据为商Quot和余数Rem。 ;
; Return: NO ;
;********************************************;
.mmregs
.text
.def _DivisionInteger
_DivisionInteger:
;AMOV #Num,XAR0 ;指针XARO指向Num。
;AMOV #Den,XAR1 ;指针XAR1指向Den。
;AMOV #Quot,XAR2 ;指针XAR2指向Quot。
;AMOV #Rem,XAR3 ;指针XAR3指向Rem。
MPYM *AR0,*AR1,AC0;在AC0中保存实际结果的符号。
MOV *AR1,AC1
ABS AC1,AC1
MOV AC1,*AR3 ;除数绝对值暂存于数据单元Rem中。
MOV dbl(*AR0),AC1
ABS AC1,AC1
MOV AC1,dbl(*AR2);被除数绝对值暂存于数据单元Quot中。
MOV *AR2,AC1 ;取出Quot高16位存入AC1_L中。
RPT #(15-1) ;执行第一次16次条件减。
SUBC *AR3,AC1,AC1
SUBC *AR3,AC1,AC1
||MOV #11,AR4 ;指针XAR4指向AC1_L单元。
MOV AC1,*AR2+ ;保存商的高16位QuotH。
MOV AC1,T0 ;保存商的高16位QuotH。////////////
MOV *AR2,*AR4 ;取出Quot低16位存入AC1_L中。
RPT #(16-1) ;执行第二次16次条件减。
SUBC *AR3,AC1,AC1
MOV AC1,*AR2- ;保存商的低16位QuotH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -