如何在汇编中获得16字节对齐的地址

时间:2014-02-17 13:47:31

标签: assembly stack memory-address memory-alignment fpu

我必须将浮点寄存器保存到堆栈中 我试着用fsave指令 我做了以下事情:

fsave (%esp)

但作为参数,fsave使用16字节对齐的地址。

我不知道如何在%esp中建立地址为16字节对齐。

1 个答案:

答案 0 :(得分:3)

使用英特尔风格语法:

    push    ebp             ;save ebp
    mov     ebp,esp         ;save esp in ebp
    and     esp,0fffffff0h  ;round esp down to 16 byte boundary
    sub     esp,128         ;allocate multiple of 16 bytes