我想知道是否有在.c 汇编代码中调用的方法? 我想把这段代码放在我的 .c 文件中
我要在.c文件中执行返回地址的汇编代码
1. mov eax, 0x2d
2. mov ebx, 0
3. int 0x80
我知道答案是 put eax。
这是.c文件的一部分:
1. void function(void)
2. {
3. void *sp;
4. sp = eax;
5. fprintf(stderr, "system break: %p\n", sp);
6. }
我该怎么做?
最佳答案
执行此操作的能力是特定于编译器的。 Gcc 允许这个 using its asm
keyword extension ,而 Visual Studio 实现了一个 different extension .
请注意,除了不可移植到其他架构的明显问题外,包括任何内联汇编都会降低性能,因为编译器无法分析汇编以确定它是否无副作用、内联是否安全、是否访问全局资源等。
关于c - 在c中执行汇编代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13207459/