русс | укр

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

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

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

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


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

Базовая архитектура 32-разрядного микропроцессора Intel


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


Краткая историческая справка развития микропроцессоров

7.02.13

В 1971 году был разработан 4-битовый микропроцессор фирмы Intel MP4004. 1973 – появился 8-битовый процессор MP8080. Первый рабочий процессор - 1975 - 16-битный Intel 8086.

Командный поток - извлекает из памяти и выполняет команду. Успеху развития способствовало:

1. использование их IBM для создания нового поколения ПК;

2. разработка фирмой Microsoft 16-разрядной ОС – MS-Dos.

Базовая архитектура 32-разрядного микропроцессора Intel

14.02.13

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

Регистр – минимальный объем памяти, который находится в самом процессоре.

Память делится на несколько уровней.

Пользовательские регистры микропроцессоров:

1. регистры общего назначения;

2. сегментные регистры;

3. указатель команд (адрес смещения);

4. регистр флагов (разряд 0 или 1).

Регистры общего назначения

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

Базовый регистр. Используются в базовой адресации.

Счетчик используется для указания количества повторений в циклических командах.

Регистр данных. Участвует вместе с аккумулятивным регистром в командах умножения деления, ввода-вывода, используется для хранения номера порта, куда осуществляется вывод.



РОНы:

Esp – указатель стека. Предназначен для хранения вершины стека, для текущего сегмента стека. Используется неявно (по ум.) командами работы со стеком: включение/исключение в/из стек, команды вызова процедур и обработки прерывания.

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

Индексные регистры. Si – индекс источника, di – индекс приемника. Используются в командах работы со строками. Si адресует элемент строки источника, di – элемент строки приемника.

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

Сегментные регистры.

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

Cs – сегментный регистр предназначенный для идентификации текущего сегмента, который содержит коды, исполняющихся программ.

Ss – сегментный регистр стека. Позволяет идентифицировать текущий сегмент стека.

Ds – используется для идентификации сегмента данных по умолчанию.

Дополнительные сегментные регистры предназначены для идентификации дополнительных сегментов данных.

Указатель команд

Указатель команд содержит адрес смещения команды, которая будет выполняться в след за текущей. Напрямую указатель команд не указывается и не изменяется.

Регистр флагов содержит флаги управления и флаги состояния.

Флаги состояния сообщают об особенностях результатов обработки данных:

1. Cf – флаг переноса. Устанавливается в единицу, если при выполнении операции умножения вычитании произошел перенос или займ. В остальных случаях равен 0.

2. Pf – флаг четности. Устанавливается в 1, если младшие 8 бит результата имеют четное число единичных бит.

3. Af – флаг дополнительного переноса.

4. Zf – флаг нуля. Устанавливается в 1, когда результат = 0, в противном случае 0.

5. Sf – флаг знака. Всегда равен знаковому (старшему) биту результата.

6. Of – флаг переполнения. Устанавливается в 1, если в арифметической операции со знаковыми операндами результат превысил диапазон предоставляемых чисел.

7. Iopl – двубитное поле – уровень привилегии ввода-вывода. Позволяет определить минимальный уровень привилегий задачи, на котором ей разрешается выполнять операции ввода-вывода.

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

9. Tf – флаг пошагового выполнения команд. Используется в механизме отладки программ.

10. If – флаг прерывания. Всегда равен 1 по умолчанию. Разрешает обработку аппаратных прерываний. Есть специальная команда, которая управляет этим процессом.

11. Df – флаг направления. Задает направление обработки цепочек данных.

12. Rf – флаг возобновления. Используется в механизме отладки для подавления особых случаев отладки по одной и той же команде. Действует в защищенном режиме.

13. Vm – флаг виртуального режима. При 0 в режиме реального адреса, в защищенном режиме, при 1 – превращается в высокопроизводительный мп, использующий только режим реального адреса.

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

При адресации операндов различают:

1. неявная адресация – операнд адресуется неявно, если в команде нет полей для его определения. В команде операнд отсутствует, но команда оперирует данными.

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

mov ax, bx – присвоение значения одного операнда другому (второе первому).

3. непосредственная адресация – операнд находится в самой команде и хранится в сегменте кода. При записи программы непосредственный операнд записывается своим изображением.

Mov ax, 1AFBh

4. адресация ввода-вывода. Существует адресное пространство ввода-вывода размером 64 кбайта (номера портов ввода-вывода) – in, out.

In al, 4oh

In al,dx

Out 20h, al

Out dx, al

Адресация операндов памяти:

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

Mov al, [1234h]

При данном виде адресации часто используют преобразование типов.

Inc word ptr [1fh]

Байт – 1 байт (db)

Word – слово 2 байта (dw)

Dword – двойное слово 4 байта (dd)

Qword – 8 байт (dq)

Tword – 10 байт (dt)

2 директивы, содержащие адреса.

X db 10

Прямая адресация применяется к ячейкам памяти с фиксированными адресами.

2. косвенная регистровая адресация.

При базовой адресации предполагается, что адрес операндов находится в базовом регистре.

Mov al, [ecx]

Dec dword ptr [dx]

Если при использовании в качестве базового регистра используются bp, ebp то идет обращение к сегменту стека, в остальных случаях к сегменту данных.

Базовая адресация со смещением.

Mov al, [ecx+4] – к значению адреса находящемуся в регистре прибавляется константа, при этом в совокупности получается адрес смещения данных, находящихся в памяти.

Индексная адресация.

Mov ax, array [si]

Суммируется адрес array+ индекс в si. – эффективный адрес

Базовая индексная адресация с масштабированием и смещением.

Mov ax, [bx+2] [si*4]

2[bx]

Системные регистры мп

21.02.13

Предназначены для организации работы ОС по автоматизации работы прикладных программ. Они реализуют возможности защищенного режима, доступны привилегированным командам и программам супервизора и не доступны пользовательским программам. Всего используется 4 группы регистров системного назначения:

1) регистры управления памяти защищенного режима. Предназначены для организации работы памяти. Состоит из 4 регистров:

GDTR – регистр глобальной действительной таблицы.

47 15 0

ЛБА предел

Имеет 48 разрядов. Состоит из 2 частей: предел – определяет максимально возможный размер таблицы в байтах (максимально возможное смещение относительно начала таблицы), ЛБА (линейный базовый адрес) определяет верхнюю границу (начало таблицы), т.е. линейный адрес.

IDTR – регистр дескрипторной таблицы прерывания

47 15 0

АБА предел

48 разрядов. Регистр предназначен для идентификации дескрипторной таблицы прерывания.

LDTR – регистр локальной дескрипторной таблицы. Предназначен для адресации локальной дескрипторной таблицы для активной на данный момент задачи.

15 0

селектор
Index TI RPL1

RPL – используется в механизме защиты по привилегиям.

TI – бит индексации таблицы. Определяет в какой таблице находится соответствующий дискриптор.

0- глобальная таблица GDTR.

1 – локальная дескрипторная таблица LDTR.

Index – порядковый номер дескриптора в таблице.

TR – регистр задач. Содержит селектор дескриптора сегмента состояния задачи, которая активна в данный момент.

Регистры управления:

CR0-CR3

ФАКС РСД PWT  
ЛАСН
резерв
PG CD NW   AM   WP   NE ET TS EM MP PE
                                 

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

CR0 содержит системные флаги управления режимами и флаги показа состояния относящиеся ко всему мп. Назначение:

1. PG - страничное преобразование. =1 – разрешено, =0 – запрещено.

2.CD - запрещение кэш-памяти. При=1 – запрещено

3. NW - бит не сквозной записи. При =0 разрешает сквозную запись в памяти.

4. AM – маска выравнивания. При =1 разрешается контроль выравнивания данных.

5. WP – защита от записи. При =1 защищает от записи страницы уровня пользователя от обращения супервизора.

6. NE – численная ошибка. При установке в единицу разрешается стандартный механизм обработки численных механизмов.

7. ET – тип расширения. При =1 осуществляет поддержку устаревших команд математического сопроцессора.

8. TS – задача переключена. При каждом переключении устанавливается в единицу. Сбрасывается специальная команда CLTS.

9. EM – эмуляция. При =1 указывает на эмуляцию команд математического сопроцессора.

10. MP – указывает на присутствие математического сопроцессора. Всегда на 1.

11. PE – включить защиту. При =1 разрешено использование защищенного режима.

ЛАСН – линейный адрес последнего страничного нарушения используется механизмом отладки.

Последний. Важен для страничного преобразования адреса. ФАКС (физический адрес каталога страниц). РСД – запрещение кэширования страниц. PWT – бит не сквозной записи строения.

Также есть в системных регистрах системы отладки DR0-DR7 и регистры проверки TR0-TR7 предназначены для проверки работы кэш-памяти.



<== предыдущая лекция | следующая лекция ==>
 | Недостатки сегментной организации памяти режима реального адреса.


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


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

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

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


 


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

 
 

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

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