我想知道是否有一种方法可以调用.c汇编代码?我想把这段代码放在我的.c文件中
我想在.c文件中执行汇编代码以返回地址
1. mov eax, 0x2d
2. mov ebx, 0
3. int 0x80
Run Code Online (Sandbox Code Playgroud)
我知道答案是eax.
这是.c文件的一部分:
1. void function(void)
2. {
3. void *sp;
4. sp = eax;
5. fprintf(stderr, "system break: %p\n", sp);
6. }
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
执行此操作的能力是特定于编译器的.Gcc允许使用其asm关键字扩展,而Visual Studio实现不同的扩展.
请注意,除了对其他体系结构不可移植的明显问题之外,包括任何内联汇编都会降低性能,因为编译器无法分析程序集以确定它是否无副作用,是否可以安全地内联,是否访问全局资源, 等等.
| 归档时间: |
|
| 查看次数: |
9370 次 |
| 最近记录: |