Регистровая память. Регистры микропроцессора

Содержание

Слайд 3

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

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

Слайд 4

Регистры общего назначения: 16 штук в IA-32 (x86-32)

Регистры общего назначения: 16 штук в IA-32 (x86-32)

Слайд 5

32-разрядные пользовательские регистры, непосредственно доступные программисту

Регистры
с произвольным
доступом

32-разрядные пользовательские регистры, непосредственно доступные программисту Регистры с произвольным доступом

Слайд 6

Регистры AMD-процессоров (архитектура x86-64)

Прежние 32-разрядные регистры расширены до 64-бит
и получили имена

Регистры AMD-процессоров (архитектура x86-64) Прежние 32-разрядные регистры расширены до 64-бит и получили
с приставкой R.
К 8 прежним добавлены 8 новых. Новые регистры остались безымянными и просто пронумерованы от R8 до R15

А вы догадались,
почему новые
нумеруются с 8?

Слайд 7

Чаще всего программист использует регистры данных

ecx/cx (Count register)
Применяется в командах, производящих повторяющиеся

Чаще всего программист использует регистры данных ecx/cx (Count register) Применяется в командах,
действия.
Его использование часто неявно и скрыто
в алгоритме работы соответствующей команды.
Например, команда организации цикла loop
кроме передачи управления команде,
находящейся по некоторому адресу,
анализирует и уменьшает на единицу значение регистра ecx/cx

eax (Accumulator register)
edx (Data register)
применяются для хранения
промежуточных данных

ebx (Base register )
Применяется для хранения базового адреса некоторого объекта в памяти

Слайд 8

6 сегментных регистров

Микропроцессор поддерживает следующие типы сегментов
Сегмент кода (содержит команды программы)
регистр cs

6 сегментных регистров Микропроцессор поддерживает следующие типы сегментов Сегмент кода (содержит команды
(code segment register) - содержит адрес сегмента кода
Сегмент данных (обрабатываемые программой данные)
регистр ds (data segment register) - содержит адрес сегмента данных
Сегмент стека (область памяти, называемая стеком)
регистр ss (stack segment register) - содержит адрес сегмента стека
Дополнительные сегменты данных
Если программе недостаточно одного сегмента данных, то она имеет возможность использовать еще три дополнительных сегмента данных.
Адреса дополнительных сегментов данных содержатся в регистрах
es, gs, fs (extension data segment registers)
es - сегментный регистр экстракодов (Extra Segment)
fs,gs (следующие буквы в латинском алфавите после e)

Слайд 9

Сегментные регистры ВСЕГДА 16-разрядные

Сегментные регистры ВСЕГДА 16-разрядные

Слайд 10

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

eip/ip (Instraction Pointer register)
регистр-указатель команд

Содержит смещение следующей
подлежащей выполнению

Регистр управления eip/ip (Instraction Pointer register) регистр-указатель команд Содержит смещение следующей подлежащей
команды
(относительно текущего сегмента кода)
и связан с регистром сегмента кода CS

!!! Этот регистр непосредственно недоступен программисту.
При выполнении команды значение в регистре увеличивается автоматически
(на длину команды),
Если команда относится к командам управления (переходы, циклы,
вызовы подпрограмм и возвращения из подпрограмм,
включая программные прерывания), то изменение его значения
производится самими командами

Слайд 11

Регистр состояния (микропроцессора) = Регистр флагов

eflags/flags
содержит информацию о состоянии микропроцессора
отдельные биты регистра

Регистр состояния (микропроцессора) = Регистр флагов eflags/flags содержит информацию о состоянии микропроцессора
имеют определенное функциональное назначение и называются флагами
флаги имеют условные имена

Слайд 12

(Пока)
необходимо
понимать
флаги:
CF
PF
ZF
SF
TF
IF
OF

(Пока)
необходимо
понимать
флаги:
CF
PF
ZF
SF
TF
IF
OF

Системный флаг tf - флаг трассировки (Trace Flag)

(Пока) необходимо понимать флаги: CF PF ZF SF TF IF OF (Пока)

Предназначен для организации пошаговой работы микропроцессора (при отладке)

Системный флаг if - Флаг прерывания (Interrupt enable Flag)
Предназначен для разрешения или запрещения (маскирования)
аппаратных прерываний
(1 - аппаратные прерывания разрешены; 0 - запрещены)

А что случится, если
злоумышленник
будет постоянно
переводить
флаг IF в 0?

!

Слайд 13

Регистр EFLAGS (32 бита)

Vm - флаг виртуального 8086 (Virtual 8086 Mode)
Признак

Регистр EFLAGS (32 бита) Vm - флаг виртуального 8086 (Virtual 8086 Mode)
работы микропроцессора в режиме виртуального 8086.
(1 - процессор работает в режиме виртуального 8086;
0 - процессор работает в реальном или защищенном режиме)

nt - флажок вложенности задачи (Nested Task)
Используется в защищенном режиме работы микропроцессора
для фиксации того, что одна задача вложена в другую

Имя файла: Регистровая-память.-Регистры-микропроцессора.pptx
Количество просмотров: 52
Количество скачиваний: 1