是否有一些关于指令`jmpi`的权限文件

时间:2013-01-22 16:00:54

标签: assembly linux-kernel x86

我正在学习Linux的工作原理。我遇到了一个奇怪的汇编语言指令jmpi。我可以在各种网站上找到一些解释,但奇怪的是我在汇编语言书籍中找不到它,包括Intel® 64 and IA-32 Architectures Software Developer’s Manual。我搜索过这本书,但它不包含jmpi指令。我认为英特尔手册应该是关于英特尔汇编语言的最权威的书籍。所以这很奇怪。

我的问题是:是否有一些书或权威文件记录了这条指令?

1 个答案:

答案 0 :(得分:2)

英特尔处理器指令集中有几条JMP条指令。它们具有相同的预期结果,但它们采用的操作数类型不同:8位常数,16位常数,32位常数,间接指定的值;也是相对或绝对的跳跃。请参阅建筑手册的第854页表格

Opcode Instruction  Description
------+------------+----------------------------
EB cb  JMP rel8     Jump short
E9 cw  JMP rel16    Jump near, relative
E9 cd  JMP rel32    Jump near, relative
FF /4  JMP r/m16    Jump near, absolute indirect
FF /4  JMP r/m32    Jump near, absolute indirect
FF /4  JMP r/m64    Jump near, absolute indirect
EA cd  JMP ptr16:16 Jump far, absolute
...

在架构开发的不同阶段支持不同的内存模型遗留下来区别对待它们。

许多汇编程序引入了额外的助记符,以使汇编代码更具可读性。因此,在as86中,JMPI指令指的是近JMP,它可以是绝对的,也可以是相对的,但应始终保持在代码段内,段内跳转as86是唯一的权威参考。