鱼C论坛

 找回密码
 立即注册
查看: 3357|回复: 7

JMP指令。疑问!!!

[复制链接]
发表于 2011-3-7 18:25:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例子:
mov ax,0123h
mov ds:[0],ax
jmp word ptr ds:[0]
执行后,(ip)=0123h
【问:执行后 是ip指向的 内存单元的值是0123h,还是ip的值为0123h?】
把最后一条 jmp word ptr ds:[0]
   改为    jmp  word byte ds:[0] 或 改为 jmp ds:[0]
【问:是否能改为以上的?】  

【问:cs:ip 中。ip的值是不是必须 为 字单元数据?能够为 字节单元数据?】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-7 20:03:07 | 显示全部楼层
这种问题自己DEBUG就能解决何必问呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-7 20:38:17 | 显示全部楼层
1、指向后 jmp把ip的值修改为以 DS:0开始的字单元的值。
2、你在源码这样写一下,编译,看看就知道了。
3、ip是16位寄存器。必须为字单元。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-7 20:53:28 | 显示全部楼层
本帖最后由 a89361461 于 2011-3-7 20:58 编辑

执行后 是ip指向的 内存单元的值是0123h,还是ip的值为0123h?
   首先 IP 是存放将要执行指令的一个偏移地址,它不能单独指向某个内存单元。
执行后,是 IP 的值为0123H,这个值是字型内存单元word ptr DS:[0]赋值给IP的。

改为    jmp  word byte ds:[0] 或 改为 jmp ds:[0]?
   可以改为  jmp word ptr ds:[0](不要加byte)。    jmp ds:[0]  没有指明数据的长度。
cs:ip 中。ip的值是不是必须 为 字单元数据?能够为 字节单元数据?
  IP 的值必须为字单元数据,因为IP 为16位寄存器。

呵呵,希望能帮到你。我也刚学汇编,有什么问题大家一起讨论。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-7 22:32:21 | 显示全部楼层
刚开始学汇编,哎,学的我纠结啊。。。感觉比C难多了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-8 10:32:53 | 显示全部楼层
感觉确实汇编比高级语言的纠结.......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-8 22:10:42 | 显示全部楼层
;P懂了。谢谢各位。大姐大妈 大叔大爷们!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-20 08:11:59 | 显示全部楼层
jmp  word byte ds:[0]的表达是错误的,你想说的可能是jmp byte ptr ds:[0]吧,

但是不能用byte来表示IP,因为IP=XXXXh,也就是字的形式,是16位的,也就是2B,所以是word

其实这个不难理解,jmp跳转到的是 ds:[0]这个地址开始的一个字范围内的偏移量,

也就是ip=word ptr ds:[0],这样能明白么!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 22:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表