【发布时间】:2021-04-26 07:38:34
【问题描述】:
在 C 程序中直接运行汇编指令的最简单方法是什么?例如,我截取了一个示例来执行以下操作:
#include <stdio.h>
int plus_one_times_two(int x)
{
// plus one -- in asm
// argument passed in %rdi, so how to do: `inc %rdi` ? from C
// times two -- in c
x = x*2;
return x;
}
int main(void)
{
int x=5;
int y=plus_one_times_two(x);
printf("X: %d | (X+1)*2: %d\n", x, y);
}
【问题讨论】:
-
你为什么不能只做
x++;? -
@user3840170 这是一个练习,看看如何去做。我当然可以这样做,而且我什至不会使用函数,而只会内联算术:
(x*2)+1。 -
为什么要在汇编中编码?在汇编中编码的原因很少。您可能想要阅读编译器生成的汇编代码!大多数笔记本电脑或台式机都是 x86-64(32 位变体 x86 在 2021 年很少见),并且大多数平板电脑都有 ARM 处理器。
标签: c assembly x86 inline-assembly