我有下面的代碼,我已經繼承,並試圖弄清楚它。MASM x64調用約定 - 爲什麼allocstack在這裏需要多次?
我得到.allocstack 20小時 - 它是說爲32個字節分配堆棧空間,對吧?
但爲什麼每個寄存器都有allocstack?如果有,那麼爲什麼不是最後一個allocstack 8h(因爲8個已經有3個allocstack,所以滿足32個字節的要求)?
; save registers
push rax
.allocstack 8
push r10
.allocstack 8
push r11
.allocstack 8
sub rsp, 20h
.allocstack 20h
.endprolog
call EnterStub
add rsp, 20h
; restore registers
pop r11
pop r10
pop rax
; return
ret
https://www.tortall.net/projects/yasm/manual/html/objfmt-win64-exception.html –