Разделы презентаций


Программная модель процессора

Содержание

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichOutlineРегистр флагов:● флаги состояния;● флаги управления;● системные флаги. Регистры процессора: ● основные понятия; ● счетчик команд; ● типы регистров и

Слайды и текст этой презентации

Слайд 1Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2011

Dr. Mokhovikov Alexander Yurievich

Lection №4:Программная модель процессора

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 2Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Outline
Регистр флагов:
● флаги состояния;
● флаги управления;
● системные флаги.
Регистры

процессора:
● основные понятия;
● счетчик команд;
● типы регистров и примеры их применения;

Резюме к лекции и список используемой литературы

Программная модель процессора:
● Введение ;
● Регистры процессора

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichOutlineРегистр флагов:● флаги состояния;● флаги управления;●

Слайд 3Процессор может работать в одном из двух режимов и переключаться

между
ними достаточно быстро, как в ту, так и в другую

сторону:




Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора: Введение

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

Слайд 4
Программная модель процессора: Введение
Physics Faculty, Electronic Computing Devices & Systems,

7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора: ВведениеPhysics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Слайд 5Регистр — последовательное логическое устройство, используемое для хранения n-разрядных двоичных

слов(чисел) и выполнения преобразований над ними.
> Регистр представляет собой упорядоченную

последовательность триггеров,
число которых соответствует числу разрядов в слове.

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

Фактически любое цифровое устройство можно представить в виде совокупности регистров,
соединённых друг с другом при помощи комбинационных цифровых устройств.

Основой построения
регистров являются
D-триггеры, RS-триггеры.


Я всё понял!





!

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора: Введение

Регистр — последовательное логическое устройство, используемое для хранения n-разрядных двоичных слов(чисел) и выполнения преобразований над ними.> Регистр

Слайд 6Регистр процессора — сверхбыстрая память внутри процессора, предназначенная прежде всего

для:
● хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных)


● или содержащая данных, необходимых для работы процессора — смещения базовых таблиц, уровни доступа
● и т. д. (специальные регистры).

Доступ к значениям, хранящимся в регистрах, как правило, в несколько раз быстрее, чем доступ к ячейкам оперативной памяти (даже если кэш-память содержит нужные данные), но объем оперативной памяти намного превосходит суммарный объем регистров

!

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора: Введение

Регистр процессора — сверхбыстрая память внутри процессора, предназначенная прежде всего для: ● хранения промежуточных результатов вычисления (регистр

Слайд 7Классификация регистров
накопительные
(регистры памяти, хранения)
сдвигающие
> параллельные - запись и считывание

информации происходит одновременно
на все входы и со всех выходов;

последовательные -

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

>комбинированные

> однонаправленные;

> реверсивные

двоичные;

Троичные;

Десятичные

Программная модель процессора: Введение

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Классификация регистровнакопительные (регистры памяти, хранения)сдвигающие> параллельные - запись и считывание информации происходит одновременнона все входы и со

Слайд 8IP — 16-битный (младшая часть EIP)

EIP — 32-битный аналог (младшая

часть RIP)

RIP — 64-битный аналог
Сегментные регистры — Регистры указывающие на

сегменты: CS,DS,SS,ES,FS,GS

В реальном режиме работы процессора сегментные регистры содержат адрес начала 64Kb сегмента, смещенный вправо на 4 бита.

В защищенном режиме работы процессора сегментные регистры содержат селектор сегмента памяти, выделенного ОС.

CS — указатель на кодовый сегмент. Связка CS:IP (CS:EIP/CS:RIP - в защищенном/64-битном режиме) указывает на адрес в памяти следующей команды.

Программная модель процессора

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

IP — 16-битный (младшая часть EIP)EIP — 32-битный аналог (младшая часть RIP)RIP — 64-битный аналогСегментные регистры —

Слайд 9Счётчик команд
IP (англ. Instruction Pointer) — регистр, содержащий адрес-смещение следующей

команды, подлежащей исполнению, относительно кодового сегмента CS в процессорах семейства

x86.

Регистр IP связан с CS в виде CS:IP, где CS является текущим кодовым сегментом, а IP — текущим смещением относительно этого сегмента.

Регистр IP является 16-разрядным регистром-указателем. Кроме него, в состав регистров этого типа входят SP (англ. Stack Pointer — указатель стека) и BP (англ. Base Pointer — базовый указатель).

Принцип работы

Например, CS содержит значение 2CB50H, в регистре IP хранится смещение 123H.

Адрес следующей инструкции, подлежащей исполнению, вычисляется путем суммирования адреса в CS (сегменте кода) со смещением в регистре IP:
2CB50H + 123H = 2CC73H

Таким образом, адрес следующей инструкции для исполнения равен 2CC73H.

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

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

Счётчик командIP (англ. Instruction Pointer) — регистр, содержащий адрес-смещение следующей команды, подлежащей исполнению, относительно кодового сегмента CS

Слайд 10Регистры данных — служат для хранения промежуточных вычислений.

RAX, RCX, RDX,

RBX, RSP, RBP, RSI, RDI, R8 — R15 — 64-битные

EAX,

ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D — R15D — 32-битные (extended AX)

AX, CX, DX, BX, SP, BP, SI, DI, R8W — R15W — 16-битные

AH, AL, CH, CL, DH, DL, BH, BL, SPL, BPL, SIL, DIL, R8B — R15B — 8-битные (половинки 16-ти битных регистров)

например, AH — high AX — старшая половинка 8 бит

AL — low AX — младшая половинка 8 бит

регистр AX — умножение, деление, обмен с устройствами ввода/вывода (команды ввода и вывода);
регистр BX — базовый регистр в вычислениях адреса;
регистр CX — счетчик циклов;
регистр DX — определение адреса ввода/вывода.

Программная модель процессора

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Регистры данных — служат для хранения промежуточных вычислений.RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8 —

Слайд 11Индексные регистры предназначены для хранения индексов при работе с массивами.


SI (Source Index) содержит индекс источника,
а DI (Destination Index)

— индекс приёмника, хотя их можно
использовать и как регистры общего назначения.

Регистры-указатели используются для работы со стеком.
BP (Base Pointer) позволяет работать с переменными в стеке. Его также можно использовать в других целях.
SP (Stack Pointer) указывает на вершину стека. Он используется командами, которые работают со стеком.

Сегментные регистры
CS (Code Segment), DS (Data Segment), SS (Stack Segment) и ES (Enhanced Segment) предназначены для обеспечения сегментной адресации. Код находится в сегменте кода, данные — в сегменте данных, стек — в сегменте стека и есть еще дополнительный сегмент данных. Реальный физический адрес получается путём сдвига содержимого сегментного регистра на 4 бита влево и прибавления к нему смещения (относительного адреса внутри сегмента).

ПРИМЕНЯЮТСЯ

в строковых операциях

при работе со стеком

для обращения сегменту
памяти

Программная модель процессора

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Индексные регистры предназначены для хранения индексов при работе с массивами. SI (Source Index) содержит индекс источника, а

Слайд 12Регистр флагов
Значение некоторых флагов в регистре флагов можно изменять напрямую,

с помощью специальных инструкций (например, CLD для сброса флага направления),


Но! нет инструкций, которые позволяют обратится (проверить или изменить) к регистру флагов как к обычному регистру.

Однако можно сохранять регистр флагов в стек или регистр (R)(E)AX и восстанавливать регистр флагов из них с помощью инструкций LAHF, SAHF, PUSHF, PUSHFD, POPF и POPFD.

При приостановке задачи (используя многозадачные возможности процессора), процессор автоматически сохраняет значение флага регистров в TSS (task state segment), при активизации новой задачи процессор загружает регистр флагов из TSS новой задачи.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

Регистр флаговЗначение некоторых флагов в регистре флагов можно изменять напрямую, с помощью специальных инструкций (например, CLD для

Слайд 13Флаги состояния
Флаги состояния (биты 0, 2, 4, 6, 7 и

11) отражают результат выполнения арифметических инструкций, таких как ADD, SUB,

MUL, DIV.

CF — устанавливается при переносе из/заёме в (при вычитании) старший значащий бит результата и показывает наличие переполнения в беззнаковой целочисленной арифметике. Также используется в длинной арифметике. только флаг CF можно изменять напрямую с помощью инструкций STC, CLC и CMC. Также, битовые инструкции (BT, BTS, BTR и BTC) копируют указанный бит во флаг CF.
PF — устанавливается, если младший значащий байт результата содержит чётное число единичных (ненулевых) битов. Изначально этот флаг был ориентирован на использование в коммуникационных программах.
AF — устанавливается при переносе из/заёме из бита 3 результата. Этот флаг ориентирован на использование в двоично-десятичной (binary coded decimal, BCD) арифметике.

ZF — устанавливается, если результат равен нулю.
SF — равен значению старшего значащего бита результата, который является знаковым битом в знаковой арифметике.
OF — устанавливается, если целочисленный результат слишком длинный для размещения в целевом операнде (регистре или ячейке памяти). Этот флаг показывает наличие переполнения в знаковой целочисленной арифметике (в дополнительном коде).

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

Флаги состоянияФлаги состояния (биты 0, 2, 4, 6, 7 и 11) отражают результат выполнения арифметических инструкций, таких

Слайд 14Флаги состояния
Флаг SF отражает знак знакового результата, флаг ZF отражает

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

арифметической инструкции выдавать результат трёх различных типов:

Беззнаковое

Если результат считать беззнаковым числом, то флаг CF показывает условие переполнения (перенос или заём)

Знаковое

для знакового результата (в дополнительном коде) перенос или заём показывает флаг OF

Двоично-десятичное кодированное
(BCD) целое число

для BCD-результата перенос/заём показывает флаг AF

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

Флаги состоянияФлаг SF отражает знак знакового результата, флаг ZF отражает и беззнаковый, и знаковый нулевой результат.позволяют одной

Слайд 15Условные переходы, обусловленные
Флагами состояния

Элементарно!
Лабы по ЭВУ уже сдал!




Программная модель

процессора
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Условные переходы, обусловленныеФлагами состояния Элементарно!Лабы по ЭВУ уже сдал!Программная модель процессораPhysics Faculty, Electronic Computing Devices & Systems,

Слайд 16cmp AX,BX ;Сравнение двух регистров

je equal

;Переход, если

AX=BX

cmp SI,mem ;Сравнение регистра и ячейки памяти

jne notequ ;Переход, если SI<>mem

int 21h ;Вызов DOS

jc syserr ;Переход, если была ошибка и флаг CF=1

or BX,BX ;Анализ BX

jz zero ;Переход, если BX=0 по флагу ZF

inpt: in AL,DX ;Ввод данного из устройства

test AL,80h ;Анализ бита 7 в данном

je inpt ;Ввод до тех пор , пока

;бит 7=0 (ожидание установки бита 7)

test AX,7 ;Анализ битов 0,1,2 в AX

jne found ;Переход, если хотя бы 1 бит

;из них установлен

test DI,OFh ;Анализ битов 0...3 в DI

jz reset ;Переход, если все они сброшены

Абстрактный пример использования регистров флагов состояния

В длинной целочисленной арифметике флаг CF используется совместно с инструкциями сложения с переносом (ADC) и вычитания с заёмом (SBB) для распространения переноса или заёма из одного вычисляемого разряда длинного числа в другой.

Инструкции условного перехода Jcc (переход по условию cc — например, JNZ для перехода, если результат не ноль), SETcc (установить значение байта-результата в зависимости от условия cc), LOOPcc (организация цикла) и CMOVcc (условное копирование) используют один или несколько флагов состояния для проверки условия. Например, инструкция перехода JLE (jump if less or equal — переход, если «меньше или равен», ≤) проверяет условие «ZF=1 или SF ≠ OF».

Флаг PF был введён для совместимости с другими микропроцессорными архитектурами и по прямому назначению используется редко.
Более распространено его использование совместно с остальными флагами состояния в арифметике FPU.

Программная модель процессора

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

cmp AX,BX     ;Сравнение двух регистровje equal

Слайд 17Управляющий флаг
Флаг направления (DF, бит 10 в регистре флагов) управляет

строковыми инструкциями (MOVS, CMPS, SCAS, LODS и STOS): установка флага

заставляет уменьшать адреса (обрабатывать строки от старших адресов к младшим), обнуление заставляет адреса увеличивать.
Инструкции STD и CLD соответственно устанавливают и обнуляют флаг DF.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

str1 db 'Я хочу переслать эту строку в другое место‘
strlen db $-str1 ;длина пересылаемой строки
text db 80 dup(' ') ;Приемная строка
................................................................
mov CX, strllen ; Столько байтов переслать
push DS ;Настроим ES
pop ES ;на наш сегмент данных
lea SI, strl ;Теперь DS:SI-> строка-источник
lea Dl, text ;Теперь ES:DI-> строка-приемник
cld ;Двигаться по строке вперед
rep movsb ;Пересылка СХ байт

cld (Clear Direction Flag) - очистить флаг направления. Команда сбрасывает флаг направления df в 0.
std (Set Direction Flag) - установить флаг направления. Команда устанавливает флаг направления df в 1.

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

Управляющий флаг	Флаг направления (DF, бит 10 в регистре флагов) управляет строковыми инструкциями (MOVS, CMPS, SCAS, LODS и

Слайд 18TF — установка этого флага разрешает пошаговый режим отладки, когда

после каждой выполненной инструкции происходит прерывание программы и вызов специального

обработчика прерывания (см. также: Int3).

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Системные флаги и поле IOPL

INT 3 — команда процессоров семейства x86, которая несёт функцию т. н. программного breakpoint, или точки останова.
● Исполнение команды приводит к вызову обработчика прерывания номер 3,
зарезервированного для отладочных целей.
● В отличие от остальных команд вида INT N, которые кодируются двумя байтами, команда INT 3 кодируется только одним байтом с кодом 0xCC, хотя, конечно, двухбайтная инструкция 0xCD 0x03 тоже будет работать.

Используется главным образом при отладке программ, отладчик может вставлять INT 3 в код отлаживаемой программы в точках останова.


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

TF — установка этого флага разрешает пошаговый режим отладки, когда после каждой выполненной инструкции происходит прерывание программы

Слайд 19Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Системные флаги и поле IOPL
Так как инструкция Int сохраняет

в транзитном стеке адрес следующей за ней инструкции, то соответственно 3-й вектор(#BP) имеет тип Trap.
В ядре NT ISR #DB выполняет декремент EIP для того, чтобы возвратить управление после отката ловушки на точку останова.

Но! т. к. не выполняется проверка типа инструкции, то для двубайтного Int 3 адрес останова и EIP будет указывать на середину инструкции:


ASSUME DS:NOTHING, SS:NOTHING, ES:NOTHING

ENTER_DR_ASSIST kit3_a, kit3_t, NoAbiosAssist
align dword
public _KiTrap03
_KiTrap03 proc
push 0 ; push dummy error code
ENTER_TRAP kit3_a, kit3_t

cmp ds:_PoHiberInProgress, 0
jnz short kit03_01

lock inc ds:_KiHardwareTrigger ; trip hardware analyzer

kit03_01:
mov eax, BREAKPOINT_BREAK

; Handle INT 3 breakpoint.
;
; The trap is caused by a single byte INT 3 instruction. A
; BREAKPOINT exception with additional parameter indicating
; READ access is raised for this trap if previous mode is user.
;
; Arguments:
;
; At entry, the saved CS:EIP point to the instruction immediately
; following the INT 3 instruction.
; No error code is provided with the error.
;
; Return value:
;
; None

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichСистемные флаги и поле IOPLТак как

Слайд 20Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Системные флаги и поле IOPL

KiTrap03DebugService:
;
; If caller is user

mode, we want interrupts back on.
; . all relevant state has already been saved
; . user mode code always runs with ints on
;
; If caller is kernel mode, we want them off!
; . some state still in registers, must prevent races
; . kernel mode code can run with ints off
;
;
; Arguments:
; eax - ServiceClass - which call is to be performed
; ecx - Arg1 - generic first argument
; edx - Arg2 - generic second argument
;

.errnz (EFLAGS_V86_MASK AND 0FF00FFFFh)
test byte ptr [ebp]+TsEFlags+2,EFLAGS_V86_MASK/010000h
jnz kit03_30 ; fault occured in V86 mode => Usermode

.errnz (MODE_MASK AND 0FFFFFF00h)
test byte ptr [ebp]+TsSegCs,MODE_MASK
jz kit03_10

cmp word ptr [ebp]+TsSegCs,KGDT_R3_CODE OR RPL_MASK
jne kit03_30

kit03_05:
sti
kit03_10:

http://cracklab.ru/faq/Int3

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichСистемные флаги и поле IOPLKiTrap03DebugService:;; If

Слайд 21Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Системные флаги и поле IOPL

Set up exception record and

arguments for raising breakpoint exception
;

mov esi, ecx ; ExceptionInfo 2
mov edi, edx ; ExceptionInfo 3
mov edx, eax ; ExceptionInfo 1

mov ebx, [ebp]+TsEip
dec ebx ; (ebx)-> int3 instruction
mov ecx, 3
mov eax, STATUS_BREAKPOINT
call CommonDispatchException ; Never return

kit03_30:
; Check to see if this process is a vdm

mov ebx,PCR[PcPrcbData+PbCurrentThread]
mov ebx,[ebx]+ThApcState+AsProcess
cmp dword ptr [ebx]+PrVdmObjects,0 ; is this a vdm process?
je kit03_05

stdCall _Ki386VdmReflectException_A, <03h>
test ax,0FFFFh
jz Kit03_10

jmp _KiExceptionExit

_KiTrap03 endp

http://cracklab.ru/faq/Int3

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichСистемные флаги и поле IOPLSet up

Слайд 22IOPL — показывает уровень приоритета ввода-вывода исполняемой программы или задачи:

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

флаг IF, её текущий уровень приоритета (CPL) должен быть ≤ IOPL.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Системные флаги и поле IOPL

Передачи управления между программами ограничиваются только текущим кольцом защиты.
В то же время в процессе выполнения любой программы необходимо обращаться к программам, находящимся на более высоком уровне привилегий, например, к драйверам или СУБД.
Для этих целей используются специально установленные точки входа в эти программы (шлюзы).
● Передача управления на более низкий уровень привилегий осуществляется с помощью механизма подчиненных сегментов.

http://www.intuit.ru/department/hardware/microarch/5/

IOPL — показывает уровень приоритета ввода-вывода исполняемой программы или задачи: чтобы программа или задача могла выполнять инструкции

Слайд 23IF — обнуление этого флага запрещает отвечать на маскируемые запросы

на прерывание.
Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011

Dr.Mokhovikov Alexander Yurievich

Системные флаги и поле IOPL

Используется:
в программах для разрешения или запрета обработки внешнего маскируемого прерывания, приходящего по линии INTR магистрали.
● Когда флаг прерывания сброшен в 0, прерывания запрещены, т. е. запросы внешних маскируемых прерываний игнорируются.

На немаскируемые внешние прерывания, появляющиеся в линии NMI магистрали, и на программные прерывания флаг не влияет.
Флаг прерывания IF находится в девятом разряде регистра флагов.

В единичное состояние флаг устанавливается командой STI (Set Interrupt), в нулевое - командой CLI (Clear Interrupt).

IF — обнуление этого флага запрещает отвечать на маскируемые запросы на прерывание.Physics Faculty, Electronic Computing Devices &

Слайд 24NT — этот флаг устанавливается, когда текущая задача «вложена» в

другую, прерванную задачу, и сегмент состояния TSS текущей задачи обеспечивает

обратную связь с TSS предыдущей задачи.
Флаг NT проверяется инструкцией IRET для определения типа возврата — межзадачного или внутризадачного.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора


Сегмент состояния задачи

Инструкция IRET:

Исключение работает аналогично прерыванию, но следом за содержимым EIP в ряде случаев в стек помещается также слово кода ошибки, которое должно быть извлечено обработчиком исключений.

NT — этот флаг устанавливается, когда текущая задача «вложена» в другую, прерванную задачу, и сегмент состояния TSS

Слайд 25RF — флаг маскирования ошибок отладки.

VM — установка этого флага

в защищённом режиме вызывает переключение в режим виртуального x86.

AC —

установка этого флага вместо с битом AM в регистре CR0 включает контроль выравнивания операндов при обращениях к памяти — обращение к невыравненному операнду вызывает исключительную ситуацию.

VIF — виртуальная копия флага IF; используется совместно с флагом VIP.
VIP — устанавливается для указания наличия отложенного прерывания; используется совместно с флагом VIF.

ID — возможность программно изменить этот флаг в регистре флагов указывает на поддержку инструкции CPUID

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich

Программная модель процессора

RF — флаг маскирования ошибок отладки.VM — установка этого флага в защищённом режиме вызывает переключение в режим

Слайд 26Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры
Регистр CR0 содержит системные флаги, управляющие режимами работы

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

Назначение системных флагов:
PE (Protect Enable):бит 0 — разрешение защищенного режима работы.
Состояние этого флага показывает, в каком из двух режимов — реальном (PE=0) или защищенном (PE=1) — работает микропроцессор в данный момент времени.
MP (Math Present), бит 1 — наличие сопроцессора. Всегда 1.
TS (Task Switched), бит 3 — переключение задач.
Процессор автоматически устанавливает этот бит при переключении на выполнение другой задачи.
AM (Aligment Mask), бит 18 — маска выравнивания.
Этот бит разрешает (AM = 1) или запрещает (AM = 0) контроль выравнивания.
CD (Cache Disable), бит 30, — запрещение кэш-памяти.
С помощью этого бита можно запретить (CD = 1) или разрешить (CD = 0) использование внутренней кэш-памяти (кэш-памяти первого уровня).
PG (PaGing), бит 31, — разрешение (PG = 1) или запрещение (PG = 0) страничного преобразования.
Флаг используется при страничной модели организации памяти.

Регистры(CR[0÷3]) хранят признаки состояния процессора, общие для всех задач.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистрыРегистр CR0 содержит системные флаги,

Слайд 27Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры



Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистры

Слайд 28Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры



Регистр CR2 используется:
при страничной организации оперативной памяти для

регистрации ситуации, когда текущая команда обратилась по адресу, содержащемуся в странице памяти, отсутствующей в данный момент времени в памяти.
В такой ситуации в микропроцессоре возникает
исключительная ситуация с номером 14 (int 14),
и линейный 32-битный адрес команды, вызвавшей это исключение, записывается в регистр CR2.
Имея эту информацию, обработчик исключения 14
определяет нужную страницу, осуществляет ее подкачку в память и возобновляет нормальную работу программы;

INT 14h,
the serial communication interrupt

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистрыРегистр CR2 используется:при страничной организации

Слайд 29Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры



Регистр CR3 также используется:
● при страничной организации памяти.


Это так называемый регистр каталога страниц первого уровня.
Он содержит 20-битный физический базовый адрес
каталога страниц текущей задачи.
● Этот каталог содержит 210 32-битных дескриптора, каждый из которых содержит адрес таблицы страниц второго уровня.
● В свою очередь каждая из таблиц страниц второго уровня содержит 1024 32-битных дескриптора, адресующих страничные кадры в памяти.
Размер страничного кадра — 4 Кбайт.

Регистр CR4 содержит биты
разрешения архитектурных расширений

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистрыРегистр CR3 также используется:● при

Слайд 30Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры



СR4: назначения битов

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистрыСR4: назначения битов

Слайд 31Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Управляющие регистры



СR4: назначения битов

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichУправляющие регистрыСR4: назначения битов

Слайд 32Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Регистры системных адресов



Эти регистры еще называют
регистрами управления памятью.
Они

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

При работе в защищенном режиме микропроцессора адресное пространство делится на:
● глобальное — общее для всех задач;
● локальное — отдельное для каждой задачи.

Разделением и объясняется присутствие в архитектуре микропроцессора следующих системных регистров:
регистра таблицы глобальных дескрипторов gdtr (Global Descriptor Table Register) имеющего размер 48 бит и содержащего 32-битовый (биты 16—47) базовый адрес глобальной дескрипторной таблицы GDT и 16-битовое (биты 0—15) значение предела, представляющее собой размер в байтах таблицы GDT;
регистра таблицы локальных дескрипторов ldtr (Local Descriptor Table Register) имеющего размер 16 бит и содержащего так называемый селектор дескриптора локальной дескрипторной таблицы LDT. Этот селектор является указателем в таблице GDT, который и описывает сегмент, содержащий локальную дескрипторную таблицу LDT;

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichРегистры системных адресовЭти регистры еще называютрегистрами

Слайд 33Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Регистры системных адресов



Регистр таблицы дескрипторов прерываний idtr (Interrupt Descriptor

Table Register) имеющего размер 48 бит и содержащего 32-битовый (биты 16–47) базовый адрес дескрипторной таблицы прерываний IDT и 16-битовое (биты 0—15) значение предела, представляющее собой размер в байтах таблицы IDT;

16-битового регистра задачи TR(Task Register), который подобно регистру LDTR, содержит селектор, то есть указатель на дескриптор в таблице GDT.
Этот дескриптор описывает текущий сегмент состояния задачи (TSS — Task Segment Status).
Этот сегмент создается для каждой задачи в системе, имеет жестко регламентированную структуру и содержит контекст (текущее состояние) задачи.
Основное назначение сегментов TSS — сохранять текущее состояние задачи в момент переключения на другую задачу.

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichРегистры системных адресовРегистр таблицы дескрипторов прерываний

Слайд 34Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Регистры отладки



http://kit-e.ru/articles/cpu/2006_9_148.php

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichРегистры отладкиhttp://kit-e.ru/articles/cpu/2006_9_148.php

Слайд 35Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
Регистры тестирования



Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichРегистры тестирования

Слайд 36Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov

Alexander Yurievich
В следующей серии

…и многое другое…
Организация памяти.
Модель памяти
в реальном

режиме



Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander YurievichВ следующей серии…и многое другое…Организация памяти.Модель

Слайд 37Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

http://cracklab.ru/faq/Int3
http://sasm.narod.ru/apps/eflags/app_b.htm
http://club155.ru/x86cmd/POPF
http://kit-e.ru/articles/cpu/2006_9_148.php
http://de.ifmo.ru/--books/electron/cpu-cod.htm
http://www.viva64.com/ru/k/0035/
http://www.kailib.ru/arhitevm?start=23
http://www.zcub.ru/blog/org_comp_system/registry-processora.php



Основные используемые Интернет-ресурсы:

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 38Используемая литература:
Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков

А..Ю. Physics Faculty, Electronic Devices & Systems, 7th

semester,2010 Dr. Mokhovikov Alexander Yurievich

Книга «Архитектура ЭВМ»,автор Мюллер
Книга «Процессоры Pentium4, Athlon и Duron», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ», автор Танненбаум
Книга «Assembler. Учебник для ВУЗов», автор Юров

Используемая литература:Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика