小编0xa*_*5a5的帖子

在气体宏中自动生成xmm寄存器名称?

我想写一个气体宏来生成包含xmm寄存器的各种movdqu指令的代码,具体取决于参数n.

    .macro xxmov n, p1
            .if (\n == 1)
            xor %eax, %eax
            .endif
            .if (\n - 1)
            xxmov (\n - 1), \p1
            .endif
            movdqu ((\n - 1)*0x10)(\p1), %xmm0
    .endm

    xxmov 14, %rsi
Run Code Online (Sandbox Code Playgroud)

编译后,反汇编的代码是,

    0000000000000000 <.text>:
    0:              31 c0                   xor    %eax,%eax
    2:              f3 0f 6f 06             movdqu (%rsi),%xmm0
    6:              f3 0f 6f 46 10          movdqu 0x10(%rsi),%xmm0
    b:              f3 0f 6f 46 20          movdqu 0x20(%rsi),%xmm0
    10:             f3 0f 6f 46 30          movdqu 0x30(%rsi),%xmm0
    15:             f3 0f 6f 46 40          movdqu 0x40(%rsi),%xmm0
    1a: …
Run Code Online (Sandbox Code Playgroud)

x86 assembly sse gnu-assembler

6
推荐指数
1
解决办法
1278
查看次数

标签 统计

assembly ×1

gnu-assembler ×1

sse ×1

x86 ×1