SB-Projects - SB-Assembler - перекрестное наложение

  1. 6800 Введение .cr 6800 Для загрузки перекрестного наложения 6800.cr 6801 Для загрузки перекрестного...
  2. Аккумуляторы А и Б
  3. Индексный регистр IX
  4. Указатель стека
  5. Счетчик программ
  6. Зарезервированные слова
  7. Особые возможности
  8. Принудительная прямая страница и расширенные режимы адресации
  9. Инициализация оверлея
  10. Различия между другими ассемблерами

6800 Введение

.cr 6800 Для загрузки перекрестного наложения 6800.cr 6801 Для загрузки перекрестного наложения 6801 .cr 6301 Для загрузки перекрестного наложения 6301

Процессор Motorola 6800 примерно такой же старый, как и Intel 8080. За прошедшие годы из него развилось несколько других процессоров, таких как 6801, 6802 и Hitachi 6301. 6802 - это то же самое, что и оригинальный 6800, только тактовый генератор и 128 байтов оперативной памяти были добавлены. Некоторые другие модели имеют немного другой набор инструкций.
Все эти устройства очень похожи, поэтому я описываю все их перекрестные пометки здесь на одной странице. Тестовые файлы кода операции, включенные в пакет загрузки, показывают все специфические для процессора инструкции и новые режимы адресации.

6800 может использовать режим адресации нулевой страницы, который щедро компенсирует ограниченное количество доступных внутренних регистров.

Модель программирования

Модель программирования на рисунке ниже показывает наиболее важные регистры процессора 6800. Здесь я приведу лишь краткое изложение особенностей модели программирования 6800. Я не намерен делать оригинальную документацию устаревшей, поэтому, пожалуйста, обратитесь к оригинальной документации для получения более подробной информации.

Не пугайтесь относительно небольшого количества регистров 6800 по сравнению с другими типами процессоров. 6800 имеет очень мощный режим адресации, называемый прямой адресацией страниц. Таким образом, все 256 байтов страницы 0 в памяти могут быть адресованы только 8 битами. Эти 256 адресов можно считать «регистрами» 6800!

Аккумуляторы А и Б

Регистр кода состояния

Бит 7 1 Aleays читает 1 Бит 6 1 Aleays читает 1 Бит 5 H Половина флага переноса Бит 4 I Флаг маски прерывания Бит 3 N Отрицательный флаг Бит 2 Z Ноль флага Бит 1 V Флаг переполнения Бит 0 C Флаг переноса / заимствования

Индексный регистр IX

LDAA $ 00, X LDAA, X LDAA X

Указатель стека

PCL, PCH, IXL, IXH, ACCA, ACCB, CCR

Счетчик программ

тайминг

SB-Assembler Version 3 может показывать время цикла каждой инструкции, когда флаг списка TON включен. Представленные числа представляют собой количество тактовых импульсов, которое требуется процессору для выполнения инструкции.

Зарезервированные слова

Семейство кросс-оверлеев SB-Assembler 6800 имеет только одно зарезервированное слово - букву X. В остальном вы можете выбрать любое название метки, которое вам нравится.

Особые возможности

Индексированный режим адресации

LDAA $ 00, X LDAA, X LDAA X

Принудительная прямая страница и расширенные режимы адресации

0010- LABEL .EQ $ 10 Адрес нулевой страницы 8000-96 10 LDAA LABEL Кажется нулевой страницей 8002-96 11 LDAA <FORWARD Ясно, что прямая ссылка 8004-97 12 STAA $ 12 Является адресом нулевой страницы 8006-B7 00 11 STAA > $ 11 Принудительный режим абсолютной адресации 0011- FORWARD .EQ $ 11 Адрес нулевой страницы

Инициализация оверлея

При инициализации семейства оверлеев 6800 каждый раз при загрузке .CR директивы.

  • Модель с прямым порядком байтов выбрана для 16-битных адресов и для .DA а также .DL директивы. Это означает, что слова или длинные слова сначала сохраняются с старшим байтом.
  • Максимальное значение счетчика программы установлено в $ FFFF.

Различия между другими ассемблерами

Есть некоторые различия между SB-Assembler и другими ассемблерами для семейства процессоров 6800. Эти различия требуют от вас адаптации существующих исходных файлов, прежде чем они будут собраны SB-Assembler. Это не так уж сложно, и это (маленькая) цена, которую вы должны заплатить за очень универсальный кросс-ассемблер.

  • Не все ассемблеры позволяют использовать более короткий индексированный режим.
  • Не все ассемблеры поймут режимы принудительной прямой страницы и расширенной адресации.
  • Очевидные различия в обозначениях директив, общих для всех кроссов SB-Assembler.
  • Не забывайте, что SB-Assembler не допускает пробелов внутри или между операндами. Только в версии 3 допускается один пробел после каждой запятой, разделяющей операнды в поле операндов.