簡體   English   中英

'lddqu' 的操作數類型不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM