AMD64组装PINSRB& PEXTRB

时间:2014-06-28 20:52:12

标签: assembly x86-64

我是装配新手,必须了解以下几行:

PINSRB $0x00, %r10d, %xmm8
PEXTRB $0x00 , %xmm9, (%rdx, %rcx)

我知道PINSRB会在xmm8寄存器中插入一个字,但$ 0x00是什么意思?它是某种偏移吗? 指令(%rdx,%rcx)究竟是什么意思?

问候

1 个答案:

答案 0 :(得分:2)

PINSRB的第一个操作数是一个立即操作数并指定一个计数。

您可以在英特尔或AMD的手册中获取信息。请参阅http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf,(英特尔指令参考手册),第4-114页。但请注意,英特尔的文档以与您使用的相反的顺序(英特尔语法)指定了指令操作数。很多人已经把这些信息带到了一个更方便的形式,例如this page我很清楚地解释了它。

符号(%rdx, %rcx)表示内存位置,其地址是%rdx%rcx内容的总和。因此,如果%rdx包含500且%rcx包含200,则表达式将引用内存位置700.

除此之外:由于您询问了简单地址表达式的含义,因此您似乎不熟悉汇编。希望你喜欢它!但是当你刚学习基础知识时,就像解决问题一样,似乎还需要一段时间才能完全理解SSE4指令的复杂性。 :)欢迎来到大会:)我会说"希望有帮助"但是PINSRB似乎不是开始的好地方。干杯。 :)