首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]双字节二进制无符号数除以单字节二进制数程序

我这里有一个比较容易理解的:

;///////////////////////////////////////////////////////////////////////

;函数功能:两字节除以两字节,商存在r0【低】,r7【高】

; 余数存在r2【低】,r3【高】

;入口参数:r2【除数低字节】,r3【除数高字节】;r4【被除数低字节】,r5【被除数高字节】

;出口参数:r0【商低】,r7【商高】,r2【余低】,r3【余高】

;日 期:2005年6月15日

;作 者:by 黄青强

div:
mov r0,#00h ;商低字节
mov r7,#00h ;商高字节
next0:
clr c
mov a,r2
subb a,r4
mov r2,a
mov a,r3
subb a,r5
mov r3,a
jc next1
cjne r0,#0ffh,next2 ;
mov r0,#00h
inc r7
ajmp next0
ret
next2:
inc r0
ajmp next0
ret
next1:
mov a,r3 ;求余数高字节
addc a,r5
mov r3,a

mov a,r2 ;求余数低字节
add a,r4
mov r2,a
clr c
ret

要是你想用双字节除以单字节,把被除数高字节设为0即可

一样的,有了4字节除4字节,就很容易得出双字节和单字节的除法

返回列表