Мне интересно написать ассемблер x86 для хобби.
Сначала мне показалось довольно прямолинейным, но чем больше я читал в нем, тем больше вопросов остались без ответа. Я не совсем неопытен: я использовал сборку MIP, и я написал игрушечный компилятор для подмножества C в школе.
Моя цель - написать простой, но функциональный ассемблер x86. Я не собираюсь делать коммерчески жизнеспособный ассемблер, а просто хобби-проект, чтобы укрепить мои знания в определенных областях. Поэтому я не возражаю, если я не реализую все доступные функции и операции.
У меня есть много вопросов, таких как: следует ли использовать однопроходный или двухпроходный метод? Должен ли я использовать ad-hoc для синтаксического анализа или определять формальные грамматики и использовать синтаксический анализатор для моих инструкций? На какой стадии и как мне разрешать адреса моих символов?
Учитывая мои требования, может ли кто-нибудь предложить некоторые общие рекомендации по методам, которые я должен использовать в своем ассемблере домашних животных?