|
主题 : : 书158页,电子书169页的那个问题 [待解决] |
回复[ 8次 ]
点击[ 762次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-11-29 14:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
mov ax,1001
mov bl,100
div bl
程序执行以后,我在debug中,ax=010a,dx=0
不是所这个余应该放在dx中吗?为什么1放到了ax中啊? | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-11-29 14:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:33
信誉值:0
注册日期:2007-07-10 11:31 |
认真看书157页。
除数为8位时,商放在AL中,余数放在AH中。
除数为16位时,商放在AX中,余数放在DX中。
上面情况属于第一种。故余数放在AH中。
提醒楼主,以后遇到问题,应该自己思考后再提问,否则学习效果不佳。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-11-29 15:01 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
但有个问题,不是我没有看书
书上的答案自己也说al=0ah,dx=1 | | |
|
|
|
|
[第3楼]
[ 回复时间:2007-11-29 17:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-07-05 17:25 |
呵呵。8位或16位除法是由除数决定的,也就是div后面的寄存器或内存单元决定的,如果是8位,则al存储商,ah存储余数。如果是16位ax存储商,dx存储余数。div bl,bl是8位寄存器所以余数放在了ax中。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-12-04 10:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:1
信誉值:6
注册日期:2007-11-14 11:28 |
|
|
|
|
|
[第5楼]
[ 回复时间:2007-12-13 10:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2007-11-28 12:32 |
|
|
|
|
|
[第6楼]
[ 回复时间:2007-12-13 13:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:9
注册日期:2007-10-19 10:16 |
|
|
|
|
|
[第7楼]
[ 回复时间:2008-04-15 10:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-04-10 19:47 |
|
|
|
|
|
[第8楼]
[ 回复时间:2009-08-13 16:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-08-13 16:19 |
我遇到的情况正好相反,不论除数是8位还是16位,我跟踪调试的结果都是商在AX中,余数在DX中;
我的系统:XP SPK3 双核CPU笔记本
难道是机器不同的缘故? | | |