|
主题 : : add ah bl 是否是个错误 [待解决] |
回复[ 15次 ]
点击[ 609次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-05-04 00:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-03 23:33 |
ax=0040H bx=0026H
add ah bl=?
“在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的”低8位可以跟高8位相加传送吗?
详见第二章表2.1
如果可以相加的话ah=00H bl=26H 所以add ah bl=>ah=ah+bl=26h不对吗?希望有高手详解 谢谢 | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-05-04 00:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-03 23:33 |
|
|
|
|
|
[第2楼]
[ 回复时间:2009-05-04 16:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:49
信誉值:0
注册日期:2008-10-15 16:15 |
add ah bl 是否是个错误
---------------
如果检验他们是否可以,书上提到的一个方法就可以用--debug下写入试试。
首先是语法要正确,add ah,bl,不要少了逗号。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2009-05-06 22:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-04-09 19:14 |
add ah,bl
ah--->16位寄存器
bl--->8位寄存器
位数不一致,怎么相加呢? | | |
|
|
|
|
[第4楼]
[ 回复时间:2009-05-07 15:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2009-04-07 09:03 |
|
|
|
|
|
[第5楼]
[ 回复时间:2009-05-14 09:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-05-13 21:46 |
试验已经证明了,我用DEBUG测试了一下,结果如我所料
-r ax=0000 bx=0000
mov ax,1234
-t ax=1234 bx=0000
mov bx,2345
-t ax=1234 bx=2345
add ah,bl
-t ax=5734 bx=2345
结果显而易见,在ah与bl相加的时候,计算机只把它们做为两个8位寄存器相加,没有高低之分。于是12+45=57
然后计算机把结果存在了ah寄存器里,ax='ah''al' ax=5734
所以结论是,无论是高位或低位的寄存器相互运算,计算机只把它们当作两个8位来操作,没有高低之分,等到相应结果存入寄存器后才会体现高低位的效果 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-05-26 10:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:11
信誉值:1
注册日期:2009-05-12 12:06 |
|
|
|
|
|
[第7楼]
[ 回复时间:2009-06-24 20:37 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2009-06-24 00:05 |
|
|
|
|
|
[第8楼]
[ 回复时间:2009-06-25 12:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-11-16 15:22 |
|
|
|
|
|
[第9楼]
[ 回复时间:2009-07-04 22:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-27 23:55 |
试验已经证明了,我用DEBUG测试了一下,结果如我所料
-r ax=0000 bx=0000
mov ax,1234
-t ax=1234 bx=0000
mov bx,2345
-t ax=1234 bx=2345
add ah,bl
-t ax=5734 bx=2345
结果显而易见,在ah与bl相加的时候,计算机只把它们做为两个8位寄存器相加,没有高低之分。于是12+45=57
然后计算机把结果存在了ah寄存器里,ax='ah''al' ax=5734
所以结论是,无论是高位或低位的寄存器相互运算,计算机只把它们当作两个8位来操作,没有高低之分,等到相应结果存入寄存器后才会体现高低位的效果
------------------
回复: | | |
|
|
|
|
[第10楼]
[ 回复时间:2009-07-07 10:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-06-22 20:35 |
没错误,ah,bl表示8位寄存器,可用debug验证 | | |
|
|
|
|
[第11楼]
[ 回复时间:2009-07-16 20:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-07-16 20:16 |
|
|
|
|
|
[第12楼]
[ 回复时间:2009-07-18 11:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-07-18 10:28 |
|
|
|
|
|
[第13楼]
[ 回复时间:2010-11-19 16:12 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-19 16:10 |
|
|
|
|
|
[第14楼]
[ 回复时间:2010-11-25 21:32 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2010-11-25 19:35 |
|
|
|
|
|
[第15楼]
[ 回复时间:2010-11-26 16:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-14 22:01 |
|