gpt4 book ai didi

c - 带有属性的 movl AT&T 语法

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:28 27 4
gpt4 key购买 nike

这是 AT&T Syntax 中的一段汇编代码

int foo_array[64*1024]  __attribute__ ((aligned (8192)));

void
foo()
{
__asm__("movl %0,%%eax"::"r"(&foo_array));

我了解到 movl 将数据从源操作数复制到目标操作数。也就是说,就我而言,它正在将 0 移动到 eax。这就是我从这个 link 中了解到的内容- 幻灯片 2

但是,我不明白它的其余部分。谁能帮我解释一下。

最佳答案

您应该继续阅读 GCC inline assembly constraints .

简而言之,::"r"(&foo_array) 说的是您需要一个汇编代码输入,该输入应该放在一个寄存器中,并且它的值应该是 foo_array 的地址。
代码中的 %0 被替换为该输入,因此代码放置了 foo_array 的地址> 在 eax 中。

关于c - 带有属性的 movl AT&T 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019292/

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