ЛЕКЦИЯ 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; загрузить в А первый элемент массива