Запись ассемблера Z80 - lexing ASM и создание дерева синтаксического анализа с помощью состава?

Запишите свою спецификацию, когда Вы будете закончены, кодируя. (если вообще)

Во многих проектах я был вовлечен в, большое усилие было потрачено в начале, пишущий "спецификацию" в Microsoft Word. Этот процесс достиг высшей точки в "знаке" от встречи, когда важные шишки покупали акции на проекте, и после той встречи, никто никогда не смотрел на этот документ снова. Эти документы являются полной пустой тратой времени и не отражают, как программное обеспечение на самом деле разработано. Нельзя сказать там не является другими ценными артефактами проектирования приложений. Они обычно содержатся на учетных карточках, снимках электронных досок, салфеток коктейля и других подобных медиа, которые обеспечивают своего рода временную шкалу для дизайна приложения. Это, обычно реальные спецификации приложения. Если Вы собираетесь записать документ Word, (и я особенно не говорю, что Вы должны) делать это в конце проекта. По крайней мере, это точно представит то, что было сделано в коде и могло бы помочь кому-то в будущем как команда QA или следующие разработчики версии.

9
задан Peter Mortensen 7 August 2016 в 14:10
поделиться

3 ответа

Ну, структура дерева, которое вам действительно нужно инструкция, которая работает с регистром и памятью режим адресации, включающий смещение смещения и индексный регистр будет выглядеть так:

    INSTRUCTION-----+
    |      |        |
  OPCODE  REG     OPERAND
                  |     |
                OFFSET  INDEXREG

И да, вы хотите передавать значения вверх и вниз по дереву. Метод для формального определения такой передачи значений называется "атрибутные грамматики", и вы украсите грамматику для своих langauge (в вашем случае синтаксис ассемблера) с передачей значений и вычисления по этим значениям. Для получения дополнительной информации, см. Википедию по грамматикам атрибутов .

В вопросе, относящемся к , вы задали , я обсуждал инструмент, DMS , который обрабатывает грамматику выражений и строит деревья. Как инструмент манипулирования языком, DMS сталкивается точно с теми же взлетами и падениями проблемы с информационными потоками дерева. Вас это не должно удивлять, что как высококлассный инструмент для манипулирования языком, он может обрабатывать атрибутивные вычисления грамматики напрямую.

9
ответ дан 4 December 2019 в 11:43
поделиться

Нет необходимости строить дерево синтаксического анализа. Коды операций Z80 очень просты. Они состоят из кода операции и 0, 1 или 2 операндов, разделенных запятыми. Вам просто нужно разбить код операции на (максимум 3) компоненты с помощью очень простого парсера - никакого дерева не требуется.

6
ответ дан 4 December 2019 в 11:43
поделиться

На самом деле, коды операций имеют не байтовую базу, а восьмеричную. Лучшее описание, которое я знаю, это ДЕКОДИРОВАНИЕ ОПКОДОВ Z80 .

3
ответ дан 4 December 2019 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: