Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа №13.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
81 Кб
Скачать
☆

Особенности команд учебного микропроцессора Команды пересылки кодов

 

Эти команды предназначены для организации обмена кодами между регистрами СОЗУ, ячейками памяти, портами ввода – вывода.

Наиболее многочисленна группа команд однобайтовых пересылок. Микропроцессор, исполняя команды этой группы, осуществляет пересылку, одного байта данных. Большинство команд этой группы записывается в виде MOV R1,R.

По этой команде содержимое регистра R пересылается в регистр R1, причем содержимое регистра R при этом не меняется. В качестве регистров R1 и R в команде могут фигурировать: A – аккумулятор; B, C, D, E, H, L – регистры общего назначения; M – ячейка памяти, адрес которой содержится в регистровой паре HL. Возможности использования в командах тех или иных регистров будем далее пояснять краткой записью вида MOV R1,R,

.

Легко видеть, что команда MOV R1,R может использовать как регистровую, так и косвенную адресацию источника и приемника пересылаемого кода. Так команда MOV A,C пересылает содержимое регистра С в аккумулятор А, а команда MOV M,A – пересылает содержимое аккумулятора А в ячейку ОЗУ с адресом, который содержится в данный момент времени в регистровой паре HL.

Кроме регистровой и косвенной адресации для однобайтовых пересылок может быть использована и непосредственная адресация. Она реализуется в команде MVI R,D8,

.

По этой команде байт данных D8 помещается в один из регистров A, B, C, D, E, H, L или адресуемую косвенно ячейку памяти М.

Обмен данными между аккумулятором и ячейками памяти или портами ввода–вывода дополнительно поддерживают команды с прямой адресацией:

LDA ADR – загрузить аккумулятор из ячейки памяти с адресом ADR;

STA ADR – загрузить ячейку памяти с адресом ADR из аккумулятора;

IN N – ввести в аккумулятор байт из порта ввода с адресом N;

OUT N – вывести байт из аккумулятора в порт вывода с адресом N.

По командам двухбайтовых пересылок микропроцессор осуществляет пересылку двухбайтовых (шестнадцатиразрядных) чисел. Рассмотрим примеры таких команд.

LXI Rp,D16 – загрузить регистровую пару Rp двухбайтовым числом D16.

.

LHLD ADR – загрузить регистровую пару HL из ячеек памяти с адресами ADR и ADR+1. При этом байт из ячейки с младшим адресом ADR будет загружен в младший регистр пары – L, а байт из ячейки со старшим адресом ADR+1 – в старший регистр пары – H.

SHLD ADR – загрузить ячейки памяти с адресами ADR и ADR+1 из регистровой пары HL. При этом байт из младшего регистра пары – L будет загружен по младшему адресу ADR, а байт из старшего регистра пары – H, будет загружен по старшему адресу ADR+1.

 

Команды арифметико–логической обработки

 

Большинство команд арифметико–логической обработки оперирует байтовыми словами. Здесь имеются команды сложения, сложения с учетом переноса, вычитания, вычитания с учетом заема, поразрядных логических «И», «ИЛИ», «исключающего ИЛИ» и сравнения.

В перечисленных командах один из операндов всегда адресуется неявно (он всегда берется из аккумулятора). Неявно адресуется и результат. Он также всегда помещается в аккумулятор. Варианты этих команд, имеющие однобайтовый формат, имеют вид:

ADD R – сложить код из аккумулятора с кодом из регистра R;

ADC R – сложить код из аккумулятора с кодом из регистра R с учетом переноса, содержащегося в бите С регистра признаков F;

SUB R – вычесть код из регистра R из кода, содержащегося в аккумуляторе;

SBB R – вычесть код из регистра R из кода, содержащегося в аккумуляторе с учетом заема, содержащегося в бите С регистра признаков F;

ANA R – выполнить операцию поразрядного логического «И» над кодами, содержащимися в аккумуляторе и регистре R;

ORA R – выполнить операцию поразрядного логического «ИЛИ» над кодами, содержащимися в аккумуляторе и регистре R;

XRA R – выполнить операцию поразрядного логического «исключающего ИЛИ» над кодами, содержащимися в аккумуляторе и регистре R;

CMP R – выполнить сравнение кодов, содержащихся в аккумуляторе и регистре R.

В этих командах

,

то есть второй операнд адресуется регистровым методом или косвенно.

Имеются варианты рассмотренных команд, имеющие двухбайтовый формат, и использующие непосредственную адресацию второго операнда. Это, соответственно, команды:ADI D8; ACI D8; SUI D8; SBI D8; ANI D8; ORI D8; XRI D8; CPI D8.

Поясним действие команд сравнения CMP R (CPI D8). Эти команды не меняют содержимого аккумулятора, но воздействуют на регистр признаков F точно также, как и команды вычитания SUB R (SUI D8).

Отметим, что команды сложения ADD R, ADC R, ADI D8, ACI D8 могут использоваться не только для двоичного, но и для двоично–десятичного сложения. В последнем случае результата сложения, находящийся в аккумуляторе, должен быть скорректирован специальной командой десятичной коррекции DAA. Эту команду можно использовать только при сложении. Специальной команды коррекции результата для двоично-десятичного вычитания учебный микропроцессор не имеет.

С двухбайтовыми словами оперирует команда двухбайтового сложения DAD Rp – сложить содержимое регистровой пары Rp с содержимым регистровой

HL и поместить результат в пару HL.

.

Команд умножения и деления, а также операций с плавающей точкой учебный микропроцессор не имеет.

К группе арифметико–логических команд относят также команды инкремента, декремента и сдвига. Команды инкремента увеличивают, а команды декремента уменьшают на единицу содержимое регистра или регистровой пары. Такие команды имеют вид:

INR R – инкрементировать регистр R;

DCR R – декрементировать регистр R;

INX Rp – инкрементировать регистровую пару Rp;

DCX Rp – декрементировать регистровую пару Rp.

 и  .

Команды сдвига будут рассмотрены отдельно.