gpt4 book ai didi

assembly - pmovmskb 可以有 64 位目标吗?

转载 作者:行者123 更新时间:2023-12-01 13:51:20 25 4
gpt4 key购买 nike

使用 NASM 版本 2.11.08,以下编译正常:

pmovmskb eax, mm0

但以下内容被拒绝,错误:操作码和操作数的组合无效:

pmovmskb rax, mm0

我不明白为什么这不合法?在 Intel 手册中,操作行只是说 PMOVMSKB reg, mm,但是Operation 部分包括对两者的解释:

  • PMOVMSKB(带有 64 位源操作数和 r32)
  • PMOVMSKB(带有 64 位源操作数和 r64)

所以这让我觉得我应该能够以 EAX 或 RAX 作为目的地来运行它,对吧?但也许有些事情我不明白...?

最佳答案

当我尝试你的代码时,我将只向你展示我的调试器的输出,由 ml64.exe 生成:

.CODE
testfunc PROC
pmovmskb eax, mm0
00007FF78A611060 0F D7 C0 pmovmskb eax,mm0
pmovmskb rax, mm0
00007FF78A611063 48 0F D7 C0 pmovmskb rax,mm0
ret
00007FF78A611067 C3 ret

使用 this site 验证它不是该汇编程序中的错误:

enter image description here


嗯,MMX 绝对是一个继子,最好忽略它曾经存在过的事实。您可以在 this page 报告项目错误.

关于assembly - pmovmskb 可以有 64 位目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com