ЛЕКЦИЯ 9. ПРОЦЕССОРНЫЙ МОДУЛЬ. СИСТЕМА КОМАНД И МЕТОДЫ АДРЕСАЦИИ МК
9.1. Процессорный модуль CPU08
Процессорный модуль CPU08, используемый в МК семейства 68HC08, выполняет набор из 90 команд с использованием 9 способов адресации.
Регистровая модель. Процессорный модуль CPU08 (рис.9.1) содержит 8 - разрядные аккумулятор A и регистр признаков CCR,
16-разрядные индексный регистр H:X, указатель стека SP и программный счетчик PC.
Регистр CCR содержит значения следующих признаков:
C - признак переноса (принимает значение C = 1 при возникновении переноса из старшего разряда результата);
Z - признак нуля (принимает значение Z = 1 при нулевом результате);
N - признак знака (равен старшему разряду результата, при обработке чисел со знаком имеет значения N = 0 при положительном результате, N=1 при отрицательном результате);
I- маска прерывания (при значении I=0 обработка прерываний разрешается, при I=1 – запрещается);
H- признак переноса между тетрадами (используется при операциях над двоично-десятичными числами).
V– признак переполнения при обработке чисел со знаком (принимает значение V=1, когда результат выходит за границы диапазона чисел +127…-128).
Программный счетчик PCсодержит адрес очередной выполняемой команды. Максимальный объем адресуемой памяти для семейства 68HC08/908 составляет 64 Кбайт, поэтому счетчик PC содержит 16 разрядов. В модели MC68HC908GP32 используется только часть этого адресуемого пространства, поэтому в его адресном пространстве имеются неиспользуемые окна. При обращении к этим окнам модуль SIM08 реализует перезапуск МК, указывающий на наличие ошибки в программе – обращение к несуществующей ячейке памяти.
При запуске и перезапуске МК (процедура RESET) в PC автоматически загружается адрес первой команды выполняемой программы (вектор начального запуска) из двух последних ячеек адресуемой памяти с адресами $FFFE-FFFF (старший байт PCH– младший байт PCL).
7 0 | Аккумулятор A | ||||||||||
A | |||||||||||
15 8 | 7 0 | ||||||||||
Н | Х | Индекс. рег. Н:Х | |||||||||
15 0 | |||||||||||
РС | Программ. сч. PC | ||||||||||
SP | Указат. стека SP | ||||||||||
V | H | I | N | Z | C | Регистр флагов CCR | |||||
Рис. 9.1. Регистровая модель процессора CPU08
При первоначальном сбросе РС устанавливается в FFFE÷FFFF, поэтому конец программы выглядит так:
VectRESET: ORG $FFFE; устанавливаем метку в соответствии с ;вектором начального запуска
DW $F600; устанавливаем вектор начального запуска
END; конец программы
Указатель стека SP служит для адресации ячейки ОЗУ, являющейся вершиной стека. При запуске МК (процедура RESET) в SP автоматически загружается значение $00FF, обеспечивая возможность использования в качестве стека ячеек ОЗУ и регистров, имеющих адреса в диапазоне $0000-00FF. При дальнейшей работе процессора в качестве вершины стека может быть использована любая позиция адресуемой памяти в пределах имеющегося в данной модели ОЗУ данных.
Индексный регистр Н-Х. Назначение: хранение адреса операции при индексной адресации. Может использоваться и как обычный регистр, и в операциях умножении и деления.
Пример работы с индексным регистром:
LDHX #$00D2; загрузить в H : X адрес начала массива
LDA , X; загрузить в А первый элемент массива