比较XMM中的Quadwords

dav*_*puh 3 x86 assembly sse nasm

使用nasm在x86汇编中编程...

用MOVQ指令我把m64放到xmm

MOVQ xmm1, qword [mymem64]
Run Code Online (Sandbox Code Playgroud)

现在我想将其比较为零,以便可以使用Jcc

如何完成以及必须使用什么指令?(快速浏览手册,我没有找到)

PS。我更喜欢Intel语法:P

Jen*_*ger 5

如果要根据值有条件地跳转,请不要使用SSE。为了能够设置Jcc所需的标志,您需要将值存储在通用寄存器中。如果您使用的是64位,则可以执行以下操作:

    mov     r8,[m64]
    test    r8,r8
    jnz     .out
Run Code Online (Sandbox Code Playgroud)

如果您使用的是32位,则可以分别检查两个部分:

    mov     eax,dword [m64]
    mov     edx,dword [m64+4]
    or      eax,edx
    jnz     .out    
Run Code Online (Sandbox Code Playgroud)