Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

15

*)

Гб

*8 6 5

Номер регист­

ра

б)

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

КОп

15

в)

ьэ

Адресное

КОп

Источник

Приемник

приращение

или операнд

he командное слабо

2-е командное слобо

  1. е команбное слобо

  2. е команбное слобо

  3. е команбное слобо

Адресное I праращение I или оперинб I

Адресное приращение или операнб

Источник

КОп

Приемник

Ж) * ” * '

т' 76 76

Рис. 9.17. Форматы команд 16-разрядных малых и микроЭВМ

помещается по второму адресу. Поэтому первое адресное поле называется «Адрес источника», или Источник, а второе — «Ад­рес приемника», или Приемник.

Адресные поля разбиваются на две части: в правых трех разрядах указывается номер регистра, а в левых — тип адреса-

Таблица 9.2. Основные типы адресации (малая ЭВМ СМ-1420 и микроЭВМ «Электроника-60»)

УА

Мнемоника

Описание

Тип адресации

Rn @ Rn (Rn) +

(Ля) +

-(Rn)

)-(Rn)

X (Rn)

® X (Rn)

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

Регистровая кос­венная

Автоинкрементная

прямая

Автоинкрементная

косвенная

Автодекрементная

прямая

Автодекрементная

косвенная

Индексная прямая

Индексная косвен­ная

В Rn (регистре с номером п) операнд

В Rn адрес операнда

Содержимое Rn используется как адрес операнда, затем перед выполнением команды увеличи­вается на 1 (при операциях с бай­тами) или на 2 (при операциях со словами)

Содержимое Rn используется как адрес адреса операнда, затем перед выполнением команды со­держимое Rn увеличивается на 2 Содержимое Rn уменьшается на 1 или 2, затем новое содержи­мое Rn используется как адрес операнда Содержимое Rn уменьшается на 2, затем новое содержимое Rn используется как адрес адреса операнда

Содержимое Rn (индекс) сум­мируется с приращением X, нахо­дящимся в следующей за первым или вторым словом команды ячей­ке памяти; полученная сумма ис­пользуется как адрес операнда. Содержимое СчК (регистра 7) увеличивается на 2 сразу после извлечения X Содержимое Rn (индекс) сум­мируется с приращением X, нахо­дящимся в следующей за первым или вторым словом команды ячей­ке памяти; полученная сумма ис­пользуется как адрес адреса операнда. Содержимое СчК (ре­гистр 7) увеличивается на 2 сразу после извлечения X

Примечания: 1. Используется мнемоника ассемблера ЭВМ СМ-1420; Rn — номер регистра в адресном поле.

2. При индексации значение X помещается ассемблером во второе или третье слово команды. Если индексную адресацию имеет только один операнд, применяется двухсловная команда со вторым адресным словом. Если оба опе­ранда имеют индексную адресацию, используется трехсловная команда, причем для адресации источника используется второе, а для приемника третье (адрес­ное) слово.

Таблица 9.3. Дополнительные типы адресации при использовании СчК (регистра 7) в качестве общего регистра

Мнемо­

ника

Используемый основной тип адресации

Получаемый дополнитель­ный тип адресации

ФА

Автоинкре­ментная пря­мая с R7

Непосред­

ственная

@фА

Автоинкре­ментная кос­венная с R7

Абсолютная

А

Индексная Прямая с R7

Относитель­

ная

Индексная косвенная с R7

Относитель­ная косвен­ная

УА

Описание

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

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

ции (указатель адресации У А), как это показано на рис. 9.17, а, б, г. Типы адресаций Источника и Приемника за­даются независимо и могут отличаться друг от друга. Команды в зависимости от местоположений операндов, определяющих число обращений к основной памяти, можно разбить на три типа: а) регистр — регистр; б) регистр — память, в) память — память. Следует подчеркнуть, что в команде адрес операнда в памяти не указывается, так как в этом случае используется косвенная адресация. Результат выполнения команд типа ре­гистр — память в зависимости от кода команды может образо­вываться в регистре или ячейке памяти (в ЕС ЭВМ в подобном случае результат всегда помещается в регистр).

Многие операции могут выполняться как со словами, так и с байтами в зависимости от значения 15-го разряда кода ко-

манды. Двухадресные команды сложения и вычитания выпол­няют операцию только со словами.

Среди одноадресных отметим команды «Инкремент» и «Дек­ремент», соответственно увеличивающую и уменьшающую со­держимое приемника на 1. Имеется большой набор команд условного перехода по результату предыдущей операции: пере­ходы по равенству 0, неравенству 0, плюсу, минусу, перепол­нению, отсутствию переполнения, переносу, отсутствию перено­са, больше или равно 0, меньше 0, (дольше 0, меньше и равно

  1. В командах условного и безусловного переходов (рис. 9.18, в) старший байт содержит код операции, а младший — 8-разряд- ное смещение (число со знаком). Адрес перехода формируется следующим образом: знак смещения копируется в разрядах 8—15, полученное 16-разрядное слово умножается на два и складывается с содержимым счетчика команд, при этом оказы­вается возможным переход относительно СчК до 1778 слов Вперед и до 200в слов назад. Кроме упомянутой команды бе­зусловного перехода имеется команда абсолютного безусловного перехода (имеет формат и способ задания адресации, как у од­ноадресных команд), позволяющая передавать управление ко­манде в любой ячейке памяти.

Следует обратить внимание на команды и процедуры с ис­пользованием механизма стековой памяти. Команда перехода к подпрограмме, имеющая формат, показанный на рис. 8.15, г, в поле приемника задает адрес начала подпрограммы, а в разря­дах 6—8 — номер регистра /?, который будет использоваться для хранения адреса возврата к основной программе. Процедура выполнения команды начинается с уменьшения содержания ука­зателя стека на 2 и передачи для сохранения в стек содержимого регистра R. Затем в регистр R передается содержимое СчК (адрес возврата), а в СчК поступает адрес приемника (адрес подпрограммы). В команде возврата из подпрограммы (рис. 9.17, д) указывается номер регистра, использованного при переходе к подпрограмме для адреса возврата.

При выполнении команды из этого регистра адрес возврата передается в СчК, и исходное содержимое регистра восстанавли­вается из стека.

На рис. 9.17, в и ж представлены форматы команд, имеющие длину соответственно два и три слова (табл. 9.2 и 9.3).

Сопоставление описанной в настоящем параграфе системы команд с командами ЕС ЭВМ позволяет заключить, что в рас­сматриваемых малых и микроЭВМ реализуются команды типов RR, RX, RS, SS, SI, что оказывается возможным благодаря наличию в командах полей У А, определяющих функции, выпол­няемые указанными в команде общими регистрами.

Рассмотрим на примере ЕС ЭВМ структуры команд совре­менных ЭВМ общего назначения. Системы команд этих машин содержат около 200 различных команд, обеспечивающих про­граммирование разнообразных научных, экономических и техни­ческих задач высокой степени сложности. Эти системы команд позволяют работать с различными видами и форматами инфор­мации (двоичные и десятичные числа, алфавитно-цифровые дан­ные, числа с фиксированной и плавающей точками, слова фикси­рованной и переменной длины). Используемые в ЕС ЭВМ II оче­реди форматы информации приведены в гл. 2.

Команды имеют длину в одно, два и три полуслова (2, 4, 6 байт). Результат операции, как правило, помещается на место первого операнда.

В ЕС ЭВМ II очереди имеется шесть основных форматов команд, представленных на рис. 9.18.

L Формат «грегистррегистр» RR. В этом формате пред­ставляются короткие двухбайтные команды, выполняющие опе­рации над содержимым общих регистров или регистров с плава­ющей точкой, номера которых указаны в полях Ri (первый операнд) и R2 (второй операнд) команды.

  1. Формат «регистриндексируемая ячейка» RX. Команда занимает 32-разрядное слово (4 байта). Первый операнд— содержимое общего регистра (или регистра с плавающей точ­кой, указанного в поле R1), второй — содержимое ячейки ОП. Адрес этого операнда определяется содержимым базового В2 и индексного Х2 регистров и смещением L>2.

  2. Формат «регистрпамять» RS. Команда также зани­мает слово (4 байта). Поля Ri и /?з определяют номера ре­гистров, содержащих первый и третий операнды; В%, D2 — адрес второго операнда в памяти. Формат RS, в частности, использует­ся для команд групповой передачи данных из группы регистров в группу ячеек ОП и обратно. В этом случае поля Ri и /?з задают первый и последний регистры в группе регистров с последова­тельными номерами, участвующих в передаче.

  3. Формат «памятьнепосредственный операнд» SI. Ко­манда занимает слово (4 байта). Адрес первого операнда, на­ходящегося в ОП, задают поля Ви Du а второй операнд /2 рас­полагается непосредственно в самой команде. Оба операнда имеют длину 1 байт.

  4. Формат S. Команда занимает слово (4 байта). Первый операнд или его адрес подразумевается, второй находится в ОП.

  5. I

    Формат «памятьпамять» SS. Команды имеют длину три полуслова (6 байт). Они применяются для операций над

Полуслово

Полуслово

Полуслово

о Байт 7

1 Вайт 13

,6 Байт гз

** Байт 31

33 Байт 39

Байт

КОп

*1

0 7 8 1112 15

КОП

м

*

КОп

г

Формат] RR

Непосредственный операнд в команде

КОп

Формат RX '

7 в 11 12 15 16 13 го

UL

КОп

Команда условного перехода

Формат

RS

Трехадресная команда

ж

КОп