I'm reading https://www.felixcloutier.com/x86/jmp and I'm a little confused about the usage of the last row, Jump far, absolute indirect, address given in m16:64.
and how it compares to the rest.
I want to test using each one in Intel-style x64 asm, and this is what I think is happening in order:
0: eb 03 jmp 5 #JMP rel8
2: e9 fa ff 0f 00 jmp 100001 #JMP rel32
7: ff e0 jmp rax #JMP r64
9: ff 20 jmp QWORD PTR [rax] #JMP m64
b: 64 ff 24 25 0f 00 00 jmp QWORD PTR fs:0xf
12: 00 #JMP m16:16?
13: 64 67 ff 20 jmp QWORD PTR fs:[eax] #JMP ??
17: 64 ff 60 17 jmp QWORD PTR fs:[rax+0x17] #JMP ??
This is objdump disassembly into GAS's .intel_syntax noprefix
.
I'm not sure how the last 3 instructions should be read/interpreted, according to the reference. Do they fit the JMP m16:64
family? Also, the last row in the reference shows a REX.W
, however all I see is 0x64
. Is that like a segment override or something?