[英]operand type mismatch for `lddqu'
我需要使用指令 lddqu 將地址 [rsi - 0x80] 中的 128 位值移動到下面的 dest 變量,並且遇到錯誤“‘lddqu’的操作數類型不匹配”。 我知道以前有關於使用較小操作數大小的 stackoverflow 的問題,但是我應該在指令中使用什么后綴才能獲得變量中該地址的值。
__int128 dst = 0, src = 0;
asm volatile ("lddqu -0x80(%%rsi), %0\n\t"
: "=r" (dst)
: "r" (src));
lddqu
只能加載到向量寄存器,不能加載到通用寄存器。 使用=x
代替=r
作為dst
的約束。
此外,您的來源看起來很可疑,因為您忽略了src
並且只是從您對其內容一無所知的寄存器的任意偏移量加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.