鱼C论坛

 找回密码
 立即注册
查看: 3424|回复: 4

已经解决

[复制链接]
发表于 2016-4-23 10:19:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 603717321 于 2016-4-27 23:15 编辑

assume cs:code
code segment
start:
;除数为十六位,被除数为32位;商在AX中存放,余数在DX中存放
        mov dx, 1;
        mov ax, 100002
        mov bx, 100
        div bx
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-23 19:12:16 | 显示全部楼层
把错误提示发出来看看。你确定是dx的问题?看你的代码明显是ax 超范围了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-23 19:15:44 | 显示全部楼层
你这段代码写错了吧,100002已经大于65535了,说明ax已经放不下它了,所以要用ax和dx两个寄存器来存放,具体的公式汇编语言书上P170有解释,看下子。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-24 21:44:00 | 显示全部楼层
本帖最后由 603717321 于 2016-4-27 23:13 编辑

66
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-27 13:30:49 | 显示全部楼层
603717321 发表于 2016-4-24 21:44
就如此图如果把mov dx, 1
修改为mov dx, 2
输出就会就会不正确

div3.png
div1.png
div2.png
程序和debug结果如上图:dx=2,ax=86a1h,转换成10进制就是165537,再除以100(bx=100),商就是1655(转换成16进制就是0677),余数为37(转换成16进制就是0025),所以最后ax=0677,dx=0025,没有问题的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 21:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表