Краткие теоретические и учебно-методические материалы по теме лабораторной работы

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

ü Логическое умножение числа в аккумуляторе и маски – очищает разряд числа (устанавливает в 0), если в соответствующем разряде маски будет записан 0, и не изменяет его, если в этом разряде маски записана 1;

ü Логическое сложение числа в аккумуляторе и маски – устанавливает разряд числа в 1, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0;

ü Логическое "исключающее ИЛИ" числа в аккумуляторе и маски – инвертирует содержание разряда числа, если в соответствующем разряде маски будет записана 1, и не изменяет его, если в этом разряде маски записан 0.

ü Примеры использования операций маскирования содержимого аккумулятора в случае, если маска находится в регистре, приведены вТабл. 1. В этом случае команды однобайтные. Маскирование содержимого аккумулятора возможно также байтом данных (ANI D8, ORI D8 и XRI D8). В этом случае маска содержится в байте данных, а команды являются двухбайтными. При выполнении логических операций (И, ИЛИ, "исключающее ИЛИ" и НЕ) задействуются разряды Z, S, P, AC регистра признаков (С = 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах.

Примеры использования операций маскирования. Таблица 1

Мнемокод Число в аккумуляторе Маска в D Результат в аккумуляторе Комментарий
ANA D Логическое умножение (И) содержимого Акк. с байтом D.
ORA D Логическое сложение (ИЛИ) содержимого Акк. с байтом. D.
XRA D Логическое "исключающее ИЛИ" содержимого Акк. с байтом D.

Организация условных переходов в МПС на МП КР580ВМ80 осуществляется с помощью регистра признаков МП БИС.

Регистр признаков имеет пять разрядов, каждый из которых устанавливается по определённому правилу в соответствии с выполнением МП БИС последней команды. Этими разрядами являются:

1. Разряд переноса С – СARRY. В него записывается «1», если при выполнении арифметической операции было переполнение аккумулятора, в противном случае в разряд записывается «0».

2. Разряд знака S – SIGN. В него записывается «1», если при выполнении арифметической или логической операции в старшем седьмом бите аккумулятора записана «1», в противном случае в разряд записывается «0».

3. Разряд первого результата Z – ZERO. В него записывается «1», если при выполнении арифметической или логической операции во всех разрядах аккумулятора «0», в противном случае разряд записывается «0».

4. Дополнительный разряд переполнения AC – AUX.CARRY. В него записывается «1», если при выполнении команд в аккумуляторе возникает единица переноса из третьего разряда числа.

5. Разряд четности P – PARITY. В него записывается «1», если при выполнении команды количество единиц в разрядах аккумулятора будет четным.

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

1. Логического умножения числа в аккумуляторе и маки, которая очищает разряд числа, если в соответствующем разряде макси будет записан «0», и не изменяет его, если в этом разряде записана «1»;

2. Логического сложения чисел в аккумуляторе и маски, которое устанавливает разряд числа «1», если в таком же разряде маски будет записан «0»;

3. Логического исключающего или числа в аккумуляторе и маски, которое инвертирует содержимое разряда числа, если в соответствующем разряде маски записана «1», и не имеют его, если в этом разряде записано «0».

Проведение логических операций возможно также с содержимым аккумулятора и внутренними регистрами микро – ЭВМ. В этом случае команды однобайтные. При выполнении всех логических команд задействуются разряды Z,S,CY,P,AC регистра признаков (в разряд С записывается 0). Это позволяет проверить состояние любого разряда числа и выполнить условные переходы в программах.

Условные переходы организуются в программах с помощью команд условных переходов. При выполнении этих команд микро – ЭВМ проверяет состояние соответствующего разряда регистра состояния. Если при проверке состояния разреза регистра состояния условия не подтверждаются, то выполняется следующая по порядку команда программы.

Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.

Вопросы для закрепления теоретического материала к лабораторной работе

1.В чем состоит различие между командами условного перехода?

2.Во всех командах условного перехода, используемых микропроцессором, применяется прямая адресация. Что это значит?

1. В чем заключается различие между выполнением команд безусловного и условного переходов?

2. Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ РАВНО:

- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;

- ПЕРЕХОД, ЕСЛИ ПЛЮС;

- ПЕРЕХОД, ЕСЛИ НЕ МИНУС;

- ПЕРЕХОД, ЕСЛИ НУЛЬ?

3. Какой из нижеперечисленных команд эквивалентна команда ПЕРЕХОД, ЕСЛИ НЕ МИНУС:

- ПЕРЕХОД, ЕСЛИ ПЕРЕНОС;

- ПЕРЕХОД, ЕСЛИ ПЛЮС;

- ПЕРЕХОД, ЕСЛИ МИНУС;

- ПЕРЕХОД, ЕСЛИ НУЛЬ?

Задания для лабораторной работы:

Задание №1: Исследование программы 4.1

1. Выяснить, какая информация появляется в разряде Z регистра признаков, после выполнения программы.

Задание №2:

1. Видоизменить программу П4.1 так, чтобы микропроцессорная система реагировала на «0» в третьем разряде при записанных единицах во всех остальных разрядах.

Задание №3: исследование программы 4.2

1.Загрузить и исследовать программу П4.2

Наши рекомендации