Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Арифметические операции с непосредственной адресацией



а) Сложение со вторым байтом

ADI Данные A(A) + < B2> < B1> C6
< B2> Данные

б) Сложение со вторым байтом и переносом

ACI Данные A(A) + < B2> +(Tc) < B1> CE
< B2> Данные

в) Вычитание второго байта

SUI Данные A(A) - < B2> < B1> D6
< B2> Данные

 


г) Вычитание второго байта с переносом

SBI Данные A(A) - < B2> - (Tc) < B1> DE
< B2> Данные

При выполнении этой группы команд второй операнд приводится непосредственно в команде во втором ее байте. Команды являются двухбайтовыми, выполняются за два цикла (7 тактов). Триггеры признаков устанавливаются в соответствии с результатом выполненной операции. В результате выполнения операции изменяется содержимое аккумулятора, старое содержимое аккумулятора теряется.

Примеры:

12A6) ADI 47

Адрес/ регистр Код до выполнения операции Код после выполнения операции
12A6 C6 C6
12A7
A 6B=24+47
FL
PC 12A6 12A8

0802) ACI A7

Адрес/ регистр Код до выполнения операции Код после выполнения операции
CE CE
A7 A7
A FB
FL
PC

0804) SUI FD

Адрес/ регистр Код до выполнения операции Код после выполнения операции
D6 D6
FD FD
A FB FE
FL
PC

0806) SBI 0A

Адрес/ регистр Код до выполнения операции Код после выполнения операции
DE DE
0A 0A
A F8 ED
FL
PC

 

Сложение содержимого пар регистров

DAD ri HL (HL)+ (ri)(ri+1) < B1> ri+1

При ri+1=111 - HL (HL) + (SP)

При выполнении этой команды содержимое пары регистров HL складывается с содержимым пар ВС, DE или с содержимым указателя стека (SP). В коде команд приводится код младшего регистра пары (С или Е). В результате выполнения операции уста­навливается в соответствующее состояние только триггер переноса, который принимает значение в соответствии с переносом из старшего бита старшего регистра. Команда выполняется за три цикла (10 тактов).

 

Пример:

 

1FC1) DAD D

Адрес/ регистр Код до выполнения операции Код после выполнения операции
1FC1
H 1A
L
D
C
FL
PC 1FC1 1FC2

 


Логические операции над (А) и (r)

а) Логическая операция " И"

 

ANA ri A(A) Ù (ri) < B1> ri
   

 

Эта операция, как и все остальные логические операции, явля­ется побитовой. Можно считать, что для обработки битов каждого разряда используется одна двухвходовая логическая схема, на один вход которой подается значение бита аккумулятора, а на другой - значение соответствующего бита слова, расположенного в памяти (М) или одном из регистров (A, B, C, D, E, H, L ). В микропроцессоре преду­смотрено восемь таких двухвходовых схем - по одной для каждого разряда микропроцессора. После выполнения операции результат запишется в аккумулятор, а старое содержимое аккумулятора потеря­ется. В результате выполнения операции логического умножения все триггеры регистра признаков кроме триггера переноса (Тс) установятся в соответствии с полученным результатом; триггер переноса установится в состояние " 0".Триггер полупереноса (Тн) принимает значение разряда А3 результата. На выполнение операции затрачивается один цикл (4 такта). Если ri =М, то число циклов равно 2 (7 тактов)

 

Пример:

0800) ANA C

Адрес/ регистр Код до выполнения операции Код после выполнения операции
A1 A1
A 11010111=D7 10000000=80
C 10100000=A0 A0
FL
PC

 


б) " Исключающее ИЛИ"

 

XRA ri A(A) " (ri) < B1> ri

Эта операция, как и предыдущая, является побитовой; для ее исполнения используются те же регистры. После выполнения команды результат записывается в аккумулятор на место первого операнда. Триггеры признаков, кроме триггеров переноса и полупереноса, устанавливаются в соответствии с результатом. Триггеры Тс и Тн прини­мают значение " 0". Операция выполняется за 1/2 цикла (4/7 ) тактов.

Пример:

0800) XRA C

Адрес/ регистр Код до выполнения операции Код после выполнения операции
A9 A9
A 11010111=D7 01110111=77
C 10100000=A0 A0
FL
PC

в) Логическая операция " ИЛИ"

 

ORA ri A(A) Ú (ri) < B1> ri

 

Все сказанное для команды б) справедливо и для этой команды.

 

Пример:

 

ORA C

Адрес/ регистр Код до выполнения операции Код после выполнения операции
B1 B1
A 11010111=D7 11110111=F7
C 10100000=A0 A0
FL
PC

 

Логические операции с непосредственной адресацией

a) Логическая операция " И" со вторым байтом

 

ANI Данные A(A) Ù < B2> < B1> E6
< B2> Данные

 

б) Логическая операция " исключающее ИЛИ" со вторым байтом.

XRI Данные A(A) " < B2> < B1> EE
< B2> Данные

 

в) Логическая операция " ИЛИ" со вторым байтом

ORI Данные A(A) Ú < B2> < B1> F6
< B2> Данные

Все сказанное для логических операций над А и ri (п. 4) справедливо и для команд данной группы. Отличие состоит лишь в том, что второй операнд приводится непосредственно в команде во втором ее байте. Каждая операция выполняется за 2 машинных цикла (7 тактов).

 

Примеры:

0900) XRI 2B

Адрес/ регистр Код до выполнения операции Код после выполнения операции
EE EE
00101011 =2B 2B
A 10101010 =AA 10000001=81
FL
PC

0800) ANI 98

Адрес/ регистр Код до выполнения операции Код после выполнения операции
E6 E6
A AE
FL
PC

0802) ORI FE

Адрес/ регистр Код до выполнения операции Код после выполнения операции
F6 F6
FE FE
A A3 FF
FL
PC

 

Операции сравнения

а) Сравнение (А) с (ri)

CMP ri (A) -(ri) < B1> ri

 

Пример:

0100) CMP D

Адрес Код до выполнения операции Код после выполнения операции
BA BA
A B6 B6
D CB CB
FL
PC

 


б) Сравнение (А) со вторым байтом

CPI Данные (A) - < B2> < B1> FE
< B2> Данные

 

Пример:

 

0125) CPI 25

Адрес/ регистр Код до выполнения операции Код после выполнения операции
FE FE
A
FL
PC

Выполнение команд этой группы аналогично выполнению команды " вычитание", но ее результат не загружается в аккумулятор. Хотя по окончании операции исходные данные в аккумуляторе не изменяются, разрядам Z, S и С регистра признаков присваиваются значения в соответствии с полученным результатом.

В качестве регистров ri в команде а) могут быть выбраны A, B, C, D, E, H, L, M. С помощью этой команды можно производить сравнение двух слов на " больше", " меньше", " равно".

На выполнение команды а) затрачивается 1 машинный цикл (4такта) при работе с регистрами или 2 цикла (7 тактов), если данные нахо­дятся в памяти (М) по адресу HL. команда б) выполняется за 2 цикла (7 тактов).

4.7.7 Операции циклического сдвига (а).

а) Сдвиг аккумулятора влево без переноса

RLC

 

б) Сдвиг аккумулятора вправо без переноса

RRC

 

в) Сдвиг аккумулятора влево с переносом

RAL

 

г) Сдвиг аккумулятора вправо с переносом

RAR

 

Командой этой группы все данные, находящиеся в аккумуляторе и триггере переноса сдвигаются на одну позицию. При этом в командах а) и б) значение выдвигаемого разряда А7 или А0 передается в разряд соответственно А0 или А7 и запоминается в триггере переноса С, а в командах в) и г) триггер переноса используется как дополнительный девятый разряд регистра.

Каждая команда выполняется в течение одного машинного цикла (4 такта). В результате выполнения команды изменяется значение только триггера переноса С, а другие признаки остаются без изменения.

 

Примеры:

0800) RLC

Адрес/ регистр Код до выполнения операции Код после выполнения операции
A 2D
FL
PC

0801) RRC

Адрес/ регистр Код до выполнения операции Код после выполнения операции
0F 0F
A 4B
FL
PC

0802) RAL

Адрес/ регистр Код до выполнения операции Код после выполнения операции
A 2C
FL
PC

 

0803) RAR

Адрес/ регистр Код до выполнения операции Код после выполнения операции
1F 1F
A 4B
FL
PC

 

 

Дополнение аккумулятора

CMA < B1>
    7 0

С помощью этой команды производится инвертирование всех разрядов аккумулятора. Команда выполняется в течение одного цикла (4 такта). Значение триггеров признаков при этом не изменяется.

Пример:

 

0823) CMA

Адрес/ регистр Код до выполнения операции Код после выполнения операции
2F 2F
A F2 0D
FL
PC

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-03-22; Просмотров: 1177; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.03 с.)
Главная | Случайная страница | Обратная связь