I have an issue in the mind and that is since the jump instruction changes EIP register by adding signed offsets to it(if I’m not making a mistake here), on IA-32 architecture how would going upward in memory from location 0x7FFFFFFF(biggest positive number in signed logic) to 0x80000000(least negative number in signed logic) be possible? or maybe there shouldn’t be such jump due to the nature of signed logic?
Share
Signed and unsigned are just two ways of interpreting the same bit pattern. This interpretation doesn’t change how addition is performed. 7FFFFFFF + 1 is always 80000000, but this could be interpreted either as signed (a negative number) or unsigned (a positive number).
The instruction pointer is always interpreted as unsigned (obviously negative addresses have no meaning), so that answers your question.