|
主题 : : 关于2的8次方的指令执行结果!!! [待解决] |
回复[ 12次 ]
点击[ 859次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2011-07-29 00:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2011-07-19 22:32 |
按照书中的思路,我在内存地址2000:0处输入指令:
mov ax,2
add ax,ax
jmp 2000:2003
但是执行的时候,执行结果却并不是预期效果!出现好几种结果,
(1)第一次结果是2 其余每次都是4
(2)第一次是2,二三次是4 第五六次是8 ,然后居然变成了10
。。。。。。。。。。。。
我注意了cs:ip的指向,所以排除这点。有试过的朋友吗?我的问题出在哪里?你有同样类似的情况吗?或者其它什么的。 | | |
|
|
|
|
[第1楼]
[ 回复时间:2011-07-29 01:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-07-29 01:16 |
为什么你的jmp是2000:2003?
是不是想写 jmp 2000:3 | | |
|
|
|
|
[第2楼]
[ 回复时间:2011-07-29 07:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2011-07-19 22:32 |
|
|
|
|
|
[第3楼]
[ 回复时间:2011-07-29 08:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
|
|
|
|
|
[第4楼]
[ 回复时间:2011-07-30 22:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:3
信誉值:0
注册日期:2011-07-19 22:32 |
|
|
|
|
|
[第5楼]
[ 回复时间:2011-08-03 13:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-07-29 12:18 |
|
|
|
|
|
[第6楼]
[ 回复时间:2011-08-03 21:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-10-02 09:37 |
这是个死循环的,2000:0005执行完后又回到2000:0003,然后一直循环。。。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2011-08-03 22:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59 |
|
|
|
|
|
[第8楼]
[ 回复时间:2011-08-16 15:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-01-06 19:28 |
|
|
|
|
|
[第9楼]
[ 回复时间:2011-08-22 22:52 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2011-08-18 06:18 |
mov ax,1
add ax,ax
jmp 2000:0003
-------------------
1 执行 mov ax,1 执行后 ax=1; cs=2000; ip=3;
2 执行 add ax,ax 执行后 ax=2; cs=2000; ip=5;
3 执行 jmp 2000:0003 执行后 ax=2 cs=2000 ip=3; (程序跳转到2000:0003处执行)
4 执行 add ax,ax 执行后 ax=4; cs=2000; ip=5;
5 执行 jmp 2000:0003 执行后 ax=4 cs=2000 ip=3; (程序跳转到2000:0003处执行)
6 执行 add ax,ax 执行后 ax=8; cs=2000; ip=5;
....
引用:“(2)第一次是2,二三次是4 第五六次是8 ,然后居然变成了10
。。。。。。。。。。。。
”
10是对的 这里的10是十六进制形式表示的 10h的十进制是32 也就是2的5此方。
当程序执行结果 为 100H时 也就是我们要得结果了 2的8此方等于256 用十六进制表示是 100H
不知道你懂了没有 | | |
|
|
|
|
[第10楼]
[ 回复时间:2014-11-06 23:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-11-28 17:24 |
|
|
|
|
|
[第11楼]
[ 回复时间:2014-11-13 11:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2014-11-08 19:06 |
|
|
|
|
|
[第12楼]
[ 回复时间:2017-03-29 23:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2017-03-08 18:22 |
mov ax,1 中的1是16进制 执行相加也是16进制相加 ,第五六次是8 是因为8加8等于16 这个是我们十进制表示 里面是用16进制表示就是10H 依次类推 | | |