- •Введение Основные определения
- •Системы счисления Основные определения
- •Двоичная, восьмеричная и шестнадцатеричная системы счисления
- •Смешанные системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Арифметические действия в системах счисления с основанием, отличным от 10
- •Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
- •Обратный и дополнительный коды и их применение в операциях с отрицательными числами
- •Сложение и вычитание чисел со знаком в дополнительном коде
- •Архитектура персонального компьютера История развития вычислительной техники
- •Основные термины и определения
- •Функциональная структура компьютера
- •Архитектура микропроцессора
- •Регистры общего назначения и сегментные регистры
- •Управляющие регистры Регистр cr0.
- •Память компьютера
- •Структура программы на языке Ассемблера Формат кодирования в языке Ассемблера
- •Структура программы на ассемблере
- •Простейшая программа в ос Windows
- •Типы и форматы данных в ассемблере
- •Базовая система команд микропроцессора ia-32
- •Операнды языка ассемблер
- •Стандартные директивы сегментации
- •Макрокоманды
- •Процедуры (функции)
- •Организация интерфейса с процедурой
- •Возврат результата из процедуры
- •Связь ассемблера с языками высокого уровня
- •Обработка прерываний
- •Создание исполняемого файла
- •Отладка программы
- •Математический сопроцессор
- •Представление чисел с плавающей точкой в разрядной сетке вычислительной машины
- •Архитектура сопроцессора
- •Система команд сопроцессора
- •Команды передачи данных
- •Команды загрузки констант
- •Команды сравнения данных
- •Арифметические команды
- •Команды управления математическим сопроцессором
- •Пример программы с использованием команд сопроцессора
- •Сложные типы данных Структуры
- •Объединения
- •Программирование для windows
- •Основы программирования в ос Windows
- •Консольные приложения Windows
- •Работа с файлами в системе Windows
- •Вывод чисел в консоль
- •Оконные (каркасные) приложения Windows
- •Графика в оконных приложениях Windows
- •Ресурсы в Windows-приложениях
- •Приложение 1
Управляющие регистры Регистр cr0.
0-й бит, разрешение защиты (РЕ). Переводит процессор в защищенный режим.
1-й бит, мониторинг сопроцессора (МР). Вызывает исключение 7 по каждой команде WAIT.
2-й бит, эмуляция сопроцессора (ЕМ). Вызывает исключение 7 по каждой команде сопроцессора.
3-й бит, бит переключения задач (TS). Позволяет определить, относится данный контекст сопроцессора к текущей задаче или нет. Вызывает исключение 7 при выполнении следующей команды сопроцессора.
4-й бит, индикатор поддержки инструкций сопроцессора (ЕТ).
5-й бит, разрешение стандартного механизма сообщений об ошибке сопроцессора (NE).
5-15-й бит, не используются.
16-й бит, разрешение защиты от записи на уровне привилегий супервизора (WP).
17-й бит, не используется.
18-й бит, разрешение контроля выравнивания (AM).
19-28-й бит, не используются.
29-й бит, запрет сквозной записи кэша и циклов аннулирования (NW).
30-й бит, запрет заполнения кэша (CD).
31-й бит, включение механизма страничной переадресации.
Регистр CR1 пока не используется.
Регистр CR2 хранит 32-битный линейный адрес, по которому был получен последний отказ страницы памяти.
Регистр CR3 - в старших 20 битах хранится физический базовый адрес таблицы каталога страниц.
Остальные биты.
3-й бит, кэширование страниц со сквозной записью (PWT).
4-й бит, запрет кэширование страницы (PCD).
Регистр CR4
0-й бит, разрешение использования виртуального флага прерываний в режиме V8086 (VME).
1-й бит, разрешение использования виртуального флага прерываний в защищенном режиме (PVI).
2-й бит, превращение инструкции RDTSC в привилегированную (TSD).
3-й бит, разрешение точек останова по обращению к портам ввода-вывода (DE).
4-й бит, включает режим адресации с 4-мегабайтными страницами (PSE).
5-й бит, включает 36-битное физическое адресное пространство (РАЕ).
6-й бит, разрешение исключения МС (МСЕ).
7-й бит, разрешение глобальной страницы (PGE).
8-й бит, разрешает выполнение команды RDPMC (РМС).
9-й бит, разрешает команды быстрого сохранения/восстановления состояния сопроцессора (FSR).
Системные адресные регистры
GDTR - 6-байтный регистр, в котором содержится линейный адрес глобальной дескрипторной таблицы.
IDTR - 6-байтный регистр, содержащий 32-битный линейный адрес таблицы дескрипторов обработчиков прерываний.
LDTR - 10-байтный регистр, содержащий 16-битный селектор (индекс) для GDT и 8-байтный дескриптор.
TR - 10-байтный регистр, содержащий 16-битный селектор для GDT и весь 8-байтный дескриптор из GDT, описывающий TSS текущей задачи.
Регистры отладки
DR0...DR3 - хранят 32-битные линейные адреса точек останова.
DR6 (равносильно DR4) - отражает состояние контрольных точек.
DR7 (равносильно DR5) - управляет установкой контрольных точек.
Режимы работы микропроцессора
Реальный режим (Real Mode). После инициализации (системного сброса) МП находится в реальном режиме. В реальном режиме МП работает как очень быстрый 8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) МП 8086 полностью совпадают с аналогичными функциями других МП IA-32 в реальном режиме.
Режим системного управления (System Management Mode). В новых поколениях МП Intel появился еще один режим работы - режим системного управления. Он предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже от операционной системы. МП переходит в этот режим только аппаратно: по низкому уровню на контакте SMI# или по команде с шины APIC (Pentium+). Никакой программный способ не предусмотрен для перехода в этот режим. МП возвращается из режима системного управления в тот режим, при работе в котором был получен сигнал SMI#. Возврат происходит по команде RSM. Эта команда работает только в режиме системного управления и в других режимах не распознается, генерируя исключение #6 (недействительный код операции).
Защищенный режим (Protected Mode) является основным режимом работы МП. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. МП может быть переведен в защищенный режим установкой бита 0 (Protect Enable) в регистре CR0. Вернуться в режим реального адреса МП может по сигналу RESET или сбросом бита PE.
В защищенном режиме программа оперирует с адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным. Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт.
Виртуальный режим i8086 (V86). В режим V86 процессор может перейти из защищённого режима, если установить в регистре флагов EFLAGS бит виртуального режима (VM-бит). Номер бита VM в регистре EFLAGS - 17. Когда процессор находится в виртуальном режиме, его поведение во многом напоминает поведение процессора i8086. В частности, для адресации памяти используется схема <сегмент:смещение>, размер сегмента составляет 64 килобайта, а размер адресуемой в этом режиме памяти - 1 мегабайт. Виртуальный режим предназначен для работы программ, ориентированных на процессор i8086 (или i8088). Но виртуальный режим – это не реальный режим процессора i8086, имеются существенные отличия. Процессор фактически продолжает использовать схему преобразования адресов памяти и средства мультизадачности защищённого режима.
В виртуальном режиме используется трансляция страниц памяти. Это позволяет в мультизадачной операционной системе создавать несколько задач, работающих в виртуальном режиме. Каждая из этих задач может иметь собственное адресное пространство, каждое размером в 1 мегабайт.
Все задачи виртуального режима обычно выполняются в третьем, наименее привилегированном кольце защиты. Когда в такой задаче возникает прерывание, процессор автоматически переключается из виртуального режима в защищённый. Поэтому все прерывания отображаются в операционную систему, работающую в защищённом режиме.
Обработчики прерываний защищённого режима могут моделировать функции соответствующих прерываний реального режима, что необходимо для правильной работы программ, ориентированных на реальный режим операционной системы MS-DOS.