我试图用nasm编译一个汇编文件并将其与golink链接。 该文件非常简单,只包含一次SSE命令调用。
当我在没有SSE命令的情况下编译和链接文件时,可执行文件正常运行,但是当文件包含SSE命令时程序崩溃了,所以我假设问题出在某处。使用该命令。
这是代码 - hello.asm:
extern malloc
global main
section .text
main:
push rbp ; Save the stack
mov rbp, rsp
push rax ; Save the registers
push 1024;
call malloc
and rax,0xFFFFFFFFFFFFF000
movntdq [rax], xmm5;
pop rax
mov rsp,rbp
pop rbp
mov rax,0
ret
编译的代码:( yasm - 同样的问题)
nasm -f win64 hello.asm -o hello.obj
并与:
相关联golink.exe /console /entry main hello.obj MSVCRT.dll kernel32.dll
输出是hello.exe,每次运行时都会崩溃。
这里有什么问题?
提前致谢!