检查 DLL 是否使用 SSE 指令

Bar*_*yne 5 dll x86 assembly sse visual-c++

我正在 Windows 7(目标平台 = Windows XP Embedded)上使用 Visual Studio 2012 Express 交叉编译 C++ 应用程序。目标 CPU 不支持 SSE 或 SSE2 指令。因此,我希望能够仔细检查我构建的 DLL 和 EXE 是否不使用任何 SSE 或 SSE2 指令。我怎样才能做到这一点?

Ant*_*n K 4

这是你可以快速而肮脏地做到这一点的方法:

  1. 运行 Visual Studio 命令提示符
  2. 称呼dumpbin /disasm required.dll > dll_disasm.asm
  3. 查找常见的 SSE/SSE2 指令,例如movss,xmm0xmm1

如果 DLL 中没有找到 SSE 指令/寄存器,那么除非 DLL 加载其他内容,否则就没有问题。