gpt4 book ai didi

c - 重置 gcc 的 asm 内联输入

转载 作者:太空宇宙 更新时间:2023-11-03 23:52:30 25 4
gpt4 key购买 nike

如何要求 gcc 重置 asm 内联输入值?以下示例中的 %0 在第一个循环后未重置为 42。所以当 i = 1 时,%0 值仍然是 0

for (int i = 0; i < N; ++i)
asm("label: substract_immediate_value %0,%0,1;"
"compare_immediate_value %0,0;"
"branch_not_equal label"
: /* no outputs */
: /* input */ "r" (42));

最佳答案

我没试过,但看起来不错:

for (int i = 0; i < N; ++i)
{
int n = 42;
asm("label: substract_immediate_value %0,%0,1;"
"compare_immediate_value %0,0;"
"branch_not_equal label"
: "+r" (n));
}

我认为这是一个简化的示例,因为我无法想象您为什么不直接用 C 编写代码。实际上,这是一个空操作。

关于c - 重置 gcc 的 asm 内联输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100044/

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