Главная страница
Навигация по странице:

  • Сегментация памяти в процессоре.

  • МПС РГР АВТ-409 Журкин. Министерство образования и науки российской федерации новосибирский государственный технический университет


    Скачать 0.76 Mb.
    НазваниеМинистерство образования и науки российской федерации новосибирский государственный технический университет
    Дата23.05.2018
    Размер0.76 Mb.
    Формат файлаdocx
    Имя файлаМПС РГР АВТ-409 Журкин.docx
    ТипДокументы
    #44641
    страница3 из 6
    1   2   3   4   5   6

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


    Прямая адресация. В данном случае 16-битный эффективный адрес операнда данных является частью команды.

    Регистровая адресация. При этом операнд данных содержится в определяемом командой регистре. 16-битный операнд может находиться в регистрах AX, BX, CX, DX, SI, DI, SP или BP, а 8-битный - в регистрах AH, AL, BH, BL, CH, CL, DH, DL.

    Регистровая косвенная адресация. Тогда эффективный адрес операнда данных находится в базовом регистре BX или индексном регистре (SI или DI).

    Непосредственная адресация. Тогда операнд данных является частью команды.

    Стековая адресация. Стековая адресация в i8086 применяется в командах работы со стеком PUSH и POP. Для этих команд адрес операнда находится в указателе стека SP и автоматически уменьшается или увеличивается на два при записи в стек или при чтении из стека. Заполнение стека происходит в направлении уменьшения адресов ячеек памяти. Стек может обмениваться данными с регистрами общего назначения и сегментными регистрами.

    Базовая адресация. При базовом способе адресации исполнительный (эффективный) адрес ЕА получается путем сложения содержимого одного из регистров (BX или BP) с 8-ми или 16-ти разрядным смещением. Базовая адресация обеспечивает возможность работы со структурами данных, размещенными в памяти.

    Индексная адресация. Индексная адресация в микропроцессоре i8086 отличается от базовой только использованием для получения исполнительного адреса содержимого регистров SI или DI. Этот вид адресации удобен при обработке массивов, когда смещение указывает базовый адрес массива, а содержимое индексного регистра соответствует индексу массива.

    Базово-индексная адресация. При этом эффективный адрес равен сумме содержимого базового (BX или BP) и индексного (SI или DI) регистров.

    Относительная адресация. При относительной адресации исполнительный адрес ЕА вычисляется как сумма текущего значения содержимого счетчика команд и смещения в команде. В i8086 в роли счетчика команд выступает указатель команд IP, а 8- или 16-разрядное смещение представляет собой числа со знаком в диапазоне от -128 до +127 или от -32768 до +32767 соответственно.
    Относительная адресация используется в i8086 только в командах переходов, обращения к подпрограммам и управления циклами.
    Для вычисления исполнительного адреса команды берется значение содержимого указателя команд, равное адресу первого байта следующей команды.

    7. Организация памяти


    Процессор формирует 20 - битовый адрес для памяти, в которой расположены необходимые данные. Память организована как линейный массив и может содержать до 1M байта, адресуемые с 00000(H) по FFFFF(H). Память логически подразделена на разделы: код операций, данные, дополнительные данные, и сегменты стека, величина каждого раздела до 64K.(Рисунок 3.)

    Чтобы обеспечить гибкую базовую адресацию и индексирование, адрес данных формируют путем сложения содержимого регистров BX или BP, содержимого регистров SI или DI и смещения. Результат вычислений называют эффективным адресом.



    Рис 3.

    Так как регистры, участвующие в формировании адреса имеют длину всего 16 бит, поэтому и эффективный адрес имеет такую же длину. Но с другой стороны, выдаваемый на шину адреса физический адрес должен содержать 20 бит. Дополнительные 4 бита образуются при сложении содержимого регистров.

    Сегментация памяти в процессоре.

    В микропроцессоре I8086 память разбивается на сегменты и все адреса в памяти сделаны относительно базовых адресов содержащихся в высокоскоростных сегментных регистрах. Сегментные регистры содержат необходимые для программ адреса в сегментах памяти.

    CS - сегмент кода,

    DS - сегмент данных,

    SS - сегмент стека,

    ES - дополнительный сегмент.



    Рис. 4

    Сегменты в памяти могут располагаться как последовательно, так и накладываясь друг на друга. Поскольку при формировании эффективного адреса содержимое сегментного регистра сдвигается на 4 бита, сегмент всегда начинается с адреса, кратного 16, т.е. на границе 16-байтового блока памяти (параграфа). Размер сегмента должен находиться в пределах 0 байт - 64 Кбайт (допустимы и иногда используются сегменты нулевой длины).

    Физически, память организована как верхний банк (D15 D8) и нижний банк (D7 D0), т.е. как 512K x 8. Обращение к ним происходит как к параллельным строкам по битам адресам процессора A19-A1. Данные с четными адресами читаются в биты D7-D0 при A0=0, а нечетные биты данных для D15-D8 при A0=1. Процессор имеет два допустимых сигнала, BHE и A0, чтобы выборочно допускать чтение или запись в нечетные байтовые позиции, четные байтовые позиции, или в обе. Поток инструкции выбирается из памяти как слово и адресуется непосредственно процессором на байтовом уровне как необходимо.

    По заданию необходимо реализовать систему с памятью РАМ 4Кбайта и РОМ такой же размерности. Для адресации всего этого объема памяти необходимо всего 13 бит адреса. Остальные будут использованы для адресации периферийных устройств I8251 и I8255.
    1   2   3   4   5   6


    написать администратору сайта