BEQ, BNE, BPL и BMI.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
COMДополнение.
AC(AC\)=$FF-(AC) или M(M\)=$FF-(M) или XX\=$FF-(X)
Содержимое аккумулятора, индексного регистра или ячейки памяти заменяется на его дополнение до 1. Каждый бит заменяется на его дополнение, то есть инвертируется.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C 1
Устанавливается
NEGДополнение до двух (инверсия знака).
AC(AC) или M(M) или XX
Содержимое аккумулятора, индексного регистра или ячейки памяти заменяется на его дополнение до 2. Заметим, что величина $80 не изменяется.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C R7+R6+R5+R3+R2+R1+R0
Устанавливается во всех случаях за исключением числа $00.
ROLЦиклический сдвиг влево через флаг переноса
Cb7-...-b0C
Все биты аккумулятора, индексного регистра или ячейки памяти сдвигаются влево. Бит 0 загружается содержимым бита С. Бит C загружается содержимым старшего бита аккумулятора, индексного регистра или ячейки памяти.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C b7
Устанавливается, если перед сдвигом был установлен старший бит, иначе сбрасывается.
RORЦиклический сдвиг вправо через флаг переноса
Cb7-...-b0C
Все биты аккумулятора, индексного регистра или ячейки памяти сдвигаются вправо. Бит 7 загружается содержимым бита С. Бит C загружается содержимым младшего бита аккумулятора, индексного регистра или ячейки памяти.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C b0
Устанавливается, если перед сдвигом был установлен младший бит, иначе сбрасывается.
LSLЛогический сдвиг влево
Cb7-...-b00
Все биты аккумулятора, индексного регистра или ячейки памяти сдвигаются влево. Бит 0 загружается нулем. Бит C загружается содержимым старшего бита аккумулятора, индексного регистра или ячейки памяти.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C b7
Устанавливается, если перед сдвигом был установлен старший бит, иначе сбрасывается.
LSRЛогический сдвиг вправо.
0b7-...-b0C
Все биты аккумулятора, индексного регистра или ячейки памяти сдвигаются вправо. Бит 7 загружается нулем. Бит C загружается содержимым младшего бита аккумулятора, индексного регистра или ячейки памяти.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C b0
Устанавливается, если перед сдвигом был установлен младший бит, иначе сбрасывается.
ASRАрифметический сдвиг вправо
b7-...-b0C
Все биты аккумулятора, индексного регистра или ячейки памяти сдвигаются влево. Бит 7 остается неизменным. Бит C загружается содержимым младшего бита аккумулятора, индексного регистра или ячейки памяти.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
C b0
Устанавливается, если перед сдвигом был установлен младший бит, иначе сбрасывается.
TSTПроверка на отрицательность и равенство нулю
(AC)-$00 или (X)-$00 или (M)-$00
Установить биты N и Z в регистре признаков в соответствии с содержимым аккумулятора, индексного регистра или ячейки памяти. Содержимое аккумулятора, индексного регистра или ячейки памяти не изменяется.
N R7
Устанавливается, если старший бит результата установлен, иначе сбрасывается.
Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\
Устанавливается, если все биты результата сброшены. Иначе сбрасывается.
BSET n (n=0...7) Установить бит n
Mn=1
Устанавливается в 1 бит n (n=7,6,5,4,3,2,1,0) ячейки памяти M, другие биты не изменяются. Ячейкой памяти может быть ОЗУ или I/O регистр от адреса $0000 до $00FF (то есть используется прямая адресация).
Регистр признаков не изменяется.
BCLR n (n=0...7) Сбросить бит n
Mn=0
Сбрасывается бит n (n=7,6,5,4,3,2,1,0) ячейки памяти M, другие биты не изменяются. Ячейкой памяти может быть ОЗУ или I/O регистр от адреса $0000 до $00FF (то есть используется прямая адресация).
Регистр признаков не изменяется.
SECУстановить флаг переноса
C бит 1
Установить бит C регистра признаков. Команда SEC может применятся для предустановки бита C перед использованием команд сдвига.
Флаг C устанавливается в 1.
CLCСбросить флаг переноса
C бит 0
Сбрасывается бит C регистра признаков. Команда SEC может применятся для предустановки бита C перед использованием команд сдвига.
Флаг C сбрасывается.
SEIУстановить флаг маскирования прерываний.
I бит1
Устанавливается бит маскирования прерываний в регистре признаков. Когда бит C установлен, прерывания запрещены.
Флаг I устанавливается.
CLIСбросить флаг маскирования прерываний
I бит0
Сбрасывается бит маскирования прерываний в регистре признаков. Когда бит C сброшен, прерывания разрешены. На очистку бита требуется задержка на один цикл, таким образом, если прерывания до выполнения команды CLI были запрещены, то следующая за CLI команда всегда выполняется.
Флаг I сбрасывается.
Прочие команды.
NOP Нет операции
Эта однобайтная команда вызывает только увеличение программного счетчика на единицу. Другие регистры не изменяются.
STOPОстанов
Выполнение команды приводит к уменьшению энергопотребления.
1) Сбрасывается предделитель таймера;
2) запрещаются прерывания от таймера;
3) сбрасывается флаг прерывания от таймера;
4) разрешаются внешние прерывания;
5) останавливается тактовый генератор.
Когда поступает внешний сигнал RESET\ или IRQ\, включается тактовый генератор, после задержки на инициализацию, которая длится 1920 циклов процессора, защелкиваются вектор прерывания и вектор начальной установки, и запускается на выполнение процедура обработки RESET или IRQ, в зависимости от поданного сигнала.
Флаг I сбрасывается.
Более подробно о режиме STOP см. раздел "Специальные режимы работы".
WAITОжидание
Выполнение команды приводит к уменьшению энергопотребления. Таймер, делитель таймера и другая встроенная периферия продолжают работать, так как они являются потенциальными источниками прерываний. WAIT разрешает прерывания сбросом бита I регистра признаков и останавливает цепи синхронизации процессора.
Когда поступает внешний сигнал RESET\, IRQ\ или прерывания от встроенной периферии, включается цепи синхронизации процессора, защелкиваются вектор прерывания и вектор начальной установки, и запускается на выполнение процедура, взвисимости от поданного сигнала.
Более подробно о режиме WAIT см. раздел "Специальные режимы работы".
2.1 Линии (порты) параллельного ввода-вывода.
МС68НС705С8 содержит 31 линию ввода-вывода общего назначения, объединенные в 4 порта. Порты А, В и С представляют собой 8-битные порты общего назначения, в которых направление работы каждой линии задается через программно-доступные регистры, порт D является 7-битным портом, настроенным только на ввод данных, кроме того, линии порта D могут выполнять некоторые специальные функции. Подробнее про порт D смотрите п. 2.4. Каждый 8-битный порт имеет соответствующий 8-битный регистр направления данных (DDR), как показано на рис. 5, а так же регистр данных (DR), в который помещаются данные при передаче, или из которого они читаются при приеме.
Каждый из трех портов - A, B, или C можно представить схематически следующим образом:
Бит 7 | 6 | 5 | 4 | 3 | 2 | 1 | Бит 0 | |
DDR7 | DDR6 | DDR5 | DDR4 | DDR3 | DDR2 | DDR1 | DDR0 | DDR |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | После RESET |
Порт (DR) |
Регистр порта не изменяется после RESET. |
P7 P6 P5 P4 P3 P2 P1 P0 Контакты
Рис. 2-1 Схема порта ввода/вывода.
Канал настроен на вывод информации, если соответствующий бит в DDR установлен в 1. Если бит сброшен, то канал настроен на ввод (так предусмотрено при начальной установке). То есть разные каналы одного и того же порта могут быть настроены на ввод или вывод информации одновременно независимо друг от друга. На рис. 2-2 представлена структура канала параллельного порта, а в таблице 2-1 приведены различные режимы работы линии ввода-вывода.
Таблица 2-1. Функции контактов ввода-вывода.
R/W* | DDR | Функция |
0 | 0 | Режим ввода. Данные записываются в выходную защелку |
0 | 1 | Данные записываются в выходную защелку и передаются на контакт. |
1 | 0 | Читается состояние контакта |
1 | 1 | Контакт в режиме вывода. Читаются данные из защелки. |
*R/W - внутренний сигнал, указывающий на чтение/запись данных.