I am learning how Linux works. I have encountered a strange assembly language instruction, jmpi. I can find some explanation at various websites, but strangely I can’t find it in assembly language books, including the Intel® 64 and IA-32 Architectures Software Developer’s Manual. I have searched the book, but it doesn’t contain the instruction jmpi. I think the Intel manual should be the the most authoritative book on Intel assembly language. So it is very strange.
My question is: is there some book or authoritative files which document this instruction?
There are several
JMPinstructions in the Intel processor instruction set. They have the same intended result but differ by the type of the operand they take: an 8-bit constant, a 16-bit constant, a 32-bit constant, a value specified indirectly; also is it a relative or an absolute jump. See the table from p.854 of the Architecture manualThey are treated differently as a legacy of different memory models supported at different stages of the architecture development.
Many assemblers introduce additional mnemonics to make the assembly code more readable. So in
as86theJMPIinstruction refers to a nearJMPit can be either absolute, or relative, but should always stay within a code segment, the intrasegment jump. Theas86is the only authoritative reference.