如何从Asm中的xmm寄存器中提取单个字节?

时间:2019-01-21 08:58:07

标签: assembly x86-64 sse gas

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

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

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

1 个答案:

答案 0 :(得分:3)

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

<preference name="Orientation" value="landscape" />