在c中执行汇编代码

Wei*_*ram 3 c assembly nasm

我想知道是否有一种方法可以调用.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)

我该怎么做?

use*_*342 6

执行此操作的能力是特定于编译器的.Gcc允许使用其asm关键字扩展,而Visual Studio实现不同的扩展.

请注意,除了对其他体系结构不可移植的明显问题之外,包括任何内联汇编都会降低性能,因为编译器无法分析程序集以确定它是否无副作用,是否可以安全地内联,是否访问全局资源, 等等.