Методы адресации операндов команд
Выполнение процессором команд приводит либо к каким-то действиям над операндами, либо к изменению состояния процессора. Операнды в командах микропроцессора 8080 определяются одним из 5 способов (методов) адресации, представленных в табл. 1.3.
Пример1.15
Адрес Число Метка Мнемокод Комментарий
0800 3E 03 MVI A,03 ;
команда пересылки числа 03 из состава команды в аккумулятор: операнд-источник 03 указан в составе команды при помощи непосредственного метода, а операнд-приёмник указан в аккумуляторе (регистр А) то есть регистровым методом.
Таблица 1.3
Способы адресации операндов в командах
Название | Описание |
Непосредст-венный | Операнд содержится в байте B2 двухбайтной команды или в байтах B2, B3 трёхбайтной команды |
Регистровый | Операнд находится в регистре, указываемом в коде команды |
Прямой | Младший байт адреса операнда указывается в байте B2, a старший – в байте B3 команды |
Косвенно-регистровый | Адрес операнда определяется парой регистров, указываемой в коде команды |
Стековый | Адрес операнда определяется текущим содержимым регистра указателя стека SP |
Пример1.16
Адрес Число Метка Мнемокод Комментарий
0802 01 00 0B LXI B,0B00h ;
команда пересылки числа 0B00 из состава команды в регистровую пару BC: операнд-источник 0B00 указан в составе команды при помощи непосредственного метода, а операнд-приёмник указан в регистровой паре BC то есть регистровым методом.
Пример1.17
Адрес Число Метка Мнемокод Комментарий
0805 02 STAX B ;
команда пересылки числа из аккумулятора в ячейку памяти с адресом взятым из регистровой пары BC: операнд-источник указан в аккумуляторе регистровым методом, а операнд-приёмник адресован через адрес, хранящийся в регистрах BC, то есть косвенно-регистровым методом.
Пример1.18
Адрес Число Метка Мнемокод Комментарий
0806 32 01 0B STA 0B01h ;
команда пересылки из аккумулятора в ячейку памяти с адресом 0B01: операнд-источник указан в аккумуляторе регистровым методом, а операнд-приёмник адресован через адрес, входящий в состав самой команды, то есть прямым методом.
Пример1.19
Адрес Число Метка Мнемокод Комментарий
0809 D5 PUSH D ;
команда записи в стек содержимого регистровой пары DE: операнд-источник определён в регистровой паре регистровым методом, а операнд-приёмник адресован через адрес вершины стека, хранящийся в регистре SP, то есть стековым методом.
Биты признаков
В результате выполнения команд арифметических или логических операций над исходными операндами, кроме собственно результата этих операций, процессор обеспечивает формирование признаков (флагов), характеризующих полученный результат операций. Признаки представляются альтернативными состояниями битов. Например, признак нулевого результата операции предполагает равенство “1” соответствующего бита при наличии нулевого результата и равенство этого бита “0” при отсутствии нулевого результата. Биты всех признаков объединены в общий регистр признаков (флагов) – F. Его формат показан в табл. 1.4, а значения отдельных битов признаков – в табл. 1.5.
Таблица 1.4
Формат регистра признаков
Биты | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Обозн | S | Z | AC | P | CY |
Таблица 1.5
Значения битов признаков
Слово | Назначение |
Sign | Знак результата: "1"– минус; "0"– плюс. Знаком двоичного числа принято считать (как в схемотехнике цифроаналогового преобразования) значение старшего бита этого числа. Поэтому в бит S просто копируется старший бит результата операции, выполняемой процессором. |
Zero | Нулевой результат: да–"1"; нет–"0". |
CarrY | В этот бит помещается перенос из старшего разряда аккумулятора при сложении или из него берётся заём в старший разряд аккумулятора при вычитании: "1"– есть перенос или заём.: "1"–нет. |
Add Carry | Дополнительный перенос – то же что и Carry, но для границы полубайтов результата операции (биты D3 и D4). |
Parity | Паритет (чётность) для числа, показывающего количество битов равных "1" в составе байта результата: чётное (Even) –"1"; нечётное (Odd) – 0. |
Биты регистра признаков устанавливаются командами арифметических, логических и сдвиговых операций. Они могут быть использованы другими командами в качестве объекта анализа или анализируемого условия. Анализировать состояния битов признаков могут команды условных переходов, условных вызовов подпрограмм или условных возвратов из подпрограмм.
Кроме того, бит CY может принимать участие в арифметических, логических и сдвиговых операциях вместе с другими операндами.
Пример1.20
Метка Мнемокод Комментарий
M00: ACI 25h ;Сложить содержимое аккумулятора, число 25h ;и бит CY. Результат записать в аккумулятор и ;отразить его признаки в регистре признаков F
JNC M00 ;Анализировать состояние бита CY регистра F ;если CY=0 перейти к метке M00, иначе
HLT ; выполнить останов
Первая команда выполнит сложение двух однобайтных чисел (операндов) и бита переноса CY из регистра признаков:
операнд1+операнд2+CY=сумма и новое состояние F.
В результате сложения байт суммы окажется в аккумуляторе, а признаки результата – в регистре F.
Вторая команда JNC M00 будет анализировать условие (текущее состояние бита CY) и выбирать по результатам анализа один из двух альтернативных вариантов переходов в программе: при CY=0 команда обеспечит переход программы к метке M00, а при CY=1 будет выполняться следующая по порядку команда программы.