问题描述
有没有办法用编译器内在函数指定寄存器?
例如,据说 _mm_load_si128
对指令 movdqa xmm,m128
进行编码,但我看不到一种方法来指定您要使用的实际寄存器。
我也不能使用内联汇编,因为 VS 不支持 64 位,所以我必须自己为每个函数编写 shellcode,然后在运行时为函数分配内存,这似乎是一个糟糕的选择。
这样做的原因是我想用数据填充每个 XMM 寄存器,然后将其卸载到内存中的特定地址。
解决方法
当然可以。使用 nasm 制作 .o
或使用 msvc 中的 ml
(但我没有使用后者)。然后你可以将它链接到 elf/exe 。 Ofc 你只能在汇编程序中指定这些东西