我正在学习SSE指令,并在尝试将单个字节从xmm寄存器复制到as时,使用GNU的al汇编程序发现了一个奇怪的错误:
“错误:pextrb的操作数类型不匹配”。

我认为我的语法是正确的,它与pextrd完美配合。

pextrd $3, %xmm0, %eax  # Works perfectly fine
pextrb $3, %xmm0, %al   # Error: operand type mismatch for 'pextrb'

最佳答案

Marc Glisse是正确的,它在使用eax而不是al时有效。它是零扩展的,因此eax实际上只包含一个字节。谢谢!

pextrb $3, %xmm0, %eax

关于assembly - 如何从Asm中的xmm寄存器中提取单个字节?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54286351/

10-09 03:47