|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无比菜鸟 于 2011-7-20 10:54 编辑
关于jmp dword ptr 的问题
我有个问题没搞懂,请大家帮我看看。
书中有例子如下
mov ax, 0123h
mov ds:[0], ax
mov word ptr ds:[0], 0
jmp dword ptr ds:[0]
书中如是说:执行后, (CS)=0,(IP)=0123H
看了半天,悲催地没理解,我是这么看上段代码的
1、比如 我假设在代码执行前ds:0 f里的数据如下
ds:0 f 0 1 2 3 4 5 6 7 8 9 A B C D E F
该段内存中的数据 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7
2、mov ax, 0123h
mov ds:[0], ax
这两句代码执行后,相应数据段中的数据变为
ds:0 f 0 1 2 3 4 5 6 7 8 9 A B C D E F
该段内存中的数据 2 3 0 1 5 6 7 8 9 1 2 3 4 5 6 7
3、mov word ptr ds:[2], 0
这两句代码执行后,相应数据段中的数据变为
ds:0 f 0 1 2 3 4 5 6 7 8 9 A B C D E F
该段内存中的数据 2 3 0 0 0 0 7 8 9 1 2 3 4 5 6 7
4、那么执行最后一句代码
jmp dword ptr ds:[0]
结果为(CS)=7800H, (IP)=0023H
请问 我是什么概念没搞清楚~!? 我debug了这段代码
书中没有错误。
贴一发,我就知道了哪错了,还是放这吧。。。晕
数据段中存放形式是:
ds:0 f 0 1 2 3 .........
23 01 00 00 .........
|
|