Содержание
- 2. Архитектура процессоров будет рассматриваться на базе IA-32 (Intel Architecture 32 bit) – 32-разрядные процессоры семейства x86
- 3. 1. Режимы работы процессора Процессор архитектуры IA-32 может работать в одном из пяти режимов и переключаться
- 4. 1. Режимы работы процессора При загрузке компьютера процессор всегда находится в реальном режиме, в этом режиме
- 5. 2.Регистры процессора В процессоре содержатся быстродействующие ячейки памяти, называемые регистрами, которые может и должна использовать любая
- 6. 2.1. Пользовательские регистры Пользовательские регистры разделяются на регистры общего назначения, сегментные регистры, регистры флагов и указателя
- 7. 2.1.1. Регистры общего назначения Наиболее интенсивно используемыми в процессоре являются регистры общего назначения. В процессорах первого
- 8. 2.1.1. Регистры общего назначения Краткое описание всех регистров общего назначения: EAX/AX/AH/AL (Accumulator register) — аккумулятор. В
- 9. 2.1.2. Сегментные регистры В реальном режиме работы процессора процессор может аппаратно делить программу в памяти на
- 10. 2.1.3. Регистр флагов и указателя команд EIP/IP (Instruction Pointer register) — указатель команд. 32/16-разрядный регистр, который
- 11. 2.2. Системные регистры Эти регистры используются для обеспечения работы защищенного режима микропроцессора, поэтому редко используются программистами.
- 12. 2.3. Регистры FPU и MMX Регистры FPU (Floating Point Unit — блок чисел с плавающей запятой)
- 13. 2.3. Регистры FPU и MMX В блок FPU входят пять вспомогательных регистров: регистр состояния SWR (Status
- 15. Скачать презентацию
Архитектура процессоров будет рассматриваться на базе IA-32 (Intel Architecture 32 bit)
Архитектура процессоров будет рассматриваться на базе IA-32 (Intel Architecture 32 bit)
Процессоры делятся на поколения. История семейства x86 фирмы Intel началась с 16разрядного процессора 8086, который относится к первому поколению (отсюда и сокращение x86). Начиная с процессора 80386 (третье поколение) все последующие модели процессоров являются 32-разрядными.
Смотреть деление процессоров Intel на поколения, а также года их выпусков, основные характеристики и общепринятые обозначения.
1. Режимы работы процессора
Процессор архитектуры IA-32 может работать в одном
1. Режимы работы процессора
Процессор архитектуры IA-32 может работать в одном
Реальный (незащищенный) режим (real address mode) — режим, в котором работал процессор 8086. В современных процессорах этот режим поддерживается в основном для совместимости с древним программным обеспечением (DOS программами).
Защищенный режим (protected mode) — режим, который впервые был реализован в 80286 процессоре. Все современные операционные системы (Windows, Linux и пр.) работают в защищенном режиме. Программы реального режима не могут функционировать в защищенном режиме.
Режим виртуального процессора 8086 (virtual-8086 mode, V86) — в этот режим можно перейти только из защищенного режима. Служит для обеспечения функционирования программ реального режима, причем дает возможность одновременной работы нескольких таких программ, что в реальном режиме невозможно. Режим V86 предоставляет аппаратные средства для формирования виртуальной машины, эмулирующей процессор 8086. Виртуальная машина формируется программными средствами операционной системы. В Windows такая виртуальная машина называется VDM (Virtual DOS Machine — виртуальная машина DOS). VDM перехватывает и обрабатывает системные вызовы от работающих DOS-приложений.
Нереальный режим (unreal mode, он же big real mode) — аналогичен реальному режиму, только позволяет получать доступ ко всей физической памяти, что невозможно в реальном режиме.
Режим системного управления System Management Mode (SMM) используется в служебных и отладочных целях.
1. Режимы работы процессора
При загрузке компьютера процессор всегда находится в
1. Режимы работы процессора
При загрузке компьютера процессор всегда находится в
В защищенном режиме процессор защищает выполняемые программы в памяти от взаимного влияния (умышленно или по ошибке) друг на друга, что легко может произойти в реальном режиме. Поэтому защищенный режим и назвали защищенным.
2.Регистры процессора
В процессоре содержатся быстродействующие ячейки памяти, называемые регистрами,
2.Регистры процессора
В процессоре содержатся быстродействующие ячейки памяти, называемые регистрами,
16 пользовательских регистров;
16 системных регистров;
13 регистров для работы с мультимедийными приложениями (MMX) и числами с плавающей запятой (FPU/NPX);
В современных процессорах (PIII, P4) имеются дополнительные регистры: XMM (расширение SSE/SSE2).
В последующих поколениях процессоров следует ожидать только увеличения числа регистров, как это происходило до сих пор. Как уже говорилось, в процессоре имеются невидимые для программиста регистры, входящие в микроархитектуру процессора, которые процессор использует только для собственных нужд.
Пользовательские регистры это основные регистры, которые использует программист на ассемблере. Системные регистры используются в защищенном режиме ассемблера. Регистры FPU, MMX и XMM необходимы для ускорения вычислений и чаще всего используются в графических приложениях ( в компьютерных играх).
2.1. Пользовательские регистры
Пользовательские регистры разделяются на регистры общего назначения,
2.1. Пользовательские регистры
Пользовательские регистры разделяются на регистры общего назначения,
Расширения, которые появились в 32-разрядных процессорах, выделены на рис. серым цветом.
2.1.1. Регистры общего назначения
Наиболее интенсивно используемыми в процессоре являются регистры
2.1.1. Регистры общего назначения
Наиболее интенсивно используемыми в процессоре являются регистры
Именно из-за того, что регистры общего назначения являются 32-разрядными Intel-совместимые процессоры и называются 32-разрядными. Аналогично процессоры первого поколения назывались 16-разрядными потому, что имели 16-разрядные регистры общего назначения. Соответственно 64-разрядные процессоры Intel имеют 64-разрядные регистры общего назначения.
Из-за совместимости с процессорами первых поколений регистры общего назначения можно использовать, как полностью 32 бита (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP), так и только младшую половину 16 бит (AX, BX, CX , DX, SI, DI, BP, SP). В свою очередь младшая половина в некоторых регистрах общего назначения также может использоваться частями по 8 бит (AH, AL, BH, BL, CH, CL, DH, DL). Как видно названия 32-битных регистров отличаются от 16-битных только приставкой E (Extended — расширенный).
Большинство регистров общего назначения используются при программировании без ограничений для любых целей. Однако в некоторых случаях вводится жесткое ограничение.
2.1.1. Регистры общего назначения
Краткое описание всех регистров общего назначения:
EAX/AX/AH/AL
2.1.1. Регистры общего назначения
Краткое описание всех регистров общего назначения:
EAX/AX/AH/AL
EBX/BX/BH/BL (Base register) — база. В основном используется для хранения любых промежуточных данных. Некоторые команды используют этот регистр при так называемой адресации по базе.
ECX/CX/CH/CL (Count register) — счетчик. В основном используется для хранения любых промежуточных данных. Использование этого регистра обязательно только в командах организации цикла (повторяющихся действий).
EDX/DX/DH/DL (Data register) — регистр данных. В основном используется для хранения любых промежуточных данных. Только в некоторых командах использование этого регистра обязательно.
ESI/SI (Source Index register) — индекс источника. Используется в цепочечных операциях (обычно цепочкой является строка символов) и содержит адрес элемента в цепочке-источника.
EDI/DI (Destination Index register) — индекс приемника (получателя). Используется в основном в цепочечных операциях (цепочкой обычно является строка символов) и содержит текущий адрес в цепочке-приемнике.
EBP/BP (Base Pointer register) — регистр указателя базы кадра стека. Предназначен для организации произвольного доступа к данным внутри стека.
ESP/SP (Stack Pointer register) — регистр указателя стека. Содержит указатель вершины стека.
2.1.2. Сегментные регистры
В реальном режиме работы процессора процессор может аппаратно
2.1.2. Сегментные регистры
В реальном режиме работы процессора процессор может аппаратно
Сегмент кода. В этом сегменте содержатся машинные команды. Для доступа к этому сегменту служит регистр CS (code segment register) — сегментный регистр кода.
Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр DS (data segment register) — сегментный регистр данных.
Сегмент стека. В этом сегменте содержится стек. Для доступа к этому сегменту служит регистр SS (stack segment register) — сегментный регистр стека.
Если программисту недостаточно одного сегмента данных адресуемого регистром DS, то он может задействовать в своей программе дополнительные сегменты данных с помощью сегментных регистров ES, GS, FS (extension data segment registers).
2.1.3. Регистр флагов и указателя команд
EIP/IP (Instruction Pointer register) — указатель
2.1.3. Регистр флагов и указателя команд
EIP/IP (Instruction Pointer register) — указатель
EFLAGS/FLAGS (flag register) — регистр флагов. Каждый отдельный бит этого 32/16-разрядного регистра называется флагом. Говорят флаг установлен, если соответствующий разряд содержит 1, и сброшен, если разряд содержит 0.
На рис. показано содержимое регистра EFLAGS,
Просмотреть названия и назначение каждого флага.
2.2. Системные регистры
Эти регистры используются для обеспечения работы защищенного режима
2.2. Системные регистры
Эти регистры используются для обеспечения работы защищенного режима
К системным регистрам относят:
четыре регистра системных адресов (GDTR, IDTR, TR, LDTR)
пять регистров управления (CR0 – CR4)
восемь регистров отладки (DR0 – DR7).
2.3. Регистры FPU и MMX
Регистры FPU (Floating Point Unit —
2.3. Регистры FPU и MMX
Регистры FPU (Floating Point Unit —
В первых поколениях процессоров эти регистры располагались в отдельной микросхеме, которая называлась сопроцессор на материнской плате. Для соответствующего поколения процессора был свой сопроцессор: 8087, 80287, 80387, 80487. Начиная с процессора 80486DX, сопроцессор располагается на одном кристалле с центральным процессором. В разных поколениях процессоров сопроцессор, называли, по-разному FPU или NPX (Numeric Processor eXtention — числовое расширение процессора), однако первое название получило наибольшее распространение.
2.3. Регистры FPU и MMX
В блок FPU входят пять вспомогательных
2.3. Регистры FPU и MMX
В блок FPU входят пять вспомогательных
регистр состояния SWR (Status Word Register)
регистр управления CWR (Control Word Register)
регистр тегов TWR (Tags Word Register)
регистр-указатель команд IPR (Instruction Point Register)
регистр-указатель данных DPR (Data Point Register)
Регистры MMX (MultiMedia eXtensions — мультимедийные расширения) появились в пятом поколении процессоров Intel. MMX ускоряют работу с мультимедийными приложениями. Это достигается за счет одновременной обработки нескольких элементов данных за одну инструкцию — так называемая технология SIMD (Single Instruction — Multiple Data).
Регистры MMX и FPU/NPX являются одними и теми же регистрами сопроцессора, просто в программе при необходимости программист явно указывает, желает он использовать эти регистры для работы с мультимедийными приложениями (MMX) или для работы с числами с плавающей запятой (FPU/NPX).