📄 多字节除法.asm
字号:
;*********************************
;** 东华理工大学电子与机械工程学院
;** 3 + 1 班
;** 06届
;** http://www.ecit.edu.cn
;**-------------------------------
;**项目名称: 多字节除法
;**创 建 人: 张佳平
;**描 述: 实现16进制2~4个字节
; 除以2个字节的计算。但由于程序本身缺
; 陷,除数必须是两个字节的16进制数。
;*********************************
MOV 30H,#01H ;除数低字节
MOV 31H,#01H ;除数高字节
MOV 32H,#02H ;被除数低字节
MOV 33H,#02H ;被除数次低字节
MOV 34H,#00H ;被除数高字节
MOV 40H,#00H
MOV 41H,#00H
MOV 20H,#00H ;存放余数低字节
MOV 21H,#00H ;存放余数高字节
MOV 22H,#00H ;存放商值
MOV R7,#24
MOV R6,#0
;被除数前面添加与除数位数相等的且均为0的字节
RLEFT: CLR C
MOV A,32H
RLC A
MOV 32H,A
MOV A,33H
RLC A
MOV 33H,A
MOV A,34H
RLC A
MOV 34H,A
MOV A,40H
RLC A
MOV 40H,A
MOV A,41H
RLC A
MOV 41H,A
;用减法比较被除数与除数大小
MOV A,41H
SUBB A,31H
JNC ADD1 ;进位为0,说明被除数大于等于除数,跳转到商加1程序
MOV A,R6
RL A
MOV R6,A
DJNZ R7,RLEFT
LJMP ENDD
ADD1: MOV R2,41H
CJNE R2,#0,ADD11
LJMP RLEFT
ADD11: MOV 41H,A
MOV A,R6
RL A
MOV R6,A
INC R6
MOV A,40H
SUBB A,30H
JNC LOOP
MOV 40H,A
DEC 41H
DJNZ R7,RLEFT
LJMP ENDD
LOOP: MOV 40H,A
DJNZ R7,RLEFT
LJMP ENDD
ENDD: MOV 22H,R6
MOV 21H,41H
MOV 20H,40H
NOP
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -