Вопрос про Ассемблер
Вот есть регистры общего назначения
EBX: 22 33 44 55
ESP: 00 63 FB 60
командой push ebx, что получится?
На каком ресурсе я могу по экспериментировать? Я знаю про отладчики IDAPro Ollydbg, но туда надо модуль загружать проги и смотреть, я хочу отдельно смотреть какая команда что делает? Есть ли такой ресурс?
Могу порекомендовать проект SASM. IDE + как-бэ отладчик.
Что хорошо в первую очередь - макросы ввода-вывода в "консоль-окно". Это очень удобно для новичков, в т. ч. для вывода промежуточных результатов и посмотреть "что не так".
https://dman95.github.io/SASM/
Гляньте хотя-бы скриншот =)
А за инструкциями - конечно в первую очередь документация к процессору и пособиям по ассемблеру. Инструкций много, инструкции разные =)
P.S: OllyDbg вещь, но лучше чуть позже, когда освоитесь. Тем более там без WinAPI уже никуда. Вообще в своё время был SoftIce - самая крутая штука, что видел =). К сож. умер во времена XP.
Это вам надо Programmers Manual на сайте Intel скачать, там все инструкции микропроцессора расписаны.
Olydbg
Напиши попроще прогу с нужными действиями для проверки и посмотри через olydbg
В стёк заносишь, указатель вершины стёка меняется и всё
Команда PUSH размещает значение в стеке, т. е. помещает значение в ячейку памяти, на которую указывает регистр ESP, после этого значение регистра ESP увеличивается на 4.
Мне проще всего создать простенькое приложение на масм или фасм, а потом добавляя или удаляя команды тестировать их в x64dbg(прога похожая на olydbg), для старта советовал бы все же с olydbg начать.
Вообще, ESP не общего назначения...
Касательно вопроса что сделает:
1) уменьшить значение ESP на 4
2) записать значение EBX по адресу, записанному в ESP