我正在学习 windows x64 调用约定,其中前四个参数传递给寄存器,左参数通过堆栈传递。为了查看它,我检查了我制作的测试文件的程序集。我理解前四个参数通过寄存器传递,左参数通过堆栈传递,但我不理解指令的汇编。它看起来像这样:
mov DWORD PTR 40[rsp], 6
mov DWORD PTR 32[rsp], 5
我不知道 40[rsp] 是什么意思,也许是 rsp+40 。如果有人知道,请向我解释
我正在学习 windows x64 调用约定,其中前四个参数传递给寄存器,左参数通过堆栈传递。为了查看它,我检查了我制作的测试文件的程序集。我理解前四个参数通过寄存器传递,左参数通过堆栈传递,但我不理解指令的汇编。它看起来像这样:
mov DWORD PTR 40[rsp], 6
mov DWORD PTR 32[rsp], 5
我不知道 40[rsp] 是什么意思,也许是 rsp+40 。如果有人知道,请向我解释
是的,mov DWORD PTR 40[rsp], 6和 一样mov DWORD PTR [rsp + 40], 6。在常量是数组的基地址并且寄存器包含该数组的字节偏移量的情况下,第一种语法更有意义。这就是语法设计的用例。