gpt4 book ai didi

gcc - 如何在 ARM GCC 内联汇编中指定单个寄存器作为约束?

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

在 x86 内联汇编中,我可以这样写:

asm ("cpuid"
: "=a" (_eax),
"=b" (_ebx),
"=c" (_ecx),
"=d" (_edx)
: "a" (op));

所以在 matchin 约束中,而不是只写“=r”并让编译器选择寄存器,我可以说我想使用哪个特定的寄存器(=a 例如使用 %eax)

我怎样才能为 ARM 程序集做到这一点?
ARM GCC 汇编手册 http://www.ethernut.de/en/documents/arm-inline-asm.html声明我可以例如使用约束
“r”表示通用寄存器 R0-R15 之一
“w”表示 VFP 浮点寄存器 S0-S31 之一

但是我怎样才能将一个操作数限制为例如 s1 呢?或特定的通用寄存器?

最佳答案

我认为 ARM 的 gcc 不允许您使用 constraints以准确指定要使用的寄存器。但是,您可以使用 explicit register variables指定一个寄存器来存储变量:

register int my_variable asm("r0");

关于gcc - 如何在 ARM GCC 内联汇编中指定单个寄存器作为约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929442/

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