汇编语言第三版实验6一道实验题求解原因关于8位寄存器和16位寄存器?

为什么除数8位被除数则为16位,除数16位被除数则为32位?... 为什么除数8位被除数则为16位,除数16位被除数则为32位?

不是这么理解根据intel文档这条div指令有多种形式:

其中被除數常常用2个寄存器来存放。除数用单个寄存器的宽度来存放结果的商和余数分别放在2个寄存器中:

比如16bit的被除数,分存在2个8bit寄存器AH:AL商放在AL,余数在AH

比如32bit的被除数分存在2个16bit寄存器DX:AX,商放在AX余数在DX

你对这个回答的评价是?

采纳数:3 获赞数:7 LV2

CPU执行除法时规定:除数只能是被除数的一半字长并规定:

(1)当被除数为16位,应放于AX中;除数应为8位可放在寄存器/存储器中,但得到的8位商在AL中8位余数在AH中

(2)當被除数为32位,应存放于DX:AX中;除数应为16位可放在寄存器/存储器中,但得到的16位商在AX中16位余数在DX中

你对这个回答的评价是?

这是div指令嘚规定啊

就跟add规定前面和后面的数据得是同类型的一样

你对这个回答的评价是?

不同的 CPU 有不同的处理方法

51 单片机就是 8 位数除以 8 位数。

伱对这个回答的评价是

}

我要回帖

更多关于 汇编语言第三版实验6 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信