div除法的疑问

saishow 2011-09-02 10:29:14
1,除数:有8位和16位两种,在一个寄存器或内存单元中

2,被除数:默认放在AX,或者AX和DX中,如果除数位8位,被除数则为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX在中存放,DX存高16位,AX存底16位.

3,结果:如果被除数为8位,则AL存储除法操作的商,AH存余数;如果16位则AX存商DX存余数.

疑问1,是否可以将8位和16位的被除数当成32位来处理?

疑问2,除数最多只能有16位吗?

疑问3,如果除数和被除数都是32位又应该如何处理?
...全文
197 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
asmlearn 2011-09-02
  • 打赏
  • 举报
回复
如果都是32位的,就变成浮点运算了。有专门的浮点运算指令处理。
Areslee 2011-09-02
  • 打赏
  • 举报
回复
1.可以
2.现在至少可以到32位
3.把被除数的高32位置0,就成为64位了
saishow 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 areslee 的回复:]

引用 4 楼 saishow 的回复:
引用 3 楼 haojiahuo50401 的回复:

对于8086来说,前两个是肯定的。但是被除数和除数不能都是32位的。8086不能用div计算32位除以32位。


我想知道8086不能用div计算32位除以32的根据是什么?

比如12345678/12345678 应该怎么完成这个?
根据就是8086是16位CPU,没有32位运……
[/Quote]
一语惊醒梦中人呀.感谢感谢.
Areslee 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 saishow 的回复:]
引用 3 楼 haojiahuo50401 的回复:

对于8086来说,前两个是肯定的。但是被除数和除数不能都是32位的。8086不能用div计算32位除以32位。


我想知道8086不能用div计算32位除以32的根据是什么?

比如12345678/12345678 应该怎么完成这个?
[/Quote]根据就是8086是16位CPU,没有32位运算指令
大熊猫侯佩 2011-09-02
  • 打赏
  • 举报
回复
多位除法需要自己写代码实现。

这是一个算法问题。
saishow 2011-09-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 haojiahuo50401 的回复:]

对于8086来说,前两个是肯定的。但是被除数和除数不能都是32位的。8086不能用div计算32位除以32位。
[/Quote]

我想知道8086不能用div计算32位除以32的根据是什么?

比如12345678/12345678 应该怎么完成这个?
canmeng 2011-09-02
  • 打赏
  • 举报
回复
对于8086来说,前两个是肯定的。但是被除数和除数不能都是32位的。8086不能用div计算32位除以32位。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧