Ассемблер для микроконтроллера КР1878ВЕ1 "Тесей"

Микроконтроллер КР1878ВЕ1 "Тесей" выпускается Зеленоградским заводом "Ангстрем". Он является аналогом Microchip PIC16C84 c EEPROM. Хорошее описание есть в статье Шишарина и Малашевича.

Ассемблер

Для Тесея я разработал простой однопроходный ассемблер. В дистрибутиве есть также дизассемблер, читающий HEX-файл и выдающий ассемблерный текст.

Отличия от фирменного ассемблера (tessa.exe):

  • В директиве .byte требуется четное количество аргументов.
  • При ссылке на локальную метку необходимо задавать направление ссылки буквами `f’ и `b’ (вперед и назад) после номера метки, например “jmp $1f”.
  • Нет встроенного препроцессора. Рекомендуется использовать cpp.
  • Для неопределенных имен автоматически подключаются файлы из библиотеки.
  • Производится оптимизация констант (.const) - одинаковые константы используются повторно.

Вызов:

as-tesei [флаги...] infile.mic...

Флаги:

  -D, --debug                Выдача отладочной информации
  -l, --library=DIR          Добавить DIR к пути поиска библиотек
  -o, --output=FILE          Направлять результат в FILE (по умолчанию infile.hex)
  -?, --help                 Выдать эту справочную информацию
      --usage                Выдать короткую справочную информацию
  -V, --version              Выдать номер версии программы

Мнемоника команд ассемблера приведена на отдельной странице.

Библиотека арифметических функций

На основе материалов сайта http://www.angstrem.ru/product/risc.htm я сделал библиотеку арифметических функций. Не знаю, работают ли эти функции, но по крайней мере ассемблер прекрасно связывает файлы из библиотеки.

Имеются функции:

  • Беззнаковое умножение 8×8
  • Знаковое умножение 8×8
  • Беззнаковое умножение 16×16
  • Знаковое умножение 16×16
  • Беззнаковое деление 8×8
  • Знаковое деление 8×8
  • Беззнаковое деление 16×16
 
proj/tesei/tesei-asm.txt · Последние изменения: 2008/05/13 02:30 vak
 
Copyright (C) 1996-2013 Serge Vakulenko
serge@vak.ru