| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 682 人关注过本帖
标题:求教:关于jmp dword ptr 内存单元地址 的问题
只看楼主 加入收藏
BosXL
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-2-26
结帖率:100%
  已结贴   问题点数:20  回复次数:1   
求教:关于jmp dword ptr 内存单元地址 的问题
在王爽老师的《汇编语言》书中第9章9.6节里面,照着代码输入以下指令:

(在CMD的debug环境下)
mov ax,0123
mov [0],ax
mov word ptr [2],0
jmp dword ptr [0]



按理,在执行后,(CS)=0, (IP)=0123H, CS:IP指向 0000:0123

可是,在我的机子执行后,CS的值并没有改变,依然是原来的值为 0BDB, IP的值倒是改变为0123.

看了看  jmp dword ptr [0]  对应的机器码为: FF260000  ,这是段内转移的啊(按理应为  FF2E0000), 而且实验了很多次, 怎么在我机子上就不一样了,debug的原因?还是其他的?



求教!检查了很多遍了,没发现输错的问题,就是想不通为什么会这样?


附件: 您没有浏览附件的权限,请 登录注册
2018-02-26 13:49
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:10
帖 子:204
专家分:1362
注 册:2016-5-15
  得分:20 
这里有两个问题.

1. 键入jmp dword ptr [0]... debug不能正确编译,它只编译为jmp [0000],这是短程跳跃,并不能跨段.
这是debug的问题.改用debug32是可以的.

2. 即使编译成功 jmp dword ptr [0], 经实验证明,也不能跨段,可改为
jmp far [0]
2018-03-03 22:12







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037223 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved