Lab 2: Базовые команды и кодирование для процессора #2

Merged
mrqiz merged 21 commits from labs/02 into main 2024-09-22 18:15:51 +03:00
2 changed files with 42 additions and 0 deletions
Showing only changes of commit c672fd4fcb - Show all commits

View File

@ -4,15 +4,15 @@
## Кодирование команд для x86-64 архитектуры
Преподаватель на ресурсном курсе оставил огромный талмуд Intel на тему того, как кодируются команды у их процессоров. И пусть даже наш дорогой препод на лекции дал пояснения по конверсии и прочему, он оставил без ответа вопросы следующего толка: когда какие байты задействованы, где посмотреть опкоды команд и прочие мелочи жизни. Я тот еще программист, поэтому на меня тут не надейтесь, но помогу чем смогу
Преподаватель на ресурсном курсе оставил огромный талмуд Intel (далее именуемый "талмудик" и "талмуд") на тему того, как кодируются команды у их процессоров. И пусть даже наш дорогой препод на лекции дал пояснения по конверсии и прочему, он оставил без ответа вопросы следующего толка: когда какие байты задействованы, где посмотреть опкоды команд и прочие мелочи жизни. Я тот еще программист, поэтому на меня тут не надейтесь, но помогу чем смогу
Перво-наперво структура команды. Приведена она и у препода и в талмудике Intel, повторяться не хочу, но картинку оставлю
![Структура команд](../assets/command_structure.png)
![Структура команд](assets/command_structure.png)
На этой же картинке видно, что может быть от разное количество байт на КОП, на Displacement, на Immediate и прочем. Да и еще проскакивают надписи `(if required)` и `(optional)`. Вопрос назревает сам собой - а где смотреть-то. И ответ у меня к сожалению не утешительный - в том самом великом и ужасном талмудике от Intel (по крайней мере я не нашел другого способа понадежнее). Но тут есть одна так сказать проблемка... Таблички по командам Intel выглядят мягко скажем как-то так...
![Пример таблицы опкода](../assets/opcode_table_example.png)
![Пример таблицы опкода](assets/opcode_table_example.png)
Хтонь лично на мой взгляд довольно неприятная, но на самом деле она не так страшна, как вы подумали... Она значительно хуже...