예제 #1
0
        // opcode 0x68
        public static void push_imm32(Emulator emu)
        {
            UInt32 value = emu.getCode32(1);

            emu.push32(value);
            emu.eip += 5;
        }
예제 #2
0
        // opcode 0xE8
        public static void call_rel32(Emulator emu)
        {
            Int32 diff = emu.getSignedCode32(1);

            emu.push32(emu.eip + 5);
            emu.eip += (uint)(diff + 5);
        }
예제 #3
0
        // opcode 0x50-0x57
        public static void push_r32(Emulator emu)
        {
            Byte reg = (Byte)(emu.getCode8(0) - 0x50);

            emu.push32(emu.getRegister32(reg));
            emu.eip += 1;
        }
예제 #4
0
        // opcode 0x6A
        public static void push_imm8(Emulator emu)
        {
            Byte value = (Byte)emu.getCode8(1);

            emu.push32(value);
            emu.eip += 2;
        }