Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Центральные и переферийные устройства электронно вычислительных средств.pdf
Скачиваний:
274
Добавлен:
02.05.2014
Размер:
6.14 Mб
Скачать

Глава 3. Системы команд микроЭВМ

45

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

Обычно даже очень простые операции преобразования информации занимают несколько тактов, требуя выполнения определенной последовательности микрокоманд. Например, если на рис. 3.1 прием в РгА адреса требует предварительной установки РгА в 0, то прием в РгА адреса второго операнда А2 будет производиться последовательностью микрокоманд, то есть микропрограммой

1-й такт

Уст0 РгА: РгА := 0;

2-й такт

ПрА2: РгА := РгК [A2];

Восприятие микропрограммы облегчается, если отдельные микрокоманды или группы микрокоманд, соответствующие определенный функциональных операциям, обозначить «метками операций». Метка операции предшествует описанию первой микрокоманды её группы и отделяется от этой микрокоманды знаком :: .

Микропрограмма может быть изображена в виде графа, отдельные вершины которого соответствуют микрокомандам или группам последовательно выполняемых микрокоманд. Безусловные микрокоманды обозначаются прямоугольниками, условные - ромбами с показом разветвлений. Внутри прямоугольников и ромбов записывают выражения для микрооператоров. Метки, если они используются, проставляют сбоку прямоугольника .

Пример 3.4. На рис. 3.6 приведена представленная в виде графа микропрограмма рабочего цикла памяти с произвольным обращением и с разрушающим считыванием (рис. 3.7, 3.8). Как видно из рисунка, в блок управления памятью БУП поступают извне управляющие сигналы Обращение (сигнал начала рабочего цикла) и Операция (1 - считывание, 0- запись). БУП генерирует в необходимой последовательности управляющие сигналы, инициирующие соответствующие микрооперации: ПрРгА - прием адреса с адресных шин ША в регистр адреса РгА; Выборка - возбуждение шин адресной выборки ячейки памяти со сбрасыванием содержимого ячейки в 0; Считывание - открытие усилителей считывания и передача считанного кода в информационный регистр РгИ; ПрРгИ - прием в РгИ слова с информационной входной шины ШИВх; Запись - возбуждение разрядных усилителей записи; ПрШИВых - выдача слова из РгИ на информационную выходную шину ШИВых. Здесь ДША - дешифратор адреса, БУЗ и БУС - блоки управления записью и считыванием. Регенерация (восстановление информации после считывания) производится в случае реализации ЗМ на элементах с разрушающим считыванием.

3.2. Структура и формат команд микропроцессора и МПС

Знание системы набора и форматов команд микроЭВМ необходимо для программирования на языке Ассемблера для данной микроЭВМ. Напомним, что язык Ассемблера это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде (коде, специфичном для конкретной машины). Язык Ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами (мнемокодами) операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, позволяет использовать различные системы счисления, например, десятичную или шестнадцатеричную, для представления числовых констант и дает возможность помечать специальными метками строки программ с тем, чтобы к ним могли обращаться другие части программы, например в случае передачи управления или при переходах.

Глава 3. Системы команд микроЭВМ

46

 

 

 

 

 

Начало

 

 

 

Приход

Такты

 

 

 

 

 

 

 

 

 

сигнала

 

Микрооперация:

 

 

 

 

 

 

Обращение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПрРгА

 

РгА:=ША;

 

 

 

 

 

 

 

 

ТТ1

 

 

 

 

 

 

 

 

 

 

Запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сигнал

 

 

 

 

 

 

 

 

 

 

 

Операция

0

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Считывание

 

 

 

 

ПрРгИ

 

 

 

Выборка,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РгИ:=ЗМ[РгА, 0

n-1];

 

 

РгИ:=ШИВх;

Т

 

2

Считывание

 

 

 

Т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выборка,

 

 

 

 

 

 

 

 

 

 

Выборка

 

 

(очистка

ячейки)

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗМ[РгА, 0 n-1]:=РгИ;

 

 

ЗМ[РгА, 0

 

 

 

 

Запись

 

 

 

 

n-1]:=0;

ТТ3

(Регенерация)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выборка,

 

 

Запись

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПрШИВых

 

 

 

ШИВых:=РгИ;

 

 

ЗМ[РгА, 0 n-1]:=РгИ;

Т

Т

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

Рис. 3.6. Блок-схема алгоритма микропрограммы рабочего цикла памяти с произвольным обращением и с разрушающим считыванием

n=16

Адрес

m

0

0

 

0

0

 

 

 

 

0000

0 1 2

 

n

 

00

8K

000

 

0001

1

 

 

16K

001

А

0002

2

 

32K 0

 

 

 

 

0003

 

 

 

 

 

010

Б

 

 

 

 

01

 

 

 

 

 

 

 

011

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

100

В

 

 

 

 

 

 

101

 

FFFC

 

 

32K 1

 

 

 

 

FFFD

 

 

 

 

 

110

Г

64К-2

 

 

 

11

 

FFFE

 

 

 

 

111

 

FFFF

64К-1

 

 

 

 

 

Д

 

64K-1

64K-1

 

64K-1

64K-1

 

 

 

 

 

Рис. 3.7. Представление адресного пространства памяти (упорядоченного множества кодов): в виде числовой оси (а); в виде таблицы (б); деление адресного пространства на 2 равные части (в); деление на 8 частей и т.д.

(д); пример распределения адресного пространства микроЭВМ:

А- 16К - 0000 - 3FFF - для адресов ОЗУ; Б - 8К - 4000 - 5FFF - для адресов ПЗУ;

В- 24К - 6000 - BFFF - свободная область;

Г- 8К - С000 - DFFF - для адресов расширенной памяти методом “окна”

Глава 3. Системы команд микроЭВМ

 

 

 

 

47

 

 

 

 

0...

БУС

 

 

 

 

 

 

 

n-1

 

 

ШИВх

 

РгА

 

 

 

 

Считывание

 

 

0

 

0...

n-1

 

 

 

 

.

 

.

ЗМ

 

 

 

ША

 

.

ДшА

. Запомина-

 

ПрРгИ

РгИ

Код

 

.

.

ющий

 

 

 

 

 

 

 

 

адреса

k-1

 

N-1 модуль

 

 

 

 

 

 

 

 

 

 

 

 

 

Выборка

 

 

 

 

ШИВых

 

 

 

0...

n-1

 

 

 

 

 

 

 

БУЗ

 

 

 

Обращение

БУП

Запись

 

Запись и

 

 

 

 

ПрШИВх

регенерация

 

Операция

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.8. Структурная схема адресной памяти с произвольным обращением

Мнемокод - упрощенная форма языка Ассемблера, использующая мнемонические аббревиатуры для обозначения кодов операций, например, мнемоника LDА (от англ. load direct accumulator) соответствует операции « load accumulator» - загрузить регистр-аккуму- лятор; CMP - от compare - сравнить коды 2-х чисел.

Широкий набор команд большинства современных микроЭВМ и МПС позволяет выполнять разнообразные арифметические и логические операции, операции ввода-вывода и специальные операции, а также организовать передачу управления внутри программы и между программами. Так, система команд 8-разрядного однокристального МП типа К580ИК80А, на базе которого построена микроЭВМ СМ 1800, включает в себя 78 команд. Система команд МП К1810, однокристального 16-разрядного, является расширенным множеством системы команд МП К580 и состоит из 109 команд. В разделе 2.7 было описано функционирование схем МПС при выполнении некоторых команд.

По функциональному назначению команды делятся на 7 групп.

1. Команды для выполнения арифметических и логических операций: ADD от англ. addition - сложение;

SUB (subtract) - вычитание;

INR (increment) -увеличение на 1; DCR (decrement) - уменьшение на 1;

SOB - вычитание 1 из содержимого РОН или ветвление, если содержимое равно нулю и др.

2.Команды пересылки между ОЗУ и регистрами МП: MOV/MVI (move/move immediate) -перемещаться, передвигаться.

3.Команды связи с подпрограммами (команды перехода):

RET (return) - возврат к основной программе после обращения к подпрограмме; MARK - восстановление указателя стека при выходе из подпрограммы;

САLL (call) - обратиться к подпрограмме;

СМ - обратиться к подпрограмме инвертирования числа;

Глава 3. Системы команд микроЭВМ

48

PTS - возврат из подпрограммы;

RST (restart) - прервать выполнение программы , и др.

4. Команды управления (control):

DI (disable interrupt) - игнорирование запросов прерывания до поступления команды ЕI;

EI (enable interrupt) - дать возможность функционирования системе прерывания; NОР (no operation) - не выполнять вычисления;

HLТ (от нем. halt) - останов.

5.Команды сдвигов данных в регистрах: очистки регистров, формирования дополнительного кода и др.

6.Команды ввода, вывода: IN, OUT.

7.Специальные системные команды.

Короткое мнемоническое имя команды, вводимое с клавиатуры, с помощью декодера - кодера (дешифратора - шифратора) преобразуется в машинный код. В промежуточной стадии этого преобразования мнемокод заменяется на его щестнадцатеричное представление. Так, команда увеличения содержимого регистра Н INR Н в шестнадцатеричном коде выглядит как 3С, в двоичном машинном коде - 00111100.

Языки программирования для микроЭВМ и МПС построены на основе английского языка и не зависят от типа МП. МикроЭВМ, использующие эти языки высокого уровня, содержат длинную сложную программу - транслятор, постоянно хранящуюся в их памяти, которая переводит программу с языка высокого уровня на машинный язык. Простые команды, написанные на высокоуровневом языке, могут переводиться в десятки команд на машинном языке. Такой транслятор называется компилятором.

На микроЭВМ чаще всего используются подходящие для них языки высокого уровня: БЭЙСИК, ФОКАЛ, ПЛ/М, ПАСКАЛЬ, ФОРТРАН, ФОРТ, СИ, АДА и др. Каждому типу МПС и микроЭВМ на базе конкретной серии МП набора соответствует свой язык Ассемблера.

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

Формат команды и архитектура ЭВМ рассчитаны на определенное число операндов, в соответствии с чем команды будут однобайтными либо многобайтными, а микроЭВМ и МПС - одноадресными, двухадресными (рис. 2.1), трехадресными (рис. 1.4, б) и весьма редко четырехадресными. В первых ЭВМ формат команд навязывался постоянным размером машинного слова. По мере появления дополнительных средств модификации (изменения части) адреса оказалось возможным разработать команды с переменной длиной. Так, микроЭВМ СМ 1800 на базе однокристальных МП серии К580 и секционных МП серии К589, совместимыми с МП 8080 фирмы Intel, имеет три формата команд: однобайтный Ф1, двухбайтный Ф2 и трехбайтный Ф3 (рис. 3.9). Имеются еще 12 вариантов заполнения этих трех форматов.

Формат 1 - однобайтная команда содержит лишь код операции. Операнды в такой команде либо отсутствуют, как, например, в команде останова HLТ, либо определяются по

Глава 3. Системы команд микроЭВМ

 

 

 

 

 

 

 

49

принципу умолчания. Например, в команде Ф1 INRM, осуществляющей приращение на

единицу содержимого байта памяти, адрес этого байта всегда берется из пары регистров

Н, L.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КОП

 

Ф1

 

 

 

 

 

 

 

 

7

 

0

 

 

 

 

 

 

 

 

 

 

КОП

 

 

Число

Ф2

 

 

 

 

 

 

15

 

8

7

 

0

 

 

 

 

 

 

 

КОП

 

 

16-разрядный адрес

 

Ф3

 

 

 

 

 

 

или число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

16 15

ст. часть

мл. часть

0

 

 

 

Рис. 3.9. Основные форматы команд микроЭВМ СМ-1800 на базе МП К580

 

 

ТЦ1

 

 

 

ТЦ2

 

 

ТЦ3

 

 

1

2

3

4

 

1

2

3

1

2

3

ТТ

 

 

 

 

 

 

 

 

 

 

 

ТИ1

 

 

 

 

 

 

 

 

 

 

 

ТИ2

 

 

 

 

 

 

 

 

 

 

 

Синхр.

 

Адрес команд

 

 

 

Адр. команды 1

 

Адр. Внеш.У

А0-А15

 

 

 

 

 

 

 

 

 

 

 

 

ССП

КК

 

 

ССП

В

 

ССП

 

Д

МД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТЦ1

 

 

Чт. данных

 

 

Ввод

РгСС

 

 

 

 

 

 

 

 

 

 

 

П (Прием)

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

Рис. 3.10. Временные диаграммы команды Ввод

 

 

Формат 2 - двухбайтная команда, кроме кода операции содержащая 8-разрядное число, являющееся в большинстве случаев непосредственным операндом команды. Двухбайтной является, например, команда MVI А 41, которая осуществляет занесение шестнадцатеричного числа 41 в регистр - аккумулятор А. Число 41 хранится при этом во втором байте кода команды. Ф2 будут и команды ввода - вывода IN и OUT, в которых второй байт содержит номер (адрес) устройства ввода-вывода.

Глава 3. Системы команд микроЭВМ

50

На рис. 3.10 приведена временная диаграмма команды ВВОД, информация поступает с внешнего устройства. Первый байт А0-А7 содержит код операции, второй байт А8-А15 содержит адрес следующей команды и адрес внешнего устройства, с которого должна приниматься информация. Рассматриваемая команда выполняется за три машинных цикла ТЦ1 - ТЦ3. В первом цикле ТЦ1 считывается код команды, во втором ТЦ2 - адрес машинного устройства, записанный в следующей за командой ячейке памяти, в цикле ТЦ3 записывается информация из внешнего устройства.

Втакте TЦl цикла ТЦ1 программный счетчик PC выдает на магистраль адреса МА код ячейки памяти, в котором записана исполняемая команда. На магистрали данных МД сформируется код, соответствующий слову состояния выполняемого цикла, то есть цикла считывания кода команды. Во время положительного импульса по управляющему выходу СИНХР слово состояния записывается в РгСС - регистр слова состояния и остается в нем

на протяжении всего машинного цикла ТЦ1. В соответствии со словом состояния к магистрали данных МД подключается своими выходами память, в которой записана исполняемая команда. Код в МД будет определяться содержимым ячейки, адрес которой задан на магистрали МА.

Втакте ТТ2 цикла ТЦ1 в микропроцессоре анализируется состояние сигналов ГОТОВ, ЗАХВАТ, ОБ.ОСТ. (Обработка останова), формируемых внешними устройствами. Если к моменту появления отрицательного фронта тактового импульса ТИ2 (ТИ2 представляет собой последовательность тактовых импульсов, сдвинутую по времени относительно основной тактовой последовательности TИl) на данном такте сигнал ГОТОВ будет иметь нулевой

логический уровень, то МП на такте ТТЗ переходит в режим ожидания. В этом режиме приостанавливается процесс обработки данных и формируется сигнал лог. 1 на выходе ОЖИДАНИЕ, подтверждающий это состояние. Длительность режима ОЖИДАНИЯ измеряется целым числом тактов и может длиться до появления уровня лог. 1 на входе ГОТОВ.

Втакте ТТ3 в момент отрицательного фронта сигнал ТИ1 производится запись данных во внутренний регистр кода команды. В такте ТТ4 дешифратор ДШК расшифровывает код команды и определяет последовательность ее исполнения. МП вводит второй байт команды в цикле ТЦ2 и данные с внешнего устройства в цикле ТЦ.

Всоответствии с этим в такте ТТ1 цикла ТЦ2 на МА формируется адрес следующей за кодом команды ячейки, на МД код соответствует слову состояния процессора, задающего

режим ввода данных. Такты ТТ1 и ТТ2 аналогичны этим же тактам цикла ТЦ1 с той лишь разницей, что здесь входные данные с магистрали МД записываются не в регистр команд РгК, а в регистр адреса РА.

Втакте ТТ1 цикла ТЦ3 на МА выставляется код внешнего устройства, записанный

впредыдущем цикле в регистр РА, на магистрали МД слово состояния процессора соответствует циклу ввода данных из внешнего устройства. В этом цикле от магистрали отключаются все блоки - ОЗУ, ПЗУ - кроме внешнего устройства, адрес которого сфор-

мирован на МА. Такты ТТ2 и ТТ3 аналогичны соответствующим тактам цикла ТЦ1. Отличие заключается в том, что информация с магистрали МД записывается в такте ТТ3 в регистр-аккумулятор А.

Формат 3 - трехбайтная команда, где второй и третий байты хранят либо 16-разрядное число, являющееся непосредственным операндом команды, либо 16-разрядный адрес операнда. В обоих случаях второй байт, то есть байт, следующий за байтом с кодом операции, хранит младшую часть непосредственного операнда или адреса, а третий байт - старшую часть. Например, трехбайтная команда LDА Х2, осуществляющая загрузку аккумулятора значением однобайтной переменной Х2, которая имеет шестнадцатеричный адрес 1248, выражается в виде шестнадцатеричного 3А 48 12. В этом числе вслед за кодом операции 3А записывается сначала младший байт адреса, а затем старший. Если второй и третий байты команды содержат непосредственный операнд, который подлежит занесению в пару регис-

Глава 3. Системы команд микроЭВМ

51

тров, то в результате выполнения команды содержимое второго байта её кода будет помещено в младший регистр пары, а содержимое третьего байта - в старший регистр. Например, после выполнения команды LXI В младший байт непосредственного операнда команды попадает в регистр С, а старший байт - в регистр В, являющийся в данной команде старшим.

В микроЭВМ Электроника-60, построенной на базе МП набора серии К581, имеется 9 форматов команд (рис. 3.11). DD - 6-разрядное поле приемника результата операции, SS - 6- разрядное поле источника данных, R - 3-разрядное поле для записи номера регистра общего назначения, XX - 6-ти и ХХХ - 8-ми разрядные поля для записи смещения.

Кроме того, N, Z, V и С - поля признаков результата. N=1 - результат отрицательный, Z=1 - результат равен нулю, V=1 - арифметическое переполнение, С=1 - перенос из старшего разряда или выдвинута “1” старшего или младшего разряда. В командах формата1 второе поле отведено для адресации операнда, причем этот операнд относится к приемнику. Исключением является команда МТРS, реализующая запись информации в слово состояния процессора. В этой команде второе поле используется для адресации операнда-источника. Операнд при этом содержит подлежащую записи информацию.

Формат 2 соответствует двухоперандным командам. В зависимости от режимов адресации операнда-источника и операнда-приемника команды этого формата могут быть однословными - в регистровом режиме адресации обоих операндов, двухсловными и трехсловными.

По формату 3 функционирует единственная команда XOR, реализующая операцию «исключающее ИЛИ». В зависимости от режима адресации операнда-приемника команда может быть однословной или двухсловной.

Формату 4 подчиняются однословные команды ветвления. В 8-разрядном поле смещения (поле XXX) записывается в дополнительном коде значение смещения, выраженное в словах, относительно адреса команды ветвления. Как уже отмечалось при обсуждении режимов адресации микроЭВМ Электроника-60, смещение может принимать значения от - 128 до +127 слов.

Формату 5 подчиняется единственная однословная команда RTS, реализующая возврат из подпрограммы. В поле R должен находиться номер регистра общего назначения, содержащего адрес возврата.

Формат 6 отличается от формата 4 лишь длиной поля смещения. Формату соответствует единственная команда МАRК, восстанавливающая указатель стека во время выхода из подпрограммы.

Формату 7 соответствует единственная однословная команда SOB, осуществляющая вычитание единицы из содержимого регистра, указанного в поле R, и ветвление, если после вычитания содержимое регистра будет отлично от 0.

Команды Формата 8 используются для установки или сброса признаков N, Z, V, С в слове состояния процессора. При установке или сбросе одного из признаков соответствующее ему поле в коде команды содержит 1. Фактически в командах формата 8 отсутствуют операнды, так как мнемоническое обозначение операции определяет собой код операции, а также и состояние полей N, Z, V и С.

Команды формата 9 не содержат полей для адресации операндов. Этому формату подчиняются команды управления прерыванием IOТ, ЕМТ, ТRАР, ВRТ, а также специальные команды HALT, WAIT, RESET, RTI, RTT, NOP.

Сопоставим систему команд микроЭВМ Электроника-60 с системой команд одной из наиболее совершенных моделей известного семейства миниЭВМ PDP-11/70. В системе команд микроЭВМ Электроника-60 отсутствуют команды для выполнения операций над числами с плавающей точкой. В миниЭВМ РDР-11/70 имеется 46 команд для этой цели. Все остальные команды миниЭВМ PDP называются базовыми командами. Множество команд

Глава 3. Системы команд микроЭВМ

52

микроЭВМ Электроника состоит из подмножества множества базовых команд названной миниЭВМ, а также команд NOP, NFPS и МТРS. Последние три команды отсутствуют в мно жестве команд миниЭВМ. Эти обстоятельства следует учитывать при переносе программ с миниЭВМ на микроЭВМ и наоборот.

1

 

 

КОП

 

 

 

 

 

DD или SS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

6

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

КОП

 

SS

 

 

 

DD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12 11

 

 

 

6

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

КОП

 

 

R

 

 

 

DD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

9

8

 

6

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

КОП

 

 

 

 

DD или SS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

8 7

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

КОП

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

3

2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

КОП

 

 

 

 

 

 

XX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

6

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

КОП

 

 

R

 

 

 

XX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

9

8

 

6

5

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

КОП

 

 

 

 

 

N Z V C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

5

4

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

КОП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

0

Рис. 3.11. Форматы команд микроЭВМ Электроника-60 на базе МП К581

Рассмотрим систему и форматы команд МП серии К1810, 16-разрядного, однокристального. Эта система является расширенным множеством системы команд МП серии К580

Глава 3. Системы команд микроЭВМ

53

и включает в себя 109 команд. Почти все команды могут работать как с однобайтовыми данными, так и с машинным словом длиной 2 байта. Указание на работу с той или иной длиной данных содержится в формате команды.

Так же как и для МП БИС КР580ИК80, систему команд МП БИС К1810ВМ86 можно представить в двух видах: на языке Ассемблера и в машинных кодах. На языке Ассемблера она представляет собой 100 различных типов команд. Например, команда МОV используется для передачи байта данных или машинного слова, размещенных в памяти регистра или сообщаемых в самой команде, по указанному адресу в память или регистр. В машинных кодах в зависимости от источника данных и места назначения команда MOV имеет 28 различных кодов. Как правило, при разработке программ программист записывает программу на языке Ассемблера, а дальнейший ее перевод на язык машинных кодов осуществляется с использованием различных трансляторов языка.

Команды МП К1810ВМ86 занимают в памяти от 1 до 6 байт. 1-й байт команды содержит код операции. В некоторых командах код операции размещается и во втором байте. На рис. 3.12 приведен обобщенный формат типичной команды МП К1810. Первые 6 разрядов в многобайтных командах представляют собой код самой команды. Разряд D (от англ. direction - направление) обычно определяет направление команды, при этом если разряд D=1, то регистр, указанный в разрядах REG 2-го байта, определяется как приемник результата выполнения команды, а если D=0, то указанный регистр является источником информации. Одноразрядное поле W имеется в подавляющем большинстве команд и определяет разрядность операндов: если W=l, то 16-разрядные, если W=0, то 8-разрядные. Поля МОD и R/М 2-го байта команды определяют один из 24 режимов формирования относительного адреса операнда в сегменте памяти, содержащем данные, или в сегменте стека. Поля В3 и В4 определяют одноили двухбайтовое смещение в команде. Если смещение однобайтовое, то производится его знаковое расширение до 2-х байт, то есть значение всех разрядов 2-го байта устанавливается равным значению старшего разряда исходного байта.

Код

D W MOD

REG

 

Мл. байт

Ст. байт

Мл. байт Ст. байт

коман-

R/M

смещения/

смещения/

данных

данных

ды

 

 

 

данные

данные

 

 

B1

 

 

B2

B3

B4

B5

B6

1-ый

 

 

 

 

 

 

 

байт

 

 

 

 

 

 

 

Рис. 3.12. Формат команд и данных МП К1810ВМ86

Поля R/M (при D=11) и REG определяют регистр общего назначения (РОН), поля В5 и В6 - одноили двухбайтовые непосредственные данные.

Приведенный формат типичных команд отражает их симметричность при использовании операндов. Действительно, при одном и том же коде операции, меняя значения полей REG, МОD, R/M, можно в качестве операндов использовать содержимое любого из РОН или памяти. Однако в формировании исполнительного адреса смещения в сегменте каждый из регистров в МП K1810 имеет индивидуальное назначение. Это способствует сокращению потенциальных ошибок в выполнении соглашений о связях между программами, где даже в случае универсальности регистров большинство из них имеют специальное назначение.

Кроме типичного формата, в МП К1810ВМ86 реализована группа команд с упрощенным форматом, которые осуществляют наиболее часто применяемые операции. По быстро-