当eip寄存器达到最大值时会发生什么?

3 cpu x86 assembly cpu-registers eip

eip寄存器为32位,每增加一条新指令就会递增.那么当它达到32位数的最大值时会发生什么:4294967295.

dus*_*uff 6

通常情况下,你不要让它发生.%eip不会无条件地增加; 它是受流量控制指令(如jmp,call,bcc,等).

实际上,这种行为是不可预测的.在某些CPU上,%eip溢出会导致故障.在其他一些方面,它默默地回归到零.

这些差异导致(原始)Xbox引导ROM的着名利用,因为开发套件使用AMD CPU(故障包围),而生产硬件使用Intel CPU(没有).有关详细信息,请参阅黑客攻击Xbox:逆向工程简介,第140页.