
- •Цифровые устройства и микропроцессоры
- •Микропроцессорные устройства
- •Содержание
- •Введение
- •1. Функционирование микропроцессора при выполнении команд
- •1.1. Система команд микропроцессора к580вм80а
- •1.1.1. Команды пересылок
- •1.1.2. Команды ввода-вывода
- •1.1.3. Команды арифметических и логических операций
- •1.1.4. Команды управления
- •1.1.5. Специальные команды
- •1.2. Функционирование микропроцессора к580вм80а при выполнении команд
- •1.2.1. Чтение и запись данных
- •1.2.2. Работа в режиме прерывания
- •1.2.3. Работа в режиме прямого доступа к памяти
- •1.2.4. Выполнение команды останова
- •1.3. Описание учебного микропроцессорного комплекса
- •1.3.1. Описание клавиатуры
- •1.3.2. Ввод, индикация, и изменение содержимого памяти
- •1.3.3. Индикация и изменение содержимого регистров
- •1.3.9. Команды микропроцессора к580вм80а
- •1.4. Программа работы
- •1.4.1. Изучение функционирования учебного микропроцессорного комплекса
- •1.4.2. Изучение группы команд пересылок
- •1.4.3. Изучение группы арифметических команд
- •1.4.4. Изучение группы команд безусловного и условного переходов
- •1.4.5. Изучение команд вызова подпрограмм
- •1.4.6. Изучение группы команд работы со стеком
- •1.4.7. Организация циклов
- •1.5. Контрольные вопросы
- •2. Программируемый параллельный интерфейс
- •2.1. Описание интегральной схемы программируемого параллельного интерфейса к580вв55
- •2.2. Описание лабораторного макета
- •2.3. Программа работы
- •2.4. Контрольные вопросы
- •3. Требования к содержанию и оформлению отчетов
- •Список литературы
- •Цифровые устройства и микропроцессоры
- •Часть II Микропроцессорные устройства
- •195251, Санкт-Петербург, Политехническая, 29
1.1.4. Команды управления
Данная группа
команд состоит из двух подгрупп. Первую
подгруппу составляют команды передачи
управления. Мнемонический код и
символическое описание первой из группы
команд передачи управления имеет вид
.
Предполагая, что до некоторого момента
команды выполняются в своей естественной
последовательности, содержимое счетчика
адресов команд каждый раз увеличивается
на единицу. По команде PCHL
естественная последовательность
нарушается, и в счетчик адресов команд
PC
передается содержимое регистровой пары
HL,
служащее теперь адресом ячейки памяти,
из которой будет извлечена новая
подлежащая исполнению команда.
Рассмотренная операция
является примером
безусловного перехода по программе.
Вторая аналогичная команда имеет вид
и тоже предусматривает операцию
безусловного перехода по программе.
Единственное отличие от предыдущей
команды состоит в том, что в счетчик
адресов команд передается содержимое
двух байт
трехбайтовой команды – новый адрес,
обозначенный как
ADR.
После выполнения такой операции следующей
выполняемой командой будет команда,
код операции которой хранится в ячейке
памяти с адресом
ADR.
В рассматриваемую группу команд также входят восемь команд условного перехода. В состав АЛУ микропроцессора К580ВМ80А входит 8-разрядный регистр признаков F, каждый разряд которого имеет определенное назначение. В нулевом (младшем) разряде этого регистра записывается признак переноса С (carry), которому присваивается логическое значение 1 в том случае, когда потребность в операции переноса возникает при сложении (вычитании) старших разрядов двух 8-разрядных двоичных чисел. Поскольку за одним исключением, которое будет рассмотрено дальше, операции сложения и вычитания выполняются только над 8-разрядными двоичными числами, то сигнал переноса в следующий разряд записывается в регистр признаков и либо учитывается при выполнения следующей операции, либо служит сигналом, привлекающим внимание программиста к возникшей ситуации. В первом разряде регистра признаков постоянно хранится единица. Во втором разряде хранится признак четности, обозначенный буквой Р (parity). Этот признак принимает значение 1, если число единиц в двоичном слове, хранящемся в регистре-аккумуляторе А, четное, иначе он имеет значение 0. В третьем и пятом разрядах регистра признаков постоянно хранятся нули. В четвертом разряде записывается признак АС (auxiliary carry), представляющий собой признак вспомогательного переноса. Этот признак принимает значение 1 в том случае, когда перенос возникает при выполнении сложения (вычитания) над четвертыми разрядами двоичных чисел. Признак Z (zero), хранящийся в шестом разряде регистра признаков, принимает значение 1, когда в результате выполнения команды содержимое регистра-аккумулятора А равно нулю. Наконец, признак знака S (sign), находящийся в седьмом разряде, принимает значение 1, если в результате выполнения команды содержимое регистра-аккумулятора является отрицательным числом.
Результат выполнения любой команды всегда состоит из двух частей: двоичного слова, поступившего в регистр-аккумулятор А, и двоичного слова, находящегося в регистре признаков F. Эти два слова, взятые вместе, получили название слово состояния программы. Действительно, содержимое регистров А и F достаточно подробно характеризует то состояние, к которому привела последовательность операций на текущий момент времени. По-английски слово состояния программы это – programme state word. Первые буквы этих трех слов дают сокращение PSW, которое используется при символических описаниях команд.
Все восемь команд
условного перехода могут быть описаны
одним мнемоническим кодом и одним
символическим описанием
,
где CON
– имя условия. Коды команд условного
перехода имеют вид
,
где биты
–
это коды условий. При
написании реальных команд на место CON
подставляется одно из следующих восьми
условий:
NZ
(no
zero)
– ненулевой результат, признак
,
биты
;
Z
(zero)
–нулевой результат, признак
,
биты
;
NC
(no
carry)
– отсутствие переноса, признак
,
биты
;
C
(carry)
– перенос, признак
,
биты
;
PO
(party
omen)
– нечетное число единиц результата,
признак
,
биты
;
PE
(party
even)
–четное число единиц результата, признак
,
биты
;
P
(plus)
– число неотрицательное, признак
,
биты
;
M
(minus)
– число отрицательное, признак
,
биты
.
В качестве примера
рассмотрим порядок выполнения команды
.
Если
результат, хранящийся в регистре-аккумуляторе,
действительно ненулевой, признак
Z
равен нулю, естественная последовательность
выполнения команд нарушается и следующей
будет исполняться команда, код операции
которой хранится в ячейке памяти с
адресом
ADR.
Если признак
Z
имеет значение
1
последовательность выполнения команд
не нарушается, и выполняется следующая
по порядку команда. Отметим, что команда
имеет
трехбайтный формат, поэтому, если код
операции команды
хранится в ячейке памяти с k-тым
адресом, то код операции следующей по
порядку команды должен храниться в
ячейке памяти с адресом
.
Следовательно, при выполнении команды
,
если условие
не удовлетворяется, микропроцессор
автоматически увеличивает содержимое
счетчика адресов команд на
три. Приведенное
описание иллюстрирует роль регистра
признаков. Все выше сказанное справедливо
и для остальных семи разновидностей
команды условного перехода.
Специальная подгруппа группы команд управления предназначена для работы с подпрограммами. Первая команда имеет вид
.
Действие команды
заключается в том, что код адреса ADR
записывается в счетчик адресов команд
PC.
Под адресом ADR
в данном
случае подразумевается адрес первой
команды подпрограммы. В отличие от
команд безусловного и условного переходов
основному действию команды предшествует
подготовка, обеспечивающая возможность
возврата из подпрограммы и продолжение
выполнения программы. Предыдущее
содержимое счетчика адресов команд
передается в ячейки памяти с адресами
и
.
Любая подпрограмма обязательно
заканчивается командой безусловного
возврата, описание которой следующее
.
После выполнения подпрограммы в счетчик
адресов команд передается содержимое
тех ячеек памяти, куда перед началом
выполнения подпрограммы было помещено
содержимое счетчика адресов команд.
Благодаря этому основная программа,
прерванная обращением к подпрограмме,
может продолжиться с того самого места,
на котором она была прервана. Кроме
того, при выполнении команды возврата
содержимое указателя стека увеличивается
на
два, то
есть восстанавливается его исходное
значение.
При выполнении
команды
в стек записывается лишь содержимое
счетчика адресов команд, но не слово
состояния программы PSW.
К моменту начала выполнения подпрограммы
в регистре-аккумуляторе A
и регистре признаков F
в общем случае находятся какие-то слова.
Поскольку подпрограмма должна выполняться
над какими-то операндами, то первым из
них оказывается как раз слово, хранящееся
в регистре-аккумуляторе. Происходит
как бы автоматическая передача информации
из программы в подпрограмму. Выполнение
команд подпрограммы изменяет содержимое
регистров A
и F
и регистра признаков. Слово состояния
программы PSW
не сохраняется в стеке при выполнении
команды обращения к подпрограмме. Если
такое сохранение по тем или иным
соображениям необходимо, то перед
командой обращения к подпрограмме надо
выполнить команду
.
Кроме команд безусловного обращения к подпрограмме и безусловного возврата существуют их условные разновидности, символические описания которых следующие:
;
.
Из представленных описаний ясно, что по своему действию обе эти команды эквивалентны рассмотренной команде обращения к подпрограмме. Различие состоит в том, что они выполняются при удовлетворении одного из восьми рассмотренных ранее условий. Наименование условия записывается на место имени CON точно так же, как это делалось для команд условного перехода.
Последняя разновидность команд обращения к подпрограммам имеет вид
.
Здесь адрес ADR
зависит от значения числа
X.
Эта зависимость показана в табл.3.
Иными словами, команда
предусматривает обращение к подпрограмме,
первая команда которой хранится не в
любой, а в одной из восьми фиксированных
ячеек памяти.
Таблица 3 |
||||
Код операции |
ADR |
|
Код операции |
ADR |
|
0000 |
|
0020 |
|
|
0008 |
|
0028 |
|
|
0010 |
|
0030 |
|
|
0018 |
|
0038 |