- •Система команд и программирование микропроцессора к 580
- •Введение
- •Форматы команд микропроцессора к 580 ик 80
- •Способы адресации операндов
- •Признаки состояния микропроцессора
- •Размещение признаков в регистре признаков
- •Группа команд пересылки
- •Группа команд арифметических операций
- •Группа команд логических операций
- •Группа команд передачи управления
- •Группа команд управления стеком, вводом-выводом и состояниями микропроцессора
- •Программирование микропроцессора к 580
- •Литература
Группа команд передачи управления
Назначение команд данной группы – изменение хода вычислительного процесса, т.е. реализация переходов в программе.
Безусловные команды передачи управления выполняют определенные операции с содержимым счетчика команд PC. Команды условной передачи управления в зависимости от состояния разрядов регистра признаков осуществляют или не осуществляют переход к определенной точке программы. Условия, с которыми оперируют команды условной передачи управления, следующие:
-
Поле ССС
NZ – ненулевой результат
(Z = 0)
000
Z – нулевой результат
(Z = 1)
001
NC - отсутствие переноса
(CY = 0)
010
C – перенос
(CY = 1)
011
P0 – нечетный результат
(P = 0)
100
PE – четный результат
(P = 1)
101
P – число положительное
(S = 0)
110
M – число отрицательное
(S = 1)
111
JMP AD
(PC) (B3)(B2)
Передать адрес команде, адрес которой определяется содержимым второго и третьего байтов текущей команды.
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
ADl |
|||||||
ADh |
|||||||
Циклов: 3
Тактов: 10
Адресация: непосредственная
Признаки: -
J condition AD
if (ccc) then (PC) (B3)(B2)
else (PC) (PC)+1
Если задаваемое полем ССС команды условие реализуется, то управление предается команде, адрес которой в памяти определяется содержимым второго и третьего байтов команды. Команды JAMP IF не влияет на содержимое аккумулятора, регистров признака и состояния MP, а оперируют только со счетчиком команд PC. Если заданное в поле ССС условие не выполняется, МП переходит к выполнению команды, адрес которой определяется путем прибавления 1 к содержимому счетчика команд PC.
1 |
1 |
С |
С |
С |
0 |
1 |
0 |
ADl |
|||||||
ADh |
|||||||
Циклов: 3
Тактов: 10
Адресация: непосредственная
Признаки: -
CALL AD
((SP)-1) (PCH)
((SP)-2) (PCL)
(SP) (SP)-2
(PC) (B3)(B2)
Старший полуадрес следующей команды из счетчика команд PC загружается в стек, т.е. заносится в ячейку памяти, адрес которой уменьшен на 1 относительно содержимого регистра-указателя стека SP. Младший полуадрес из счетчика команд PC засылается в ячейку памяти по адресу, уменьшенному на 2 относительно исходного содержимого регистра SP. Управление передается команде, адрес которой определяется содержимым второго и третьего байтов команды.
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
ADl |
|||||||
ADh |
|||||||
Циклов: 5
Тактов: 17
Адресация: непосредственная / косвенная регистровая
Признаки: -
C condition AD
if (ccc) then ((SP)-1) (PCH)
((SP)-2) (PCL)
(SP) (SP)-2
else (PC) (PC)+1
Вызвать подпрограмму по адресу по условию. Любая команда вызова подпрограммы, прежде чем передать управление команде, расположенной по адресу, размещенному во втором и третьем байтах команды, с целью упрощения процедуры возврата к основной программе заносит в стек адрес возврата.
Всякая подпрограмма заканчивается командой RETURN
1 |
1 |
С |
С |
С |
1 |
0 |
0 |
ADl |
|||||||
ADh |
|||||||
Циклов: 3/5
Тактов: 11/17
Адресация: непосредственная/косвенная регистровая
Признаки: -
RET
(PCL) ((SP))
(PCH) ((SP)+1)
(SP) (SP)+2
Содержимое ячейки памяти, адрес которой задается указателем стека SP, заносится на место младшего байта в счетчик команд PC, содержимое ячейки памяти, адрес которой на 1 больше содержимого регистра SP, заносится на место старшего байта в счетчик команд PC. Значение регистра SP увеличивается на 2.
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
Циклов: 3
Тактов: 10
Адресация: косвенная регистровая
Признаки: -
R condition
if (ccc) then (PCL) ((SP))
(PCH) ((SP)+1)
(SP) (SP)+2)
else (PC) (PC)+1
Вернуться по условию
1 |
1 |
С |
С |
С |
0 |
0 |
0 |
Циклов: 1/3
Тактов: 5/11
Адресация: косвенная/ непосредственная
Признаки: -
RST n
((SP)-1) (PCH)
((SP)-2) (PCL)
(SP) (SP)-2
(PC) 8ּ(NNN)
Произвести повторный
запуск. Старший полуадрес следующей
команды из счетчика команд PC
передается в ячейку внешней памяти по
адресу, значение которого на 1 меньше
содержимого регистра SP.
E
следующий элемент стека с адресом (SP)
– 2 загружается младший полуадрес
следующей по программе команды. Содержимое
SP
уменьшается на 2. Управление передается
команде, адрес которой определяется
как произведение содержимого поля
NNNּкоманды
на 8, т.е. поле NNN
команды заносится в счетчик команд PC
в разряды
,
или (PC)
(0000
0000 00NN
ּN000).
Команда RST используется для операций с вектором прерывания и загружает в счетчик команд PC действительный начальный адрес соответствующей программы обслуживания прерывания.
1 |
1 |
N |
N |
N |
1 |
1 |
1 |
Циклов: 3
Тактов: 11
Адресация: косвенная регистровая
Признаки: -
PCHL
(PCH) (H)
(PCL) (L)
Безусловно перейти по косвенному адресу. Содержимое регистра H заносится на место старшего байта в счетчик команд PC, содержимое регистра L – на место старшего байта.
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
Циклов: 1
Тактов: 5
Адресация: регистровая
Признаки: -
