8086汇编指令- jmpi
 2018.11.05    |      汇编    |     AilsonJack    |     暂无评论    |     3085 views
By: Ailson Jack
Date: 2018-11-05
个人博客: http://www.only2fire.com/
<p style="text-indent: 2em;">在Linux 0.00的boot.s中,为了改变CS的值,操作的方法如下所示:<br/></p><pre class="brush:ps;toolbar:false PrismJs">entry&nbsp;start start: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jmpi&nbsp;go,&nbsp;#BOOTSEG go:&nbsp;&nbsp;mov&nbsp;ax,&nbsp;cs</pre><p style="text-indent: 2em;">那么可以通过mov指令直接修改CS的内容吗,即如下:<br/></p><pre class="brush:ps;toolbar:false PrismJs">mov&nbsp;ax,&nbsp;#0x7c0 mov&nbsp;cs,&nbsp;ax</pre><p style="text-indent: 2em;">答案当然是不可以的,CS和IP是8086 CPU中2个最关键的寄存器。它们指示了要读取指令的地址。大部分8086 CPU寄存器的值,都可以使用mov指令来改变,但CS、IP中的值不能用mov指令来修改。能够改变CS、IP寄存器内容的指令称为转移指令。一个最简单的可以修改它们的指令,就是上面用的 jmp 指令。<br/></p><pre class="brush:ps;toolbar:false PrismJs">jmpi&nbsp;&nbsp;0,&nbsp;0x9000h</pre><p style="text-indent: 2em;">表示间接跳转(相当于跳到另一个段去开始执行), 即程序跳到9000:0 去继续执行了。<br/></p>
欢迎关注博主的公众号呀,精彩内容随时掌握:
热情邀请仔细浏览下博客中的广告,万一有对自己有用或感兴趣的呢。◕ᴗ◕。。
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^,当然了能够赞赏博主,那就非常感谢啦!
注: 转载请注明出处,谢谢!^_^
转载请注明来源: 本文链接:  By: AilsonJack
8086汇编指令- jmpi  |  说好一起走
暂无评论,要不要来个沙发
发表评论

 
Copyright © 2015~2023  说好一起走   保留所有权利   |  百度统计  蜀ICP备15004292号