необязательно. если функция изменяет регистры которые не нужно менять, то да push/pop этих регистров надо делать до и после вызова функции. если у тя параметры надо передавать, то определись с конвенцией вызова. ты параметры можешь также передавать через регистры и результат выдавать также через регистры (как в досе)
А вот в конце если передали два параметра то нужно после call делать add esp, 8 ?
add - это сумма, плюсб "+" операнды такие : 1й слагаемое (приемник)+ 2й слагаемое (источник). результат кладется в приемник.
в твоем примере eax - приемник (1е слагаемое). а - источник (2е слагаемое). если значение "а" (2е слагаемое) нам известно то чему равно eax (1е слагаемое)
add - это сумма, плюсб "+" операнды такие : 1й слагаемое (приемник)+ 2й слагаемое (источник). результат кладется в приемник.
в твоем примере eax - приемник (1е слагаемое). а - источник (2е слагаемое). если значение "а" (2е слагаемое) нам известно то чему равно eax (1е слагаемое)