Как инструкции и данные хранятся в памяти?
Я отлаживаю программу C#, и представление дизассемблирования показывает это:
0x006E2813 pop ebx
0x006E2814 pop esi
Так pop ebx
хранится в 1 байте (в одном адресе), но как это может быть, так как pop
сама инструкция имеет размер 1 байт?
Или показывает только данные (ebx
), так где хранятся инструкции?
1 ответ
Решение
как это может быть, так как сама команда pop имеет размер 1 байт?
Он кодируется в разные байты в зависимости от того, какой регистр он использует. pop ebx
0x5B, pop esi
это 0x5E. Существует множество веб-сайтов и руководств, описывающих кодировку инструкций x86.