欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

编译语言,在debug窗口中修改寄存器cs、ip中的值

更新时间: 2014-01-05 03:16:46 责任编辑: Author_N1

 

汇编语言,在debug窗口中修改寄存器CS、IP中的值
最近头脑有点发热,又回顾(几年之前看过几遍)了一下汇编语言(第二版,王爽著)。

在第二章快要结束时,有个实验1(查看CPU和内存...)。
其中有一个实验任务是修改寄存器CS和IP中的值。

当时书没看仔细(估计是看了好几遍的缘故,有点麻木),没有看明白是如何修改CS和IP的值,加上前面的一节中有讲到如何通过使用jmp指令修改CS和IP,于是想在debug窗口中直接使用jmp指令修改CS和IP,结果出现如下错误。


出现了一个Error,当时就很纳闷,于是百度了一下,发现了有几篇文章也是遇到了这个问题(或许和我想的不是同一个问题),但是它们没有给出解决方案。
只好把这个章节又看了一篇,当时很怀疑能否使用R命令修改CS和IP,结果试了一下竟然成功了,恍然大悟,原来是我理解错了,jmp是用于指令执行的时候修改CS和IP,而不是在debug中直接修改,下图就是正确的修改方式。


#jmp指令的执行。
#在内存地址1000:0写入一段指令。
-a 1000:0
1000:0000 mov ax,1
1000:0003 mov bx,2
1000:0006 jmp 1000:0
1000:0008

#修改寄存器CS和IP的值。
-r cs
cs 0AF4
:1000
-
-r ip
ip 0011
:0

#执行一条指令(mov ax,1),执行之后IP的值为0003。
-t

#执行一条指令(mov bx,2),执行之后IP的值为0006。
-t

#执行一条指令(jmp 1000:0),执行之后IP的值为0000。
-t


额,这难道就是“书读百遍,其义自见”?
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:16:46
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20331/
本文WWW.DOC100.NET DOC100.NET版权所有。