8086汇编指令- jmpi
By: Ailson JackDate: 2018.11.05个人博客: http://www.only2fire.com/本文在我博客的地址是:http://www.only2fire.com/archives/85.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。在Linux 0.00的boot.s中,为了改变CS的值,操作的方法如下所示:entry s...
By: Ailson Jack
Date: 2018.11.05
个人博客: http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/85.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。
在Linux 0.00的boot.s中,为了改变CS的值,操作的方法如下所示:
entry start
start:
jmpi go, #BOOTSEG
go: mov ax, cs
那么可以通过mov指令直接修改CS的内容吗,即如下:
mov ax, #0x7c0
mov cs, ax
答案当然是不可以的,CS和IP是8086 CPU中2个最关键的寄存器。它们指示了要读取指令的地址。大部分8086 CPU寄存器的值,都可以使用mov指令来改变,但CS、IP中的值不能用mov指令来修改。能够改变CS、IP寄存器内容的指令称为转移指令。一个最简单的可以修改它们的指令,就是上面用的 jmp 指令。
jmpi 0, 0x9000h
表示间接跳转(相当于跳到另一个段去开始执行), 即程序跳到9000:0 去继续执行了。
排版更好的内容见我博客的地址:http://www.only2fire.com/archives/85.html
注:转载请注明出处,谢谢!^_^
更多推荐
所有评论(0)