fix: добавил примечание к инструкции по кодированию

This commit is contained in:
Miheev Egor
2024-09-18 23:41:20 +03:00
parent b97816df15
commit 3ff51630f5

View File

@ -53,6 +53,13 @@
6. После SIB идет displacement байты (1 или 4 в зависимости от поля mod в ModR/M). Заполняем их согласно выделенному количеству 6. После SIB идет displacement байты (1 или 4 в зависимости от поля mod в ModR/M). Заполняем их согласно выделенному количеству
7. После dispacement идет immediate байты - они могут встретиться если в табличке в колонке opcode на этой строке есть что-то похожее на `ib` или другие, которые мы упоминали. заполняем сколько надо 7. После dispacement идет immediate байты - они могут встретиться если в табличке в колонке opcode на этой строке есть что-то похожее на `ib` или другие, которые мы упоминали. заполняем сколько надо
NOTE: По какой-то причине это не указано в руководстве Intel, но по крайней мере если верить сайту, который я использовал для ассемблирования инструкций, то нужно обязательно учитыать префиксы к опкоду прежде чем начинать кодировать (опять же все по опыту):
1. `0x67` - ставится если команда **адресуется** при помощи 32-битных регистров
2. `0x66` - ставится, если программа иссользует хотя бы 1 16-битный регистр
Благо для 8-битных операций другие опкоды и хотя бы на них не надо префиксы запоминать)
<!--- Пока что я думаю эта инфа лишняя, может потом верну и раскомментирую <!--- Пока что я думаю эта инфа лишняя, может потом верну и раскомментирую
### Чутка про префикс REX ### Чутка про префикс REX