Там же статьи или серии статей (как в случае с Amber ARM), а не просто проекты
Понял, насчет проектов. Да, если это блог, то вопросов нет :) Просто поинтересовался.
какую, если не секрет, документацию по системе команд x86 используете?
Я использую за основу систему команд, которая предоставлена в моем документе, который я ранее на форуме публиковал (PDF-версия), но собственно, взято было отсюда
ref.x86asm.net/coder32.html
и сверстано в pdf через msword уже лично мной для распечатки.
Так как чисто принципиально я не использую никаких готовых модулей, а получается, что каждая строка кода написана лично мной, то все исполняемые инструкции группирую вручную, вычисляю вручную маски опкодов, создаю процедуры для микрокодов на основе той информации, что знаю лично, ну и использую Turbo Debugger в DOSBOX, если нужно проверить как выставляются флаги или работает инструкция.
По флагам был "раскурочен" bochs, признаться, да, проверил, как там флаги проставляются. Вообще по флагам даже не так сложно, самое сложное это было сделать флаги для ALU, особенно бит A, но в принципе это решил через logisim (скрин прилагается).
Собственно, для x86-архитектуры действительно существуют определенные маски опкодов, но только дело осложняют префиксы, а также байт modrm, который имеет разную длину и бывает, слегка неоднозначная логика для операции GrpN (когда в reg-части байта modrm находится та инструкция, которую надо исполнить). Я нахожусь как раз сейчас в процессе составления этой таблицы масок.
Сегодня вот сделал (чуть ли не сама простая инструкция):
1001xxxx -- XCHG AX, r16
Как вывод, могу сказать: все делается почти "с нуля". Это вот как раз мне и приносит максимальную отдачу от процесса разработки ;)