【发布时间】:2012-01-29 14:12:36
【问题描述】:
我正在尝试使用 GNU 汇编器编译一些汇编代码,目标是 ARM 平台。 但是会出现一些错误。我对汇编语法不熟悉。
谁能告诉我如何解决这个错误?
error: invalid operand in inline asm: 'str ${2:Q}, $0
str ${2:R}, $1
导致这个编译错误的内联汇编代码在这里:
static av_always_inline void AV_WN64(void *p, uint64_t v)
{
__asm__ ("str %Q2, %0 \n\t"
"str %R2, %1 \n\t"
: "=m"(*(uint32_t*)p), "=m"(*((uint32_t*)p+1))
: "r"(v));
}
【问题讨论】:
-
请发布它所抱怨的源代码行。
-
内联asm代码来自ffmpeg,libavutil/arm/intreadwrite.h。我添加上面的代码。
标签: assembly arm gnu gnu-assembler