Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
184.01 Кб
Скачать

18) Принудительная адресация микрокоманд. Применение.

Существуют два вида адресации микрокоманд:

  • принудительная адресация;

  • естественная адресация.

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

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

Структура процессора с принудительной адресацией

Процесс выполнения команд процессором следующий: в начальный момент в

регистр команд (РК) заносится адрес первой выполняемой команды (по сигналу

“Сброс” или “Пуск” или каким либо иным способом). По этому адресу считываются

команда, которая содержат код операции (КОП), адрес операнда (Аоп), а так же

адрес следующей команды (Аск). Поле КОП команды поступает на схему

формирования управляющих сигналов (ДшКОП- дешифратор КОП) которая

вырабатывает нужную последовательность управляющих сигналов y1...yn,

необходимых для выполнения команды в процессоре.

Адрес операнда через РА задает номер ячейки ОП, в которой он хранится.

Операнд, считанный из ячейки памяти с заданным адресом, поступает на

обработку в АЛУ.

Рассмотрим следующий пример. Положим, что процессор имеет следующую систему

команд в машинных кодах (для более краткой записи представим ее в

шестнадцатеричной системе счисления):

01H- вызов операнда из ОЗУ в аккумулятор;

02H- запись содержимого А в ОЗУ;

1АH - команда сложения;

00H – остановка выполнения программы.

Пусть необходимо составить программу сложения 2-х чисел, находящихся в

ячейках ОЗУ с адресами 0841H и 0842H и записать результат в ячейку 0843H.

Программа хранится в ячейках памяти с начальным адресом 1300H. Ширина выборки

команд и данных из ОЗУ - 1 байт.

№ яч

КОП

Аоп

Аск

Комментарий

1300

01

0841

1305

Вызов 1-го операнда из ОЗУ и переход к считыванию следующей команды из ячейки ОП с номером 1305H.

1305

0842

130А

Вызов 2-го операнда, сложение и переход к считыванию следующей команды из ячейки ОП с номером 130АH.

130А

02

0843

130F

Запись результата в ОЗУ и переход к ячейке 130FH.

130F

00

0000

0000

Остановка.

19) Способы адресации операндов и команд.

Большинство команд процессора вполняются с аргументами, которые принято называть операндами.

1. Регистровая адресация

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

2. Непосредственная адресация

Некоторые команды (все арифметические команды, кроме деления) по­зволяют указывать один из операндов непосредственно в тексте про­граммы.

3. Прямая адресация

Если известен адрес операнда, располагающегося в памяти, можно ис­пользовать этот адрес.

4. Косвенная адресация

По аналогии с регистровыми и непосредственными операндами адрес операнда в памяти также можно не указывать непосредственно, а хранить в любом регистре.

5. Адресация по базе

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

6. Косвенная адресация с масштабированием

Этот метод адресации полностью идентичен предыдущему, за исключе­нием того, что с его помощью можно прочитать элемент массива слов, двойных слов или учетверенных слов, просто поместив номер элемента в регистр

7. Адресация по базе с индексированием и масштабированием

Это самая полная возможная схема адресации, в которую входят все случаи, рассмотренные ранее, как частные.

20) Сегментная и страничная адресации памяти

Страничная память

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

В самом простом и наиболее распространенном случае страничной организации памяти как логическое адресное пространство, так и физическое представляются состоящими из наборов блоков или страниц одинакового размера. При этом образуются логические страницы, а соответствующие единицы в физической памяти называют физическими страницами или страничными кадрами. Страницыимеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться.

Логический адрес в страничной системе – упорядоченная пара (p,d), где p – номер страницы в виртуальной памяти, а d – смещение в рамках страницы p, на которой размещается адресуемый элемент. Заметим, что разбиение адресного пространства на страницы осуществляется вычислительной системой незаметно для программиста. Поэтому адрес является двумерным лишь с точки зрения операционной системы, а с точки зрения программиста адресное пространство процесса остается линейным.

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

Сегментная и сегментно-страничная организация памяти

Сегменты, в отличие от страниц, могут иметь переменный размер. Идея сегментации изложена во введении. При сегментной организации виртуальный адрес является двумерным как для программиста, так и для операционной системы, и состоит из двух полей – номера сегмента и смещения внутри сегмента

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

Каждый сегмент – линейная последовательность адресов, начинающаяся с 0. Максимальный размер сегмента определяется разрядностью процессора (при 32-разрядной адресации это 232 байт или 4 Гбайт). Размер сегмента может меняться динамически (например, сегмент стека). В элементе таблицы сегментов помимо физического адреса начала сегмента обычно содержится и длина сегмента. Если размер смещения в виртуальном адресе выходит за пределы размера сегмента, возникает исключительная ситуация.

Логический адрес – упорядоченная пара v=(s,d), номер сегмента и смещение внутри сегмента.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]