gpt4 book ai didi

assembly - 包含 %0 的 asm 代码,这是什么意思?

转载 作者:行者123 更新时间:2023-12-04 23:27:25 25 4
gpt4 key购买 nike

我的asm知识非常有限,我需要知道以下代码:

movl %%esp %0

是否 %0代表一个寄存器,一个内存地址,还是别的什么? %0 有什么用意思?

最佳答案

它代表了一些 input/output operand .它允许您在汇编代码中使用 C 变量。 This page有一些很好的例子。
%0只是代码中定义的第一个输入/输出操作数。实际上,这可能是堆栈变量、堆变量或寄存器,具体取决于编译器生成的汇编代码的方式。

例如:

int a=10, b;
asm ("movl %1, %%eax;
movl %%eax, %0;"
:"=r"(b) /* output */
:"r"(a) /* input */
:"%eax" /* clobbered register */
);
%0b在这种情况下和 %1a .

关于assembly - 包含 %0 的 asm 代码,这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10461798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com