Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ ПО ОМПТ++.doc
Скачиваний:
147
Добавлен:
11.02.2015
Размер:
972.8 Кб
Скачать

2.5.7. Вспомогательные команды

DAA (Decimal Adjust Accumulator)

Десятичная коррекция. 8-битное число в аккумуляторе рассматривается как две 4-битные десятичные двоично-кодированные цифры. При этом выполняется коррекция результата операции сложения по следующим правилам:

1. Если значение младших 4 бит аккумулятора больше девяти или если признак вспомогательного переноса АС равен 1, то к содержимому аккумулятора добавляется число 6.

2. Если значение старших 4 бит аккумулятора больше десяти или если признак переноса CY равен 1, то к содержи­мому старших 4 бит аккумулятора добавляется число 6.

Циклов: 1

Тактов: 4

Признаки: Z, S, Р, CY, АС

СМР R (Compare)

<A> - <R>

Сравнение - содержимое регистра R вычитается из содержимого аккумулятора, причем содержимое аккумулятора остается без изменений. Регистр признаков устанавливается в зависимости от результата вычитания.

Циклов: 1

Тактов: 4

Признаки: Z, S, Р, CY, АС

CPI D8 (Compare immediate)

<A> - D8

Сравнение с константой - содержимое второго байта команды вычитается из содержимого аккумулятора причем содержимое аккумулятора остается без изменений. Регистр признаков устанавливается в зависимости от результата вычитания.

Циклов: 2

Тактов: 7

Признаки: Z, S, Р, CY, АС

STC (Set carry)

1  CY

Значение признака переноса CY установить в 1. Остальные признаки не действуют.

Циклов:1

Тактов: 4

Признаки: CY

CMC (Complement carry)

__

<CY>  CY

Инвертировать значение разряда CY регистра призна­ков. Остальные признаки не действуют.

Циклов: 1

Тактов: 4

Признаки: CY

2.6. Команды управления

Назначение команд этой группы — изменение обычного последовательного хода программы, а также выполнение управляющих операций над самим микропроцессором. Команды этой группы не изменяют состояния разрядов регистра признаков.

2.6.1. Команды безусловной передачи управления

JMP ADR (Jump)

ADR  PC

Безусловный переход. Передать управление команде, адрес которой определяется третьим и вторым байтами текущей команды.

Циклов: 3

Тактов: 10

Признаки: отсутствуют

PCHL (Jump H and L indirect - move H and L to PC)

<HL>  PC

Безусловный переход с косвенной адресацией через регистровую пару H. Содержимое регистра H занести в восемь старших разрядов счетчика команд PC, содержимое регистра L занести в восемь младших разрядов команд PC.

Циклов: 1

Тактов: 5

Признаки: отсутствуют

CALL ADR (Call)

<PC> M(<SP>-1)M(<SP>-2); <SP>-2SP; ADRPC

Переход к подпрограмме. Старшие восемь разрядов адреса очередной команды загружаются в ячейку памяти, адрес которой на единицу меньше исходного содержимого регистра SP. Младшие восемь разрядов адреса очередной команды засылаются в ячейку памяти, адрес которой на две единицы меньше исходного содержимого регистра SP. Содержимое регистра SP уменьшается на 2. Управление передается команде, адрес которой определяется вторым и третьим байтами текущей команды.

Циклов: 5

Тактов: 17

Признаки: отсутствуют

RET (Return)

<M(<SP>)M(<SP>+1)> PC; <SP>+2SP

Возврат из подпрограммы. Содержимое ячейки памяти, адрес которой определяется содержимым регистра SP, заносится на место младших восьми разрядов в счетчик команд PC. Содержимое ячейки памяти, адрес которой на единицу больше исходного содержимого регистра SP, заносится на место старших восьми разрядов в счетчик команд PC. Содержимое регистра SP увеличивается на 2.

Циклов: 3

Тактов: 10

Признаки: отсутствуют

RST X (Restart)

<PC> M(<SP>-1)M(<SP>-2); <SP>-2SP; 8*XPC

Переход к фиксированной подпрограмме. Восемь старших разрядов адреса очередной команды заносятся в ячейку памяти, адрес которой на единицу меньше исходного содержимого регистра SP. Восемь младших разрядов адреса очередной команды заносятся в ячейку памяти, адрес которой меньше исходного содержимого регистра SP на 2. Содержимое регистра SP уменьшается на 2. Управление передается команде, адрес которой определяется как номер фиксированной подпрограммы X, умноженный на 8 (для X=0 адрес – 0000H, для X=1 адрес – 0008H, для X=2 адрес – 0010H, для X=3 адрес – 0018H, …, для X=7 адрес – 0038H).

Циклов: 3

Тактов: 11

Признаки: отсутствуют