c执行机器码

c语言中执行汇编代码可以直接嵌在_asm{}块中,但是怎么执行机器码呢。
先定义一个机器码数组,然后通过函数指针调用。

unsigned char code[] =//{return   x+y;}   
	{
    
    
		0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x40, 0x53, 0x56, 0x57,
		0x8d, 0x7d, 0xc0, 0xb9, 0x10, 0x00, 0x00, 0x00, 0xb8,
		0xcc, 0xcc, 0xcc, 0xcc, 0xf3, 0xab,
		0x8b, 0x45, 0x08, 0x03, 0x45, 0x0c,
		0x5f, 0x5e, 0x5b, 0x8b, 0xe5, 0x5d, 0xc3
	};

	typedef int(*FUN)(int, int);
	FUN fun = (FUN)(void *)code;
	int x = fun(1, 2);
	```

猜你喜欢

转载自blog.csdn.net/a1663049254/article/details/91541897