堆栈处理双精度汇编加法做对比

易语言 2020-04-02 13:30:26

堆栈处理双精度汇编加法做对比

' fld qword [ebp+0x08] 第一个参数从 8 到 c 八个字节 属于第一个参数
' fadd qword [ebp+0x10] 第二个参数从 10 到 14 八个字节 属于第二个参数
' fstp qword [ebp+0x08] ebp+0x08 和堆栈那个 地址是相反的 不是把 0x0c 先压进去 而是把 0x08 压进去计算
' 堆栈中计算 ebp-0x08 是局部变量地址 或者说堆栈地址 ebp-0x04 到 ebp-0x08 应该是把参数的值复制到局部变量里 压进去准备运算 这里压的是 ebp-0x08 而不是 ebp-0x04 变量是在堆栈中的运算的所以是后进先出(或者是倒着保存)
' mov edx, dword [ebp+0x0C] 这里取出地址也是 和堆栈那个相反的 是把0x0c给edx 而不是 0x08给edx