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

Микропроцессорные системы

Мурлин Алексей Григорьевич

Волик Александр Григорьевич

ЦПУ: частота, разрядность.

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

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]