Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [ 57 ] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Типичным является формат, содержащий четыре поля: поле метки, поле кода операции, поле операнда и комментарий. Эти поля отделяются разделителями [53].

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

Основные способы адресации

Способы адресации удобно рассмотреть на примере макроассемблера, используемого для микроЭВМ Электроника-60 , система адресации которой содержит почти все используемые в микроЭВМ методы адресации.

Метод адресации -5-и региапр

IS 65 32

Операнд

Код операции Номер регистра

Рис. 6.1.

Программный счетчик (PC) всегда содержит адрес следующего слова, которое должно быть выбрано нз памяти. Это может быть адрес следующей 16-битовой инструкции или адрес 2-го или 3-го слова текущей, обрабатываемой двух- или трехсловной инструкции. Для описания способов адресации используются следующие обозначения: Е - любые выражения, значениями которых может быть 16-разрядная двоичная величина (выражение может быть абсолютное, перемещаемое, внещнее или глобальное или комплексное перемещаемое); R - регистровое выражение, т. е. любое выражение, содержащее терм с лидирующим символом % или символ, сопоставленный такому терму (например, R0 = % 0); ER - регистровое выражение или абсолютное, выражение, значение которого находится в диапазоне от О до 7; А - общая адресная спецификация, которая- определяет 6-битовое адресное поле и описывается в терминах выражений Е, R или ER.

Регистровый способ адресации. Операнд, используемый в операции, размещается в регистре. Номер регистра указывается в инструкции, например, R3 = % 3; CLR R3. Символ R3 получает значение выражения % 3 (т. е. номер 3-го регистра). Это значение используется в поле операнда инструкции CLR, которая выполнит очистку 3-го регистра. Команда транслируется в одно 16-разрядное слово, которое содержит код операции, указание на способ адресации и номер регистра (рис. 6.1).

Косвенный регистровый способ адресации. Содержимое регистра определяет адрес операнда, используемого для выполнения инструкции. Формат для А: OJR или (ER). Примеры команд: CLR C0R1, CLR (R1), CLR (I). На рнс. 6.2 представлена структура мащинной команды, полученной после трансляции инструкции MOV а R3, a)R2.



Автоинкрементный способ адресации. Содержимое регистра (ER) увеличивается на 2, после того, как было использовано инструкцией в качестве адреса операнда. Формат для А: (ER)+. Пример команды: GLR {R0)+. Также как и остальные машинные команды, инструкция CLR{R1)+ после трансляции содержит код операции, адрес операнда и указание на способ использования этого операнда {рис. 6.3).

Автоинкрементная косвенная адресация. Регистр (ER) содержит указатель на адрес операнда. Содержимое регистра увеличи-

Метод адресации

1211 9 8

Код операции Номера регистров

85 52 О

PeaucmpZ

АВрес , операнда

Ячейка ОЗУ

Операнд г

PeeixmpS

Ячейка ОЗУ

операнда

Операнд i

Рис. 6.2.

Шлод адресации

1-й регистр

Код операции

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

Рис. 6.3.

Адрео 01

черанда

Ячейка ОЗУ

Метод адресации

3-й регистр

Код операции Ячейка ОЗУ

Номер региащ

Операнд

> Указатель

на адрео

Ячейка 0

- Адрес операнда

Рис. 6.4.

вается на 2 после того, как оно было использовано в качестве указателя. Формат для А: О) (ER)-J-. Пример команды: CLR Й) (R3)-f. Содержимое 3-го регистра является указателем на адрес операнда. Ячейка, содержащая операнд, будет очищена, а содержимое регистра увеличено на 2 (рис. 6.4).

Автодекрементная прямая и автодекрементиая косвенная адресации. Они отличаются от предыдущих двух способов адресации только тем, что содержимое регистра уменьшается на 2 до того, как будет обрабатываться операнд. Формат для А: -(ER) автодекрементиая адресация; 3) -(ER) - автодекрементная косвенная адресация.

Индексная адресация. Значение выражения (Е) содержится во 2-м или 3-м слове выполняемой инструкции. Эффективный адрес операнда определяется сложением значения выражения Ее содержимым регистра ER. Значение выражения Е является смещением,



а содержимое регистра ER представляет базу. Формат для А: Е (ER). Примеры инструкций: CLR X + 2 (R1), MOV RO, -2 {R3).

Адрес операнда для первой инструкции определяется суммой значения выражения X + 2 и содержимым 1-го регистру. Адрес приемника второй инструкции - 2 пЛюс содержимое Э-го регистра (рис. 6.6).

Индексная косвенная адресация. Сумма значения выражения (Е) и содержимого регистра (ER) определяет указатель на адрес

1-е слово wicmpifujfuu

ШпоЗ аЗресации:

реестровый индексный

\о I и \о'Л

Щ 12(191 т операции

I 0,1 b\s,<\--Г

в tf tT~~b в

2-е слово инструкции

Я-й регистр База

\-----0

О-й регисяф

Операнд t

операнда

ЯчейкаОЗУ

Операг02

Рис. 6.5.

t-e слово WKtiKUjua

Штод с^ресСЦиш^непождстВеиНый

Регистр 1


2-е слово инструкции

р^тчик ноианд)

Рис. 6.6.

операнда. Формат для А: СОЕ (ER). Пример инструкции: CLR о) 114 (R4). Если содержимое регистра 4 - величина 300, то значение 414 определяет указатель на адрес операнда. В том случае, если содержимое ячейки 414 - величина 1000, то команда CLR выполнит очистку именно этой ячейки.

Непосредственная адресация. Непосредственная адресапия обеспечивает хранение операнда (Е) во 2-м или в 3-м слове инструкции (рис. 6.6). Этот способ адресации является модификацией автоинкрементного способа. В качестве регистра адреса используется регистр команд. Формат для А: tt Е. Примеры инструкций: MOV 4Ф 10, R0, MOV # X, R1. Первая инструкция выполняет пересылку величины 10 в регистр 0. Во второй инструкции значение, соответствующее символу X, пересылается в регистр 1,



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [ 57 ] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95