x86-64从堆栈段错误中存储和删除浮点值

问题描述 投票:0回答:1

因此,我认为我应该为在堆栈和XMM寄存器之间移动数据提供简单的辅助函数,但是我再次出现段错误。应该如何正确地做到这一点?下面是我当前的段错误代码:

pushxmm0:
    SUB RSP, 8;Move the stack
    MOVSD QWORD [RSP], XMM0
    RET

popxmm0:
    MOVSD XMM0, QWORD [RSP]
    ADD RSP, 8;Move the stack
    RET

main:
    ;Do stuff here
    CALL pushxmm0
    ;Do more stuff
    CALL popxmm0 ;Restore the register value (segfault)

编辑:这与函数的调用有关吗?

assembly segmentation-fault stack sse
1个回答
0
投票

在执行pushxmm0例程的第一条指令之前,堆栈看起来像这样:

© www.soinside.com 2019 - 2024. All rights reserved.