Практическое занятие «Логические команды» 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Практическое занятие «Логические команды»



Логические команды предназначены для выполнения логических операций «ИЛИ», «И», «Исключающее ИЛИ» над байтами данных, которые могут располагаться в РОН и во внешней памяти. Логические операции выполняются побитно в соответствии с таблицами истинности. При этом одно из чисел должно находиться в аккумуляторе. Результат выполнения операции также располагается в аккумуляторе, первоначальное значение аккумулятора при этом теряется.

В результате выполнения логических команд устанавливаются флаги нуля, четности и знака; флаги переноса CY и вспомогательного переноса не устанавливаются.

Логическая операция «НЕ» (инверсия) выполняется только в аккумуляторе, результат выполнения операции также располагается в аккумуляторе.

 

Команды логического сложения (дизъюнкция, )

ORA R- логическое сложение содержимого регистра и аккумулятора;

ORA M - логическое сложение содержимого аккумулятора и ячейки памяти, адрес которой записан в регистровой паре (H, L);

ORI <data> - логическое сложение содержимого аккумулятора и второго байта команды.

 

Команды логического умножения (конъюнкция, )

ANA R - логическое умножение содержимого регистра и аккумулятора;

ANA M - логическое умножение аккумулятора и ячейки памяти, адрес которой хранится в регистровой паре (H, L);

ANI <data> - логическое умножение содержимого аккумулятора и второго байта команды.

 

Команды инверсии (логическая операция НЕ)

CMA – инвертирование содержимого аккумулятора;

CMC – инвертирование содержимого триггера переноса.

Команды отрицания равнозначности (ИСКЛЮЧАЮЩЕЕ
ИЛИ, )

XRA R - «исключающее ИЛИ» содержимого регистра и аккумулятора;

XRA M - «исключающее ИЛИ» содержимого аккумулятора и ячейки памяти, адрес которой хранится в регистровой паре (H, L);

XRI <data> - «исключающее ИЛИ» содержимого аккумулятора и второго байта команды.

 

Маскирование состояния разрядов

При выполнении различных программ часто возникает необходимость проверки или изменения состояния одного или нескольких разрядов числа в аккумуляторе. Эта процедура носит название «маскирование». Маскирование осуществляется выбором соответствующего числа (маски) с помощью следующих операций:

- логического умножения числа в аккумуляторе и маски (ANI <data>), которое очищает разряд числа, если в соответствующем разряде маски будет записан 0, и не изменяет его, если в разряде маски записана 1;

- логического сложения числа в аккумуляторе и маски (ORI <data>), которое устанавливает разряд числа в 1, если в таком же разряде маски будет записана 1, и не изменяет его, если в разряде маски записан 0;

- логического «исключающего ИЛИ» числа аккумуляторе и маски (XRI <data>), которое инвертирует содержание разряда числа, если в соответствующем разряде маски записана 1, и, не изменяет его, если в этом разряде записан 0.

По команде XRA A можно обнулять аккумулятор.

Пример. Составить программу выполнения следующего выражения . Результат записать в ЯП (0801).

 

Таблица 8 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  MOV A, D Содержимое регистра D переслать в аккумулятор А
  CMA 2F Инвертирование содержимого аккумулятора А
  MOV D, A   Содержимое А переслать в регистр D
  MOV A, B   Содержимое регистра B переслать в A
  RLC   Сдвинуть циклически влево содержимое аккумулятора (умножение на 2)
  ANA D A2 Логическое умножение содержимого аккумулятора А и регистра D
  MOV B, A   Содержимое А переслать в регистр В
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
090A CMA 2F Инвертирование содержимого аккумулятора А
090B XRA B A8 Операция неравнозначности содержимого А и регистра B
090C STA   Переслать содержимое аккумулятора в ЯП 0801
090D    
090E    
090F HLT   Останов

Пример. Составить программу установки «1» в 3 бите и «0» в 4 бите ячейки памяти (ЯП) 0800. Результат запитать регистр С.


Таблица 9 – Пример программы



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 403; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.114.38 (0.005 с.)