我是汇编语言的新手,我想到了这个问题:哪个是构建我的代码、宏或过程的更好的解决方案?虽然包含在宏中的代码只是被复制到所需的部分,并且允许在没有代价高昂的跳转的情况下执行代码,但它确实添加了必须在程序执行时加载的额外指令。此外,在过程中,虽然它减少了需要加载到内存中的代码,但它也增加了昂贵的跳转,从一段代码到另一段代码。哪一个更好?宏还是程序?
我正在尝试使用 XMM 寄存器使用 SSE2 指令在汇编语言中将 4 个数字添加到其他 4 个数字中。我确实成功了,但我遇到了一些我不明白的事情。如果我以这种方式添加:
movdqu xmm0, oword [var1]
movdqu xmm1, oword [var2]
paddd xmm0, xmm1
movdqu oword [var1], xmm0
Run Code Online (Sandbox Code Playgroud)
它工作得很好。
但如果我这样尝试:
movdqu xmm0, oword [var1]
paddd xmm0, oword [var2]
movdqu oword [var1], xmm0
Run Code Online (Sandbox Code Playgroud)
它给了我一个分段错误。
第二种方法有什么问题?我正在使用 Nasm、Intel Atom N270、Linux Mint 12 32 位