public static void leave(Emulator emu) { UInt32 ebp = emu.getRegister32((int)Registers.EBP); emu.setRegister32((int)Registers.ESP, ebp); emu.setRegister32((int)Registers.EBP, emu.pop32()); emu.eip += 1; }
// opcode 0x58-0x5F public static void pop_r32(Emulator emu) { Byte reg = (Byte)(emu.getCode8(0) - 0x58); emu.setRegister32(reg, emu.pop32()); emu.eip += 1; }
public void set_rm32(Emulator emu, UInt32 value) { if (mod == 0x03) { emu.setRegister32(rm, value); } else { UInt32 address = calc_memory_address(emu); emu.setMemory32(address, value); } }
public void set_r32(Emulator emu, UInt32 value) { emu.setRegister32(regIndex, value); }