ручками их считать, а макросом каким-нибудь? FASM
; 4 3 2 1 0
reglist equ r9 r8 rdx rcx rbx
count@regs = 5
;------ save non volatile register ------------------
irps reg,reglist \{ forward push reg \}
size@stack = count@regs * 8
;---- now align definitevely the stack to 0(MOD16)
if (size@stack mod 16)
valueadd=0
else
valueadd=8
end if
;———————————————————
; begin of code
sub rsp, delta+((count@regs+1)*8)+valueadd
match regs,reglist { count@regs = 0 irps r, regs \{ count@regs = count@regs + 1 \} }
Обсуждают сегодня