gcc内嵌汇编中,%ebp和%esp分别对应哪些字母?

4

在gcc的内联汇编中,%esp和%ebp对应的字母是什么? 我了解到:

a = eax 
b =ebx 
c = ecx 
d = edx 
S = esi 
D = edi 
I = constant value (0 to 31). 
1个回答

6
手册中有一个 GCC 机器限制 列表(请参见:Intel 386 部分)。更详细的信息(通常比手册更为更新)可以在 i386/constraints.md 文件中找到。 然而,由于堆栈一致性等充分理由,%ebp%esp 不能用作约束。它们无法在扩展 asm 语法中指定为输入或输出。这在某些情况下还可能延伸至 %ebx —— 特别是,在生成位置独立代码时,例如使用 (i386 SysV) ELF ABI。
当然,你仍然可以在 asm 块中显式操纵这些寄存器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接