page28
Команды с непосредственной адресацией IN A,(n) и OUT (n),A аналогичны командам
ввода-вывода МП I8080. Но в добавление к адресу порта n, выставляемому в младшую часть
шины
адреса,
в
старшую
часть
ША
подается
содержимое
аккумулятора.
Это
позволяет,
предварительно
загрузив
аккумулятор
нужным
значением,
использовать
16-разридный
адрес
ввода-вывода. На флаги эти две команды не влияют.
В командах с косвенной адресацией данные пересылаются между портом адрес которого
загружен в регистр C, и одним из РОНов.
IN r,(С)
OUT (С), г
При этом в старшую часть адреса подается содержимое регистра B, т.е. также может
использоваться 16-разрядный адрес ввода-вывода.
Две команды IN C,(C) и OUT (C),C имеют особенности. В команде вывода регистр C
содержит адрес канала и его же в качестве данник посылает в порт. В команде ввода содержимое
регистра C после ввода из порта замещается принятыми данными.
Команды OUT (C),r не влияют на флаги. Команды ввода IN r,(C) устанавливают флаги Z, S,
P, H в соответствии с принятыми данными и сбрасывают флаг N. Следует уделить команду INF,
которая, воздействуя на регистр флагов, не изменяет состояния РОН.
Косвенная
адресация
используется
также
командами
ввода-вывода
блоков.
Они
пересылают данные между портом, адресуемым регистром C, и памятью, адресуемой регистровой
парой HL.
INI
ввод и инкремент HL
INIR
ввод и инкремент HL до B=0
IND
ввод и декремент HL
INDR
ввод и декремент HL по B=0
OUTI
вывод и инкремент HL
OTIR
вывод и инкремент HL до B=0
OUTD
вывод и декремент HL
OTDR
вывод и декремент HL до B=0
Регистр B здесь используется как двоичный счётчик - он автоматически декрементируется
после пересылки каждого байта (максимально 256). Вместе с тем, содержимое B выдается в
старшую часть ША. Это может быть использовано в случае, когда необходимо выводить данные в
несколько портов с идущими подряд (в старшем байте) 16-разрядными адресами.
Команды ввода-вывода блоков устанавливают Флаги следующим образом:
S
неопределён
Z←1,
если регистр B=0 (выполнение команд заканчивается), иначе Z←0
H
неопределён
P/V
неопределён
N←1
C
не изменяется
Команды
управления микропроцессором. Эта группа (таблица 5.1.12)
содержит
шесть
команд управления.
Команда
NOP
-
это
пустая
команда,
при
которой
не
выполняется
никаких
действий.
Команда HALT останавливает работу МП до тех пор, пока не будет принят запрос на прерывание.
После выполнения команды HALT МП внутренне генерирует команды NOP, Чтобы производить
регенерацию динамической памяти. Для работы с прерываниями служат команды DI и EI, которые
запрещают
и
разрешают
прерывания
соответственно.
МП
может
работать
в
одном
из
трёх
режимов, прерывания, которые устанавливаются командами IM 0, IM 1 и IM 2 (подробнее см.
главу 6).