У меня есть следующий код, который я унаследовал и пытаюсь понять.Соглашение о назначении MASM x64 - зачем здесь allocstack нужно несколько раз?
Я получаю .allocstack 20h - он говорит, что выделяет пространство стека для 32 байтов, правильно?
Но почему существует allocstack для каждого регистра? И если есть тогда, почему не последний allocstack 8h (потому что там уже 3 allocstacks для 8, значит, выполняется 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 –