📄 div22.asm
字号:
;多字节移位相减,商加1的算法。
;主要注意的地方是移位后,其值的比较
;***********************************
DIV22CL DATA 41H ;除数低字节
DIV22CH DATA 40H ;除数高字节
DIV22BCL DATA 43H ;被除数低字节
DIV22BCH DATA 42H ;被除数高字节
DIVYUSHUL DATA 45H ;余数低字节
DIVYUSHUH DATA 44H ;余数高字节
DIV22SHANGL DATA 47H ;商低字节
DIV22SHANGH DATA 46H ;商高字节
YIWEICOUNT EQU 16 ;位数
ORG 0000H
DIV22: MOV SP,#67H
MOV A,#0 ;初始化单元
MOV DIVYUSHUL,A
MOV DIVYUSHUH,A
MOV DIV22SHANGL,A
MOV DIV22SHANGH,A
MOV A,DIV22BCH ;判断益处
SUBB A,DIV22CH
JNC DIVS
SETB OV
AJMP DIVEXIT
DIVS: MOV R6,#YIWEICOUNT ;
DIVSTR: CLR C ;商的算法
MOV A,DIV22SHANGL
RLC A
MOV DIV22SHANGL,A
MOV A,DIV22SHANGH
RLC A
MOV DIV22SHANGH,A
CLR C ;移位判断
MOV A,DIV22BCL
RLC A
MOV DIV22BCL,A
MOV A,DIV22BCH
RLC A
MOV DIV22BCH,A
MOV A,DIVYUSHUL
RLC A
MOV DIVYUSHUL,A
MOV A,DIVYUSHUH
RLC A
MOV DIVYUSHUH,A
SUBB A,DIV22CH
JC LOOP ;判断算法:高字节-高字节=负数吗?是则进行下次循环
CLR C
MOV DIVYUSHUH,A
INC DIV22SHANGL
MOV A,DIVYUSHUL
SUBB A,DIV22CL
MOV DIVYUSHUL,A
JNC LOOP ;低字节是否要借位,是则余数减1
DEC DIVYUSHUH
LOOP: DJNZ R6,DIVSTR
DIVEXIT: SJMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -