IRQ -режим обнаружения запросов на прерывание от внешних устройств.
при IRQ=1 вывод IRQ/ микропроцессора реагирует как на низкий уровень сигнала на этом выводе, так и на перепад из высокого уровня в низкий.
при IRQ=0 ОЭВМ реагирует только на перепад из высокого в низкий уровень на входе IRQ.
Регистр команд программирования (PROG), расположенный по адресу 001СН, используется для установки режима при программировании ППЗУ.
Регистр команд программирования
| Назначение | 0 | 0 | 0 | 0 | 0 | LAT | 0 | PGM | 
| Установка после RESET | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
LAT-бит определяет доступ к триггеру программирования ППЗУ.
при LAT=1-разрешен доступ к данным ППЗУ и адресной шине для программирования на следующем цикле записи байта.
при LAT=0-доступ запрещен.
Бит LAT может быть записан и прочитан.
PGM-разрешение/запрет программирования.
при PGM=1 напряжение программирования подается на ППЗУ.
при PGM=0 напряжение программирования отключено.
Если бит LAT сброшен, PGM не может быть установлен в 1.
Центральный процессор содержит 5 регистров, показанных на рис. 1-3. Регистры центрального процессора не являются частью карты памяти.
Рис. 3 Регистры ЦП.
Аккумулятор(A)-это 8-битный регистр общего назначения, в котором хранятся операнды, результаты арифметических операций, а также данные, с которыми производятся какие-либо операции. Аккумулятор также используется и для логических операций.
Индексный регистр (X)-используется либо при индексном режиме адресации, либо как вспомогательный аккумулятор. Этот регистр может быть загружен как непосредственно, так и из памяти, может быть сохранен в ячейке памяти или сравнен с ее содержимым.
Программный счетчик (PC)-это 13-битовый регистр, содержащий адрес команды, следующей за выполняемой, либо адрес операнда, входящего в код программы. Шина адреса MC68HC705C8 имеет разрядность 13 бит, что позволяет адресовать 8 Кб памяти.
Указатель стека (SP), как и программный счетчик, является 13-битным регистром, содержащим адрес следующей (свободной) ячейки стека. Во время начальной установки, либо при выполнении команды "Сброс указателя стека" (RSP), в указатель записывается адрес 00FFH. Затем это значение уменьшается по мере записи данных в стек. При обращении к памяти 7 старших бит указателя постоянно имеют значение 0000011В. Эти 7 бит добавляются к шести младшим битам для получения адреса от 00FFH до 00C0H. Подпрограммы и прерывания могут, таким образом, использовать до 64 ячеек памяти под стек. Если все ячейки заполнены, то указатель стека автоматически устанавливается в исходную позицию и записанная в стек информация теряется. Вызов подпрограммы использует 2 ячейки стека, прерывание-5 ячеек.
Регистр признаков (СС) содержит 5 флагов, устанавливающихся в зависимости от результата выполнения арифметических и других команд. Этими флагами являются: флаг полупереноса (Н), флаг отрицательного результата (N), флаг нулевого результата (Z), бит маски прерываний (I) и флаг переноса (С).
Флаг полупереноса(Н)-используется для операций с числами в двоично-десятичном коде и изменяется при операциях сложения (ADD) и сложения с флагом переноса (ADC). Бит Н устанавливается в 1 при возникновении переноса из бита 3 в бит 4.
Бит маскирования прерываний (I)-запрещает все маскируемые прерывания при установке его в 1. Бит I автоматически устанавливается при возникновении любого прерывания сразу же после сохранения регистров в стеке, но до передачи управления по вектору прерывания. Если внешнее прерывание происходит в тот момент, когда ,бит I установлен в 1, то запрос на прерывание фиксируется и обрабатывается после сброса бита I. После обслуживания прерывания, команда возврата из прерывания (RTI) восстанавливает содержимое регистров. Таким образом, после обработки прерывания I-бит сбрасывается, а при начальной установке ОЭВМ бит I устанавливается в 1 и может быть сброшен программно.
Флаг отрицательного результата (N) устанавливается в 1, если результат последней операции является отрицательным числом, и сбрасывается в противоположном случае.
Флаг нулевого результата (Z) устанавливается в 1, если результатом последней операции является 0 и сбрасывается в противоположном случае.
Флаг Перенос (заем) (С) индицирует, что произошел перенос в результате операции сложения, либо заем при вычитании. Операции сдвига и циклического сдвига происходят через этот бит, что дает возможность осуществлять операции сдвига с операндами из нескольких слов.
1.4. Режимы адресации.
ОЭВМ МС68НС705С8 использует восемь режимов адресации, определяющих способ доступа к данным, требуемым для выполнения команд. Способы адресации, поддерживаемые ОЭВМ МС68НС05С8, перечислены ниже:
неявная;
непосредственная;
прямая;
расширенная;
индексная без смещения;
индексная с 8-разрядным смещением;
индексная с 16-разрядным смещением;
относительная.
Команды с неявной адресацией либо не имеют операндов, либо содержат указание на операнд в мнемонике команды. К таким командам относятся, например, команды возврата из прерывания (RTI), останова (STOP) и т.д. Неявный тип адресации имеют команды работы с данными в регистрах микропроцессора, например, установить флаг переноса (SEC), увеличение числа, хранящегося в аккумуляторе, на единицу (INCA), и другие. Команды с неявной адресацией не требуют обращения к памяти и имеют длину один байт. В Таблице 1-1 приведен список команд, которые используют неявную адресацию.
Таблица 1-1. Команды, использующие неявную адресацию.
| Команда | Мнемоника | 
| Арифметический сдвиг влево | ASLA, ASLX | 
| Арифметический сдвиг вправо | ASRA, ASRX | 
| Сбросить флаг переноса | CLC | 
| Сбросить флаг маскирования прерываний | CLI | 
| Обнулить | CLRA, CLRX | 
| Дополнение | COMA, COMX | 
| Декремент на 1 | DECA, DECX | 
| Инкремент на 1 | INCA, INCX | 
| Логический сдвиг влево | LSLA, LSLX | 
| Логический сдвиг вправо | LSRA, LSRX | 
| Умножение | MUL | 
| Изменить знак | NEGA, NEGX | 
| Нет операции | NOP | 
| Циклический сдвиг влево через флаг переноса | ROLA, ROLX | 
| Циклический сдвиг вправо через флаг переноса | RORA, RORX | 
| Инициализация указателя стека | RSP | 
| Возврат из прерывания | RTI | 
| Возврат из подпрограммы | RTS | 
| Установить флаг переноса | SEC | 
| Установить бит маскирования прерываний | SEI | 
| Разрешить IRQ\ и останов генератора синхроимпульсов | STOP | 
| Программное прерывание | SWI | 
| Запись содержимого аккумулятора в индексный регистр | TAX | 
| Проверить на отрицательность и равенство нулю | TSTA, TSTX | 
| Запись содержимого индексного регистра в аккумулятор | TXA | 
| Разрешить прерывание и останов процессора | WAIT | 
Пример:
0200 4С INCA Инкремент аккумулятора
Производимые действия:
$0200 $4C [1], [2], [3]
Объяснение:
[1] процессор читает код операции $4C - инкремент аккумулятора;
[2], [3] процессор считывает содержимое аккумулятора, увеличивает на 1, запоминает новую величину в аккумуляторе, в соответствии с результатом устанавливает биты в регистре флагов.
При непосредственной адресации операнд первый операнд находится в аккумуляторе или индексном регистре, а второй является частью кода команды. Команды с непосредственной адресацией не требуют адреса памяти и имеют длину два байта. Код команды содержится в первом байте, а операнд во втором байте. Таблица 1-2 содержит команды, использующие непосредственную адресацию.
Таблица 1-2. Команды, использующие непосредственную адресацию.
| Команда | Мнемоника | 
| Сложение с флагом переноса | ADC | 
| Сложение | ADD | 
| Логическое И | AND | 
| Битовое сравнение ячейки памяти с аккумулятором | BIT | 
| Сравнение аккумулятора и ячейки памяти | CMP | 
| Сравнение индексного регистра и ячейки памяти | CPX | 
| Исключающее ИЛИ ячейки памяти и аккумулятора | EOR | 
| Загрузить аккумулятор содержимым ячейки памяти | LDA | 
| Загрузить индексный регистр содержимым ячейки памяти | LDX | 
| Операция ИЛИ | ORA | 
| Вычитание с флагом переноса | SBC | 
| Вычитание | SUB | 
Пример:
0200 А6 02 LDA #$02 Загрузить аккумулятор константой $02
Производимые действия:
$0200 $A6 [1]
$0201 $02 [2]
Объяснение:
[1] ЦП читает код операции $A6 - загрузить аккумулятор константой, следующей за кодом операции
[2] ЦП читает константу $02 по адресу $0201 и записывает ее в аккумулятор.
Команды с прямой адресацией имеют доступ к первым 256 ячейкам памяти и имеют длину два байта. Первым байтом является код команды, второй байт представляет собой младший байт адреса операнда. При использовании прямой адресации ЦП автоматически устанавливает в $00 старший байт адреса операнда. Исключение составляют команды BRSET и BRCLR, занимающие три байта и использующие прямую адресацию для доступа к операнду и относительную адресацию для определения точки перехода. В Таблице 1-3 представлены команды, которые используют режим прямой адресации к памяти.
Таблица 1-3. Команды, использующие прямую адресацию к памяти.
| Команда | Мнемоника | 
| Сложение с флагом переноса | ADC | 
| Сложение | ADD | 
| Логическое И | AND | 
| Арифметический сдвиг влево | ASL | 
| Арифметический сдвиг вправо | ASR | 
| Сбросить бит в ячейке памяти | BCLR | 
| Битовое сравнение ячейки памяти и аккумулятора | BIT | 
| Переход, если бит n установлен | BRCLR | 
| Переход, если бит n сброшен | BRSET | 
| Сбросить бит в памяти | BCLR | 
| Установить бит в памяти | BSET | 
| Очистить | CLR | 
| Сравнение аккумулятора и ячейки памяти | CMP | 
| Дополнение | COM | 
| Сравнение индексного регистра и ячейки памяти | CPX | 
| Декремент на 1 | DEC | 
| Исключающее ИЛИ ячейки памяти и аккумулятора | EOR | 
| Инкремент на 1 | INC | 
| Безусловный переход | JMP | 
| Вызов подпрограммы | JSR | 
| Загрузить аккумулятор содержимым ячейки памяти | LDA | 
| Загрузить индексный регистр содержимым ячейки памяти | LDX | 
| Логический сдвиг влево | LSL | 
| Логический сдвиг вправо | LSR | 
| Изменение знака | NEG | 
| ИЛИ | ORA | 
| Циклический сдвиг влево через флаг переноса | ROL | 
| Циклический сдвиг вправо через флаг переноса | ROR | 
| Вычитание с флагом переноса | SBC | 
| Записать содержимое аккумулятора в ячейку памяти | STA | 
| Записать содержимое индексного регистра в ячейку памяти | STX | 
| Вычитание | SUB | 
| Проверка знака и равенства нулю | TST | 
Пример: