русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Архитектура 16-разрядного микропроцессора


Дата добавления: 2015-08-06; просмотров: 747; Нарушение авторских прав


Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. Кроме показанного на Рис. 2.4, в машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая.

 

 

Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86):

    7 0 7 0  
  AX AH AL Аккумулятор
РОН BX BH BL База
  CX CH CL Счетчик
  DX DH DL Данные
    15 0  
Регистры-   SP Указатель стека
указатели   BP Указатель базы
Индексные   SI Индекс операнда
регистры   DI Индекс результата
    15 0  
    CS Сегмент кода
Сегментные   DS Сегмент данных
регистры   SS Сегмент стека
    ES Сегмент доп. данных
    15 0  
    IP Счетчик команд
       
    FLAGS Регистр признаков

 

Рис. 2.4. МП i8086 - машина пользователя

 

Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4).



16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:

15 12  
Зарезервировано OF DF IF TF  
Арифметическое переполнение Направление Разрешение прерывания Пошаговый режим    
             

 

где:

DF определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);

IF маскирует внешнее прерывание по входу INT (при IF = 1 прерывание разрешено);

TF управляет пошаговым режимом работы микропроцессора. При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 4 (см. раздел 7).

Распределение адресного пространства.

Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 220 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека.

Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой Рис. 2.5 .

Из Рис. 2.5 видно, что граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.

 

15 0
Сегментный регистр .0 0 0 0
15 0
  Логический адрес
 
19 0
Физический адрес
     

 

Рис. 2.5. Формирование физического адреса

По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.

 

Способы адресации

и методы формирования исполнительного адреса

Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен на Рис. 2.6.

1 байт 2 байт 3..6 байты
  КОП D W MOD REG R/M [Смещение. данные]
  7 2 1 0 7 6 5 3 2 0  
                     

Рис. 2.6. Формат команды МП i8086

Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения:

D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;

W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);

REG - определяет регистр для первого операнда согласно Табл. 2.3:

Табл. 2.3

REG (R/M) Регистр
W = 0 W = 1
AL AX
CL CX
DL DX
BL BX
AH SP
CH BP
DH SI
BH DI

 

Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. В Табл. 2.4 приведены способы формирования адресов памяти для двух значений поля MOD.

Табл. 2.4

R/M MOD = 00 MOD = 01
Логич.адрес Сегмент Логич.адрес Сегмент
BX+SI DS BX+SI+d8 DS
BX+DI DS BX+DI+d8 DS
BP+SI SS BP+SI+d8 SS
BP+DI SS BP+DI+d8 SS
SI DS SI+d8 DS
DI DS DI+d8 DS
d16 DS BP+d8 DS
BX DS BX+d8 DS

 

В Табл. 2.4 d8 и d16 означают соответственно 8- и 16-разрядное смещение (3 и 3+4 байты команды). При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака).

При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2.4), но вместо d8 используется d16.

При MOD = 11 вторым операндом команды является регистр, определяемый полем R/M согласно Табл. 2.3.

Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.



<== предыдущая лекция | следующая лекция ==>
Разрядный микропроцессор | Система команд i8086


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.026 сек.