gpt4 book ai didi

c - 这个美元符号在 __asm 中是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 15:36:57 24 4
gpt4 key购买 nike

我试着用谷歌搜索这个,但找不到任何足以让我理解的信息。

int i;
char msg1[] = "odd";
char msg2[] = "even";
char *ptr;
__asm__(" \
movl i, %eax\n\
andl $1, %eax\n\
jz zero\n\
movl $msg1, %eax\n\
jmp done\n\
zero:\n\
movl $msg2, %eax\n\
done:\n\
movl %eax, ptr\n\
");

为什么有些需要 $ 而其他(比如 i)没有 $ 符号?

最佳答案

$1 是常数一

 `andl $1, %eax` this means do  AND of 1 and EAX register.

$ 是常量前面的前缀并且立即赋值。msg1 和 msg1 是两个数组的地址。所以它们的前缀太多了 $

i 是一个 c 变量。使用内存访问(间接引用)访问它。

检查这个reference .

关于c - 这个美元符号在 __asm 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366996/

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