Сборка - изменение содержимого стека

Как изменить блок памяти стека в сборке?

Я подумал об одном способе:

POP EAX
ADD EAX, 5
PUSH EAX

Есть ли более короткий и эффективный способ сделать это?

1 ответ

Решение

Вы можете обратиться к значению в стеке напрямую с помощью операнда памяти, как в

add dword [esp], 5

или же

add qword [rsp], 5

если вы ориентируетесь на 64 бит; вместо этого в 16-битном режиме sp адресация на основе недоступна.

Другие вопросы по тегам