Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБЩАЯ плохая.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
700.93 Кб
Скачать

3. Группа команд ввода/вывода

IN N – ввести. Это двухбайтовая команда. Байт информации, размещенный на шине данных портом ввода, адрес которого задан вторым байтом команды IN, загружается в аккумулятор А.

Пример: IN E0 - ввести из порта с адресом Е0 байт информации. Если порт установил на шине данных, например, байт 18, то после выполнения этой команды в аккумуляторе А будет число 18.

OUT N - вывести. Это двухбайтовая команда. Содержимое аккумулятора А выдается на шину данных и помещается в порт вывода с адресом, заданным вторым байтом команды OUT.Пример:OUT E1 - вывести из аккумулятора А его содержимое в порт вывода с адресом Е1. Если в аккумуляторе А до выполнения было, например, число 20, то после выполнения этой команды в выводном порте будет число 20.

4. Группа команд обмена байтами

XCHG - обменять содержимое пары регистров HL с содержимым пары регистров DЕ, причем обмен происходит следующим образом:

(H)↔(D)

(L)↔(E)

XTHL - обменять cодержимое указателя стека SP и пары регистров HL, причем обмен происходит следующим образом:

(L)↔(SPL)

(H)↔(SPH)

где SPH –старший байт указателя стека,

SPL – младший байт указателя стека.

5. Группа команд арифметических и логических операций с одним операндом

CMC – инвертировать бит С признака переноса в регистре признаков F.

Пример:

Пусть для выполнения байт признака F

1 1 0 0 0 0 1 0 (C2)

После выполнения байт признака F будет

1 1 0 0 0 0 1 1 (C3)

STC – установить признак переноса.

Пример:

Пусть до выполнения байт признака F

1 0 0 0 0 0 1 1 (83)

После выполнения байт признака F будет

1 0 0 0 0 0 1 1 (83)

Примечание. Обычно эти две команды используют для очистки признака С следующий образом:

STC

СМС

Такая последовательность гарантирует установление признака С в 0.

СМА - инвертировать содержимое аккумулятора А.

Пример:

Пусть до выполнения в А число

1 1 0 1 1 0 0 1 (D9)

После выполнения команды в а будет число

0 0 1 0 0 1 1 0 (26).

DAA - десятичная коррекция. Если значение младшего 4-разрядного символа больше девяти, то есть признак переноса из младшего полубайта АС=1, то корректор прибавляет двоичную цифру 6 к содержимому аккумулятора. Затем анализируется старший полубайт и, если он содержит число, большее девяти, то есть признак переноса С=1, то корректирует содержимое аккумулятора А путем прибавления к старшему полубайту двоичной цифры 6.

INR R - увеличить на 1 содержимое регистра или ячейки памяти. Понятие R дано в команде MOV.

Пример:

До выполнения команды INR В в регистре В было число 8С. После выполнения в В будет число 8D.

DCR R - уменьшить на единицу содержимое регистра или ячейки памяти.

Пример:

До выполнения команды DCR E в регистре Е было число FE. После выполнения в Е будет число FD.

INX YZ - увеличить на 1 содержимое пары регистров YZ. Понятие дано в команде LXI.

Пример:

До выполнения команды INX SP в регистре SP было число 0900. После выполнения команды в SP будет число 0901.

DCX YZ - уменьшить на 1 содержимое пары регистров YZ.

Пример:

До выполнения команды DCX D в паре DE было число 0900. После выполнения команды в регистровой паре DE будет число 08FF.