Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Если в вычислении смещения участвует указательный регистр, то используется текущий сегмент стека.
В случае операнда-приемника строковой команды используется дополнительный сегмент.
К четвертому набору регистров МП 8086/8088 относятся регистр указателя команды и регистр флагов. '1
Указатель команды (instruction pointer, IP) - 16-битовый регистр. Он содержит смещение следующей выполняемой команды в текущем сегменте кода CS, указатель команды непосредственно не доступен программисту, но он может явно управляться командами управления переходов, прерываниями и исключениями.
Указатель флагов - 16-разрядный регистр FLAGS - содержит 9 флагов, которые применяются для регистрации состояния (6 флагов состояния) и управления действиями микропроцессора (3 флага управления) (рис.3.5):
Бит 0, флаг переноса CF (Carry flag) равен 1, если произошел перенос единицы при сложении или заем единицы при вычитании, в противном случае он сбрасывается. Кроме того, СF содержит значение бита, который при сдвиге или циклическом сдвиге регистра или ячейки памяти вышел за их границы. CF служит также индикатором результата умножения.
2. Бит 2, флаг четности PF (parity flag) paвен 1, если в результате операции получен байт в регистре АL с четным числом единиц в его битах. В противном случае он равен 0. Флаг PF в основном используется в операциях обмена.
Рис.3.5. Регистр флагов МП 8086/8088
3. Бит 4. вспомогательный флаг переноса AF (auxiliary Carry flag) аналогичен флагу CF, только фиксирует перенос или заем для третьего бита данных.
4. Бит 6, .флаг нуля - ZF (zero flag) равен 1, если в результате операции получен нуль, ненулевой результата приводит к сбросу ZF. " ' I
5. Бит 7, флаг знака SF (sign flag), имеет значение только при операциях над числами со знаком. Флаг SF равен 1, если в результате арифметической или логической опeрации, сдвига или циклического сдвига получено отрицательное число. В противном случае он равен 0. Он дублирует старший (знаковый) разряд результата независимо от того, имеет результат длину 8 или 16 бит.
6. Бит 8, флаг трассировки TF (trap flag), разрешает микропроцессору исполнять программу, по шагам и используется при отладке программы.
7. Бит 9; флаг прерывания IF (interrupt enable flag), разрешает МП реагировать на прерывания от внешних устройств. Если IF в 0, то МП будет игнорировать прерывания.
8. Бит 10, флаг направления DF (direction flag), заставляет МП уменьшать на единицу (DF = 1) или увеличивать на единицу (DF= 0) регистры индекса после выполнения строковой команды.
9. Бит 11, флаг переполнения OF (overflow flag) служит индикатором ошибок при выполнении операции над числами со знаком. Флаг OF равен 1, если результат сложения двух чисел с одинаковыми знаками или результат двух чисел с противоположными знаками выйдет за пределы доступного диапазона значений операндов. В противном случае он равен 0. При арифметическом сдвиге OF=1, тогда старший (знаковый) бит изменяется совместно с CF. Флаг указывает длину результата умножения. Для установки и сброса флагов используются специальные команды МП. *-■
В МП 8086/8088 программа может быть прервана по трем причинам:
- периферийное устройство посылает сигнал прерывания в МП;
- команда процессора вызывает исключение (особый случай);
- программа выполняет команду INT прерывания.
Каждой перечисленной причине прерывания назначен номер от 0 до 255.
3.2. Микропроцессор 80286
16-разрядный МП 80286 был выпущен в 1983 году и является модернизацией МП 8086. Этот микропроцессор относится к более сложным микропроцессорам. Основными преимуществами МП 80286 являются: эффективная зашита памяти, контролируемый доступ к ресурсам операционной системы, изолирование прикладных программ и малое, время реакций на прерывание. В МП 80286 используется конвейерный принцип выполнения команд с четырьмя уровнями конвейеризации, которые peaлизованы на четырех раздельных устройствах (рис.3.6). К ним относятся: адресное устройство (AU), шинное устройство (BU), исполнительное устройство (EU), командное устройство (IU). На рис.3.7 представлен принцип конвейеризации команд МП 80286, из которого видно, что в отдельные машинные циклы этапы выполнения команд совмещаются.
Шинное устройство соединено с системной шиной (шина адреса, шина управления, шина данных) и осуществляет считывание памяти и портов ввода-вывода, передает информацию 6-байтной очереди команд в преобразователь IU со скоростью 1 байт на цикл тактовой частоты. Командное устройство IU декодирует и преобразует формат полных команд и помещает их в очередь команд (глубина 3 команды).
Исполнительное устройство EU состоит из рабочих региcтров, арифметико-логического устройства (АЛУ), микропрограммного ПЗУ, которое задает последовательность внутренних микрокоманд. Из рисунка видно, что как только текущая команда близка к завершению, ПЗУ вырабатывает сигнал и посылает его в очередь команд IU. Тот, в свою очередь, посылает очередную команду в исполнительное устройство.
Адресное устройство производит преобразование адресов и одновременно контролирует права доступа. В этом устройстве находятся КЭШ-память, в которой содержится базовый адрес,
Рис.3.6. Архитектура микропроцессора 80286
Рис.3.7. Конвейеризация команд МП 80286
предельное граничное значение и права доступа для сегментов виртуальной памяти.
КЭШ-память предназначена для исключения до минимума считывания информации из основной памяти и позволяет устройству адресов выполнять свою функцию за один цикл тактовой частота.
Кроме отмеченного, в архитектуре МП 80286 имеются и другие преимущества. Самым существенным из них является внутреннее устройство управления памятью (MMU). Типичным является случай, когда функции управления памятью выполнялись вне микропроцессора (рис.3.8). Для этих целей обычно была приспособлена внешняя плата, которая использовалась для операционной системы xenix(семейство 86/380 фирмы INTEL.
Рис.3.8. Внутреннее управление памятью
Благодаря внутренней MMU МП 80286 обладает двумя достоинствами:
- не требует внешней платы, что повышает производительность доступа к памяти;
Рис.3.9. Четыре уровня привилегий для каждой задачи МП 80286
- возможность внутренней MMU немного шире, позволяет ввести многозадачный режим и обладает механизмом защиты. Это, в свою очередь, обеспечивает аппаратную поддержку мультизадачности.
Программные уровни в МП 80286 можно разделить на четыре уровня привилегий (рис.3.9). Поэтому можно работать на. одном уровне привилегий, когда программы находятся на одном уровне, и составлять сложные программы, которые находятся на четырех уровнях привилегий. Кроме того, все программы по назначению можно разделить на прикладные пользовательские задачи, задачу планировщика, задачу ввода-вывода и т. д. Программа может состоять как из одной задачи, так и из тысячи отдельных задач.
Уровни привилегий и задач - главные возможности МП 80286. В связи с этим МП 80286 иногда называют суперкомпьютером, реализующим систему, типа UNIX или многооконное программное обеспечение без дополнительных схем для защиты или управления памятью.
В любой момент времена МП выполняет некоторый код, называемый текущей задачей. Задача - это среда, в которой выполняется программа.
Текущее состояние выполнения программы представляет собой текущее содержимое регистров. Среда задачи состоит из содержимого регистров микропроцессора и всего кода с данными в пространстве памяти, доступном из задачи. Пространство памяти всех задач МП 80286 можно представить в виде большого круга (верхняя часть, рис.3.10). Тогда пространство памяти отдельной задачи напоминает сектор. Этот сектор и текущее состояние регистров МП образует среду текущей задачи. Расширенная до 24 разрядов адресная шина позволяет адресовать до 16.Мбайт физической памяти, а использование средств управления виртуальной памятью расширяет это пространство до 1 млрд. байт (1 Гбайт).
В виртуальном адресном пространстве задачи имеются различные объекты. Такие объекты называются сегментами пространства памяти и обозначаются как сегменты кода и сегменты данных.
В любой момент времени код выполняется на определенном "уровне привилегий". Текущий уровень привилегий (CPL) просто равен уровню привилегий выполняемого сегмента кода (см. рис.3.9). Коду с низким уровнем привилегий не разрешается доступ к сегментам данных с более высоким уровнем привилегий. Сегменты кода в данных всегда имеют один из четырех уровней-привилегий. Уровень три привилегий (см. рис.3.9) отводится обычно прикладному коду, а уровни один, два и нуль заняты системными программами, причем, уровень нуль отводится под ядро операционной системы.
На рис.3.10 представлена взаимосвязь двух режимов работы МП 80286: режим реальных адресов, называемый реальным режимом, и защищенный режим виртуального адреса.
Режим реального адреса используется для выполнения программ МП 8086/8088 и подготовки МП в защищенном режиме. Программа МП 8086 - на уровне двоичного объектного кода, МП 80286 выполняет без изменений. Такой режим имитации поведения МП 8086/8088 или режим двоичной совместимости называется режимом реального адреса. Все адреса в этом режиме являются физическими или реальными адресами. Реальный режим устанавливается при подаче сигнала сброса или при включении питания.
В режиме реального адреса не действуют: виртуальная память, мультизаданность и защита. В реальном режиме МП 80286 имеет такую же базовую архитектуру, что в МП 8086/8088. 
Рис.3.10.Взаимосвязь реального и виртуального режимов МП 80286
Система команд МП 80296 является подмножеством системы команд (см. рис.3.10) МП 8086, включая в себя несколько новых команд.
Для формирования физического адреса в реальном режиме используются два компонента. Для определения базового адреса сегмента используется 16-рззрядкый селектор. В селекторе сегмента 16-разрядное значение сдвигается влево на четыре разряда (т. е. умножается на 16) для формирования 20-разрядного базового адреса сегмента. Исполнительный адрес (смещение) расширяется четырьмя старшими нулями для получения 20-разрядного значения и прибавляется к базовому адресу. При сложении переполнение игнорируется. Допустимыми типами данных в реальном режиме являются только знаковые и беззнаковые байты, знаковые и беззнаковые слова, 32-битные указатели и 8/16-битные смещения. Сопроцессор 80287 работает с числами с плавающей запятой.
Прерывания и исключения в реальном режиме нарушают обычный порядок работы системы или программы. В реальном режиме таблица дескрипторов прерываний (IDT) МП 80286 представляет собой таблицу векторов реального прерывания 8086/8088 и занимает пространство от нулевого реального адреса до реального адреса I024 (4 байта на вектор прерывания с 256 возможными входами).'
Единственным способом выхода из реального режима является явное переключение в защищенный режим виртуального адреса. В защищенный режим МП 80266 входит при условии, что при установке бита включения разрешена защита (PE) в регистре словосостояния машины (MSW). Установка бита PE = 1 производится следующим образом: сначала считывается MSW, изменяется только бит РЕ (РЕ=1), а. затем загружается в MSW новое значение. После выполнения этих действий МП работает в естественном режиме - защищенном режиме виртуального адреса. После разрешения защищенного режима МП 80286 необходимо задать такой же режим в сопроцессоре 80287. Для этого служит специальная команда FSETPM.
Защищенный режим. В защищенном режиме видимый программе адрес называется виртуальным адресом. Виртуальный адрес может относиться к ячейке, отсутствующей в реальной памяти. Защищенный режим есть подмножество реального режиме с разрешенным устройством управления памятью. Производительность в этом режиме не уменьшается, но в нем имеются новые команды и большее адресное пространство (см. рис.3.10). Емкость виртуального адресного пространстве может превышать емкость реальной физической памяти. В защищенном режиме совместимость с МП 8086/8088 сохраняется на уровне и исходного кода, но не на бинарном уровне. Программы МП 8086/8088 для выполнения в защищенном режиме приходится рекомпилировать.
В виртуальном режиме 32-битный указатель, состоящий из 16-разрядных селектора и смещения, называется виртуальным адресом. Селектор определяет базовый адрес сегмента, к которому для получения физического адреса прибавляется смешение. Но вместо образования базового адреса сегменте путем сдвига селектора на 4 разряда влево базовый адрес получается посредством обращения (индексирования) к таблице в памяти.
В виртуальном режиме сегмент МП 80286 - это есть часть диапазона виртуальных адресов, длина которой может меняться от 1 байта до 64 Кбайт.
При разработке программ для защищенного режима используются новые языки программирования (ASM-286, C-286, Паскаль-286) и утилиты (BND-286 – прикладной редактор связей, BLD-286 – утилита генерации системы и др.). Под утилитой понимается независимая сервисная программа для широкого спектра применений.
При переводе МП 80286 в защищенный режим устройство управления памяти ожидает наличия в памяти нескольких таблиц преобразования адресов. МП автоматически обращается к таблицам преобразования виртуальных адресов программы в физические адреса.
Виртуальная память в защищенном режиме, мультизадачность и зашита памяти опираются на 8-байтовые единицы дескриптивной информации, хранящейся в таблицах, и называемые дескрипторами.
Дескриптор - это информация о параметрах (атрибутах) данных, играющая роль косвенного адреса ячейки памяти с данными [3].
Для МП 80286 дескрипторы - это, специальные сущности, распознаваемые устройством управления памятью в защищенном режиме.
К дескрипторам производятся автоматическое обращение для достижения назначения в межсегментных командах JMP, CALL, INT и в процедурах обслуживания прерываний. Схема управления памятью МП 80286 распознает дескрипторы как новые типы
данных, и в зависимости от информации в дескрипторах МП 80286
предпринимает специальные действия. Сложные действия могут
заставить МП 80286 произвести переключение задачи.
Шлюзы так же, как дескрипторы, имеют 8-байтный формат, находятся в дескрипторных таблицах и являются новым типом данных для зашиты режима.
Регистры. Внутренние регистры МП 80286 представлены на рис.3.11 и 3.12. В МП имеется 17 регистров. Восемь регистров (АХ, ВХ, СХ, DX, SР, ВР, SI, DI) предназначены для арифметических вычислений, формирования адресов и смещений и обеспечивают программную совместимость МП 8086/8088.
К сегментным регистрам относятся четыре регистра: регистр
сегмента кода CS, данных DS, дополнительного сегмента ES
и сегмента стека SS. Длина этих регистров увеличена
с 16 разрядов до 64 разрядов по сравнению с МП 8086/8088. Каждый из регистров (см. рис.3.11) содержит 16-разрядный селектор и 48-разрядный дескриптор. Задача может иметь доступ
максимум к 16 Кбайтным сегментам памяти; когда значение селектора загружается в регистр сегмента, процессор автоматически обновляет связанный с ним дескриптор. В защищенном режиме базовый адрес, граница и атрибуты целиком обновляются содержимым дескриптора; а в реальном режиме обновляется только базовый адрес путем сдвига влево на четыре бита значения селектора, а граница и атрибуты фиксированы. ■ \
На рис.3.12 представлены четыре регистра управления сегментированной памятью. Эти регистры известны так же, как регистры системных адресов, загружаемых операционной системой. Эти четыре регистра указывают на структуры данных, которые управляют механизмом сегментированной памяти. Они определены для ссылок на таблицы или сегменты, поддергиваемые системой защиты МП 80286.
Адреса этих таблиц и сегментов хранятся в специальных регистрах системных адресов и системного сегмента. В качестве этих таблиц используются таблицы глобальных дескрипторов, локальных дескрипторов и дескрипторов прерываний.
Рис.3.11. Регистры МП 80286
Рис.3.12. Регистры МП 80286
Регистр таблицы глобальных дескрипторов (GDTR) содержит 24-разрядный базовый адрес и 16-разрядную границу таблицы глобальных дескрипторов.
Регистр таблицы локальных дескрипторов (LDTR) содержит 16-разрядный селектор для таблицы локальных дескрипторов.
Регистр задачи (ТR) указывает на информацию, необходимую процессору для определения текущей задачи. Он содержит 16-разрядный, селектор дескриптора сегмента состояния задачи.
Регистр таблицы дескрипторов прерывания (IDTR) указывает на таблицу точек входа в программы обработки прерываний.
Рис.3.13. Регистры флагов МП 80286
Регистр содержит базовый адрес и 16-разрядную границу таблицы дескриптов прерываний.
Указатель команды (IP) является 16-разрядным регистром и выполняет такие же функции, как и в МП 8086/8088.
Флаги. 16-разрядный регистр флагов (рис.3.13) содержит девять флагов состояния и управления. По сравнению с регистром флагов МП 8086/8088 регистр флагов МП 80286 содержит два специфических поля:
- NT (вложенная задача), бит 14. Этот бит используется для управления последовательностью прерываемых и вызываемых задач. Бит NT влияет на выполнение команды IRET.
- IOPL (уровень привилегий ввода-вывода), биты 12 - 13. Это двухбитовое поле используется в защищенном режиме. Биты IOPL показывают наивысшее значение текущего уровня привилегии (CPL), позволяющее восполнять команды ввода-вывода, не приводя к обработке исключения.
Слово состояния машины (MSW) представляет собой 16-разрядный регистр (рис.3.14), содержащий флаги, которые управляют или показывают условия, относящиеся к системе в целом, а не к отдельной задаче. В этом регистре используются только четыре бита, а другие зарезервированы для будущего использования (например в МП 80386).
Рис.-3.1.4, Регистр слова состояния машины Ш 80286
Бит 3 (TS) - переключение задачи. Процессор устанавливает этот бит при переключении задачи.
Бит 2 (EM) - эмуляция. Показывает, нужно ли эмулировать (имитировать) функции сопроцессора.
Бит 1 (MP) – арифметический сопроцессор, управляет функцией команды WAIT, которая используется для взаимодействия с сопроцессором. В реальном режиме переключения задач быть не может. TS, MP и EМ должны быть сброшены в нуль.
Бит 0 (PE) - включение защиты, устанавливается в 1, если МП 80286 работает в защищенном режиме, и сброшен в 0 при работе в реальном режиме.
Как ранее было отмечено, основной функцией управления памятью является преобразование адреса. В реальном режиме вычисление физического адреса получается сложением сдвинутого влево на 4 бита базового адреса сегмента, находящегося в селекторе, и исполнительного адреса (смещения), расширенного за счет старших нулевых бит.
В защищенном режиме 32-битный указатель - виртуальный адрес - состоит из 16-разрядного селекторе, адресующего дескриптор к соответствующей таблице, и 16-битного смещения.
Селектор - это 16-разрядный указатель, который будучи загружен в регистр или использован соответствующими командами, выбирает определенные дескрипторы (рис.3.15).
Рис.3.15. Формат селектора
Селектор имеет следующие поля.
Индекс - биты 15 - 3. Индекс выбирает один из 8192 дескрипторов в таблице дескрипторов. Процессор умножает значение этого индекса на 8 (длина дескриптора в байтах) и добавляет результат к базовому адресу таблицы дескрипторов.
Индикатор таблицы TI - бит 2. Определяет таблицу дескрипторов, на которую ссылается селектор, нуль означает таблицу глобальных дескрипторов (GDT), а единица - текущую таблицу локальных дескрипторов ( LDT).
Запрашиваемый уровень привилегий RPL - биты 1 – 0. Используется механизмом зашиты систем. Это поле не участвует в преобразовании адреса. Защита требует наложения на обычные программы (не входящие в операционную систему) трех ограничений:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


