Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структура VAX-11



Структура VAX-11представлена на рис. 4.5.

Процессор соединен с оперативной памятью и сервисным сопроцессором через быстродействующий локальный интерфейс, а с внешними устройствами – через два стандартных интерфейса " Unibus" (для медленнодействующих устройств) и Masbus (для быстродействующих устройств).

Сервисная система на основе РС используется системным оператором и инженером для управления и тестирования системы.

Регистровый файл – шестнадцать 32-разрядных регистров общего назначения (рис.4.6)

Регистры с нулевого по одиннадцатый не специализированы.

Регистры 12 и 13 по умолчанию используются для передачи параметров в подпрограмму.

Регистр 14 по умолчанию используется как указатель аппаратного стека (SP). Используется в процедурах прерывания.

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

  31 0
  РОН
  РОН
  РОН
  Указатель аргумента
  Указатель пространства
  Указатель аппаратного стека SP
  Счетчик команд PC
  Рис. 4.6. Регистры общего назначения

Операнды:

· B (байт) = 8 бит,

· W (слово) = 16 бит,

· L(двойное слово) = 32 бит,

· Q(учетверенное слово) = 64 бит.

Структура обозначения кода операции (на языке ассемблера):

Операция½разрядность операнда.

Примеры:

· MOVB – пересылка байт,

· MOVW – пересылка слова,

· MOVL– пересылка двойного слова,

· MOVQ – пересылка учетверенного слова.

Команды могут быть: безадресные (адрес задается неявно кодом операции), двухадресные и трехадресные. Код операции в трехадресных командах (ассемблера) помечается цифрой 3.

Примеры:

ADDL A1, A2;сложение двойных слов (двухадресный вариант)

ADDL3 A1, A2, A3;сложение двойных слов (трехадресный вариант).

Команды содержат код операции и до трех полей адреса (рис.4.7.).

Функции кода операции:

· задает операцию,

· задает размер операнда,

· задает количество адресов.

Поле адреса задает адрес операнда.

Каждое поле адреса содержит одну или две спецификации.

Спецификация – это "1-й байт" и, возможно, смещение (до 4 байт).

"1-й байт" содержит поле номера режима задания адреса (первые 4 бита) и поле номера РОНа (вторые 4 бита), содержимое которого используется при формировании адреса операнда.

Режимы адресации адреса

Короткий операнд. Номера режима от 0000 до 0011 интерпретируются как старшие цифры короткого непосредственного операнда (число со знаком), младшими цифрами которого являются цифры поля номера РОНа:

0000ХХХХ

0001ХХХХ

0010ХХХХ

0011ХХХХ,

где Х- цифры поля номера РОНа.

Пример:

Команда на ассемблере:

movW # –5, R1; пересылка слова FFFB (–5) в R1

Запись числа –5 в байте режима: 00 1 1 1011. Цифра, выделенная подчеркиванием – знак короткого литерала (числа).

0100 – индексная адресация. Используется для адресации элементов одномерного массива. Адрес элемента массива вычисляется как:

Адрес элемент массива = База + Индекс ´ размер операнда (в байтах), где:

· База – базовый адрес массива. Задается полями второй спецификации. При этом для задания базового адреса массива может использоваться любой режим, кроме индексного и короткого литерала.

· Индекс (номер элемента массива) – это содержимое РОНа, заданного полем номера РОНа в первой спецификации поля адреса.

· размер операнда (элемента массива – 1, 2, 4, 8 байт) задается кодом операции.

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

Пример: MOVQ #27[R2], R0 – скопировать в R0 учетверенное слово
(Q – 8 байт) по адресу, равному 27 (базовый адрес, заданный коротким операндом) плюс содержимое R2 (индекс), умноженное на длину операнда (8 байт), т.е. адрес источника вычисляется как 27+R2´8.

Индексная адресация – это единственный случай, когда для задания операнда используются две спецификации. Поле адреса в этом случае может содержать максимально возможное число байт – 6 (один байт в первой спецификации и пять байт – первый байт и 4 байта смещения – во второй спецификации).

Индексная адресация может использовать в качестве базового адреса массива (во второй спецификации) все виды адресации, указанные ниже.

0101 – регистровая адресация – R1. Операнд находится в РОНе (R1), заданном полем номера РОНа в первом байте первой спецификации адресного поля. Для операнда используется только один байт – первой байт первой спецификации.

0110 – косвенно-регистровая адресация – (R1). Адрес операнда определяется содержимым РОНа, заданного полем номером РОНа в первом байте первой спецификации адресного поля. Для операнда используется только один байт – первой байт первой спецификации.

0111 – автоинкрементная адресация(R1)+. Адрес операнда определяется содержимым РОНа, заданного полем номера РОНа в первом байте первой спецификации адресного поля. После использования адреса, содержимое указанного РОНа увеличивается на длину операнда (в байтах). Для задания операнда используется только один байт – первый байт первой спецификации.

1000 –косвенная автоинкрементная адресация – @(R1)+. Адрес адреса операнда определяется содержимым РОНа, заданного полем номера РОНа в первом байте первой спецификации адресного поля. После использования адреса содержимое указанного РОНа увеличивается на четыре байта (размерность адреса). Для задания операнда используется только один байт – первый байт первой спецификации.

1001автодекрементная адресация – -(R1). Содержимое заданного полем номера РОНа в первом байте первой спецификации адресного поля уменьшается на длину операнда (в байтах), после чего используется в качестве адреса операнда. Для задания операнда используется только один байт – первый байт первой спецификации.

В отличие от адресации операндов в процессоре PDP-11, в VAX-11 не используется косвенная автодекрементная адресация.





Дата публикования: 2014-11-03; Прочитано: 934 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...