Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Простейшая микро-ЭВМ. Проектирование. Наладка. Использование.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.89 Mб
Скачать

4.6.1. Группа команд пересылки данных

В этой группе встречаются команды, пересылающие содержащиеся в них данные в регист­ры и в память, а также команды пересылки данных между ре­гистрами и между регистрами и памятью. Рассмотрим команды пересылки данных из одного регистра МП в другой, из регистра МП в ячейку ОЗУ и из ячейки ОЗУ в регистр МП. В мнемо­нике команд, используемых в данной книге, порядок пересыл­ки данных всегда предполагается в направлении от крайнего правого операнда к следующему слева операнду, отделенному от первого запятой.

Команда MOV rt, r2. Эта команда предназначена для пересыл­ки данных из регистра S (источник, или г2) в регистр D (прием­ник, или rt). В качестве регистра-источника и регистра-прием­ника может выступать любой из регистров В, С, D, H, L или аккумулятор А. Содержимое регистра-источника при этом не меняется. В регистре-приемнике просто появляется копия содержимого регистра-источника. На рис. 4.8,а приведен формат этой команды. Чтобы получить конкретную команду, необхо­димо вместо символов D и S в формате команды рис. 4.8,я проставить из табл. 4.4 коды соответствующих регистров. На­пример, команда 01 010 000 В пересылает данные из регист­ра В в регистр D (в регистре D после выполнения команды бу­дут содержаться т© же данные, что и в регистре В). В восьмерич­ной системе это число (код команды) будет представлено как 120Q (см. список команд в приложении 1).

Команда MOV М, г. Эта команда может быть получена из пре­дыдущей заменой символов D кодом М из табл. 4.4. Команда пересылает данные из регистра-источника в ячейку памяти по адресу, указанному в регистровой паре Н, L. Регистром-источ­ником может служить любой регистр В, С, D, H, L или аккуму­лятор А. После выполнения команды в ячейке памяти появится копия содержимого регистра-источника. Содержимое самого регистра не изменится. Код конкретной команды получается фиксацией кода регистра-источника (рис. 4.8,6).

Рис. 4.8. Примеры размещения некоторых команд пересылки данных в байтах

Рис. 4.9. Примеры размещения некоторых арифметических команд в байтах

Команда MOV г, М. Команда также получается из первой за­меной символов S кодом М из табл. 4.4. Команда пересылает данные из ячейки памяти по адресу, указанному в регистровой паре Н, L, в регистр-приемник, в качестве которого может использоваться любой регистр В, С, D, H, L или аккумулятор А. После выполнения команды в регистре-приемнике появляется копия содержимого ячейки памяти (рис. 4.8,в).

На этом закончим рассмотрение примеров команд этой груп­пы. Отметим лишь, что все команды из группы пересылки дан­ных на значения флагов влияния не оказывают.

4.6.2. Группа арифметических команд

Команды этой группы предна­значены для выполнения арифметических операций над данны­ми, хранимыми в регистрах и ячейках памяти. Эти команды в отличие от команд предыдущей группы, как правило, оказывают влияние на значения разрядов флагового регистра, по­скольку при выполнении арифметических операций меняются знаки используемых чисел, возникают сигналы переноса, появ­ляются нулевые результаты и т. п. Рассмотрим примеры разме­щения в байтах некоторых команд этой группы.

Команда ADD r. Эта команда выполняет сложение содержимо­го регистра-источника S с содержимым аккумулятора А. Резуль­тат сложения помещается в аккумулятор. Чтобы получить кон­кретную команду, необходимо в формате команды вместо сим­волов S проставить код регистра-источника из табл. 4.4. Напри­мер, команда 10 000 001 производит сложение содержимого регистра С с содержимым аккумулятора А. Двоичный код этой команды 10 000 001 В; в восьмеричной системе это число пред­ставляется кодом 201Q. Это представление является восьмерич­ным кодом команды ADD С, выполняющей указанное выше сложение (см. список команд в приложении 1). Размещение команды ADD г в байте приведено на рис. 4.9,д.

Команда SUB r. Команда выполняет вычитание содержимого регистра-источника S из содержимого аккумулятора. Результат заносится в аккумулятор (рис. 4.9,6). Например, команда 10 010 ОН В выполняет вычитание содержимого регистра Е из содержимого регистра А и помещает результат в аккумулятор. Код этой команды SUB Е — 223 Q.

Таблица 4.4

Регистр

Код

Пара регистров

Код

Обозначение условия в мне­мокоде

Код

А

111

В (В, С)

00

NZ (Z = 0)

000

В

000

D (D, E)

01

Z(Z=1)

001

С

001

Н (Н, L)

10

NC (CY - 0)

010

D

010

SP

11

C(CY= 1)

011

Е

011

РО (Р = 0)

100

Н

100

РЕ(Р = 1)

101

L

101

Р (S - 0)

ПО

М (память)

110

М (S= 1)

ПО

Команда SUI <В2> производит вычитание содержимого второ­го байта (команда двухбайтовая) из содержимого аккумулято­ра и помещает результат в аккумулятор (рис. 4.9,в). Восьмерич­ный код команды — 326Q (см. приложение 1).

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