用c语言跳转到绝对地址0x10000执行
2011-10-21 12:29
288 查看
答案:把绝对地址转化为函数指针,即:((void*)(void)0x10000)();
不用函数指针你怎么来保存函数的入口地址——函数名代表了函数的入口地址,这是因为C语言中没有函数对象,所以要用函数指针来保存函数的入口地址,在c++中引入了函数对象——stl,他是算法具有了通用性
有很多方法可以实现 比如: 1.把那个要跳的地址转换成一个函数指针,然后调用这个函数指针. 2.直接用goto 不过在C嵌入汇编更容易实现,下面帮你实现上面那2个方法. #include <stdio.h> void Print() { printf("HelloWorld!\n"); } int main() { _asm { lea eax, Print call eax } printf("Main\n"); return 0; } //////////////////////////////////////////////////////////////// #include <stdio.h> void Print() { printf("HelloWorld!\n"); } int main() { _asm { lea eax, RetAddr push eax jmp Print RetAddr://call执行完之后返回到这里 } printf("Main\n"); return 0; }
相关文章推荐
- <详解>C语言实现程序跳转到绝对地址0x100000处执行
- C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
- C语言实现程序跳转到绝对地址0x100000处执行
- C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
- C语言使用函数指针跳转到程序固定地址(0x8000)执行程序的方法
- 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么
- 让程序跳转到某绝对地址执行
- C语言实现程序跳转到绝对地址0x100000处执行
- <详解>C语言实现程序跳转到绝对地址0x100000处执行
- 想让程序跳转到绝对地址0x100000处执行,该如何做?
- C语言跳转到指定地址执行
- C语言实现程序跳转到绝对地址0x100000处执行
- 让程序跳转到绝对地址执行
- 跳转绝对地址
- c语言如何跳转到内存地址执行应用程序?
- 跳转某指定地址、给某绝对地址赋值
- 51单片机C语言编程中对单片机绝对地址访问的两种方法
- 关于window.location.href跳转绝对地址的问题
- C语言中强制地址跳转详解
- 跳转到绝对地址处执行代码