Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции сау.doc
Скачиваний:
30
Добавлен:
08.09.2019
Размер:
515.07 Кб
Скачать

Формат команд

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

При прямой адресации команды содержат адреса, расположенные непосредственно за их первыми тактами. Т.о. общая длина команды является переменной величиной, команда без сопутствующей информации занимает 1 байт, команда с тактом данных или с выбором устройства вывода 2 байта, а команда с адресом 3 байта, причем код операции в первом байте. Эта команда организуется так:

КОП Приемник Источник

7 6 5 4 3 2 1 0

КОП ddd sss

КОП занимает 2 разряда. Возможно получение большего числа команд за использования полей источника и приемника в качестве расширения поля операции, если они не используются.

Команды передачи данных

1.Пересылка регистр - регистр

01 ddd sss

ddd, sss определяют любое трехразрядное число, но не 110, при этом sss определяет регистр, содержимое которого пересылается, а ddd - принимающий регистр.

Регистрам присваиваются номера

B=0, C=1, D=2, E=3, H=4, L=5 и A=7.

Расшифруем команду

01 001 100 - переслать содержимое регистра H в С , при этом содержимое регистра С теряется, а в Н сохраняется.

MOV C,H

Если источник или приемник равен 6 (110), то это означает, что источником или приемником является ячейка памяти, адрес которой хранится в паре регистров Н,L - так осуществляется косвенная адресация.

Прежде чем выполнять инструкцию MOV с адресным кодом 110, необходимо обеспечить, чтобы пара регистров H,L содержали необходимую информацию - 16-ричный адрес, для этого следует произвести передачу данных в H,L.

2.MVI - пересылка 1 байта в любой из 7 РОН, включая H,L.

Формат команды: 00 ddd 110

00 - определяют команду MVI

110 - расширение кода операции

Поле ddd может быть равно 110

00 110 110 00 000 001 - 1 Загружается в ячейку памяти,адрес которой записан в паре регистров h,l.

3.LXI - непосредственная загрузка.

Осуществляет загрузку следующих после нее двух байт в индексный регистр

00 010 001 - 1-ый байт команды LXI

11 101 101 - 2-ой байт команды

10 010 001 - 3-ий байт команды

Загрузка 2 байт в пару регистров DE

4.Stax, ldax - передача данных между регистрами а и ячейками памяти, адрес которых хранится- в паре регистров вс,de.

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

5.SHLD,LHLD - позволяют произвести пересылку двух байтов между памятью и парой регистров HL. Трехбайтовая команда.

КОМАНДЫ ПЕРЕХОДА

  • Команды разветвления.

  • Команды обращения к подпрограммам.

  • Команды возврата из подпрограмм.

Адреса команд разветвления хранятся непосредственно за первым байтом команды. Вид команд обращения к подпрограммам точно такой же, как и у команд ветвления. Для операции обращения к подпрограммам характерно наличие адреса возврата из подпрограмм, автоматически сохраняемого в стеке. Команда возврата из подпрограмм не имеет в своем составе адреса возврата, он получается из стека. Каждый из трех видов переходов может быть безусловным или условным, в соответствии с одним из разрядов регистра признаков (ССП).

JC - Переход по переносу.

CC - Вызов подпрограммы по переносу.

RC - Возврат из подпрограммы по переносу.

Команды приведут к переходу, если флаг переноса CARRY равен 1.

JNC, CNC, RNC - Аналогичные команды, переход, если бит CARRY установлен в 0.

JMP - Команда безусловного перехода по адресу, указанному в байтах команды.

CALL - Вызов подпрограммы.

RET - Возврат из подпрограммы.

PCHL - Программный счетчик.

Приводит к обмену между парой регистров HL и счетчиком команд.

Это дает возможность осуществить переход по адресу, записанному в HL.

Осуществляется безусловный переход с косвенной адресацией (предполагается, что адрес перехода предварительно записан в HL).

КОМАНДЫ ИЗМЕНЕНИЯ СОДЕРЖИМОГО АККУМУЛЯТОРА

Формат команд имеет следующий вид:

10 ddd sss - код приемника не используется для адресации, а используется для расширения кода операнда

000 - сложение

10 010 sss - вычитание

10 100 sss - операция “И”

Один из операндов должен быть записан предварительно в аккумулятор, другой записан в коде источника. Предыдущее состояние стирается, результат фиксируется в аккумуляторе.

sss - как в команде MOV,

1 - 7 - регистры

6 - косвенная адресация

Например,

10 000 111 - сложение аккумулятора с аккумулятором

10 100 111 - логическое “И” аккумулятора с самим собой, содержимое не изменится, но произойдет изменение слова состояния программы.

По аналогии с MVI существует набор команд с непосредственной адресацией, они выполняют операцию над байтом, следующим за первым байтом команды.

Формат этих команд: 11 ddd 110

ddd - определяет тип операции (+.- ...)

Данный МП фактически имеет две команды сложения и вычитания:

ADD – сложение,

ADC - сложение с учетом переноса,

сложение трех чисел - аккумулятора, источника и бита переноса из регистра условий,

SUB - вычитание источника и приемника,

SBB - позволяет возникающий на предыдущем этапе заем вычитать на следующем этапе.

КОМАНДЫ СДВИГА

RAL, RAR - циклические сдвиги аккумулятора вправо и влево .

RLC, RRC - осуществляют сдвиг через бит переноса.

А С А

RAL, RAR RLC, RRC

КОМАНДЫ ИЗМЕНЕНИЯ СОДЕРЖИМОГО РЕГИСТРОВ

Существует группа команд уменьшения или увеличения на 1 содержимого регистра:

INR - увеличение приемника на 1

Формат команды: 00 ddd 100

ddd может быть 0 - 7 или 6- косвенная адресация

DCR - декремент, уменьшение на 1 приемника