Сегментная адресация в реальном режиме.




Реальный режим работы процессора это режим, в котором работало первое поколение процессоров (i8086, i8088), любой современный процессор после включения питания начинает работать в реальном режиме и только потом программно переводится в защищенный режим.

Для работы с памятью используются две шины - шина адреса и шина данных. Физически память устроена таким образом, что возможна адресация как 16-битовых слов, так и отдельных байтов памяти. Кроме того, процессоры начиная с i80386 могут адресовать 32-битовые слова памяти.

В любом случае так называемый физический адрес передаётся из процессора в память по шине адреса. Ширина шины адреса определяет максимальный объём физической памяти, непосредственно адресуемой процессором. Для 20-разрядной адресной шины процессора i8086 используется двадцать двоичных (или пять шестнадцатеричных) разрядов. Однако все регистры этого процессора являются 16-разрядными. Возникает проблема представления 20-разрядного физического адреса памяти при помощи содержимого 16-разрядных регистров. Максимальное число (данное или адрес), которое можно записать в 16-разрядный регистр, составляет всего 216 - 1 = 65535, или 64Кб-1 из нужного нам одного мегабайта.

Для разрешения этой проблемы используется двухкомпонентный логический адрес. Логический адрес состоит из двух 16-разрядных компонент. Такой способ называется сегментной адресацией памяти.

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

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

Рисунок 17 Образование физического адреса из сегментного адреса и смещения.

Покажем как вычисляется физический адрес–для получения 20-разрядного физического адреса к сегментной компоненте (заносящейся в сегментный регистр) приписывается справа четыре нулевых бита (для расширения до 20 разрядов), затем полученное число складывается с компонентой смещения. Перед сложением к компоненте смещения слева дописывается четыре нулевых бита (также для расширения до 20 разрядов). Эту процедуру иллюстрирует рисунок 18

Р исунок 18. Вычисление физического адреса в реальном режиме.

Логический адрес принято записывать в шестнадцатеричной форме в виде <сегмент: смещение>.

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

1. расширяем до 20 бит сегментную компоненту, дописывая справа 4 нулевых бита, получаем число 12340h;

2. расширяем до 20 бит компоненту смещения, дописывая слева 4 нулевых бита, получаем число 00123h;

3. для получения физического адреса складываем полученные числа: 12340h + 00123h = 12463h.

 

18. Особенности базирования адресов в процессоре Intel. (Сегментирование и вычисление процессором физического адреса).

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

· регистрах общего назначения;

· непосредственно в коде команды;

· ячейках памяти, задаваемых в команде прямо или косвенно;

· портах ввода - вывода.

Для указания месторасположения операнда используются 7 режимов адресации.

Директивы описания данных

mem1 DW 0

mem2 DW 0

mem3 DW 0

vec1 DB 8,7,6,5,1,2,3,4

vec2 DB -30,-40,30,40,-10,-20,10,20

matr DB -1,-2,-3,-4,8,7,6,5,-5,-6,-7,-8,4,3,2,1

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

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

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

mov ax,n1

mov cx,ax

mov bl,EOL

mov bh,n2



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: