In NASM, call far [edi]
gets converted to 67 48 FF 1F
which is translated as call far tword ptr ds:[edi]
by my debugger. Why is the destination of size tword?
Asked
Active
Viewed 76 times
1

user1432882
- 1,126
- 4
- 14
- 29
-
2Because there's a 2-byte segment selector as well as the 8-byte absolute address. Far call sets a new CS:RIP, not just RIP. Are you sure you want a far, not just near indirect? Also, are you sure you want to be using a 32-bit register to hold the pointer to that memory operand? – Peter Cordes Nov 19 '21 at 04:39