diff --git a/02-cpu-commnads/README.md b/02-cpu-commnads/README.md index b81fcf0..160d29d 100644 --- a/02-cpu-commnads/README.md +++ b/02-cpu-commnads/README.md @@ -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) Хтонь лично на мой взгляд довольно неприятная, но на самом деле она не так страшна, как вы подумали... Она значительно хуже...