
- •Раздел 1. Общие принципы построения эвм
- •Тема 1.1 История и тенденции развития вычислительной техники. Поколения эвм
- •Тема 1.2. Основные характеристики и классификация эвм
- •Тема 1.3. Архитектура эвм
- •Тема 1.4. Структурные схемы и взаимодействие устройств эвм
- •Тема 1.5. Структурная схема и устройства пк
- •Тема 1.6. Микросхемы системной логики Chipset
- •Тема 1.7. Представление информации в компьютере, единицы измерения информации
- •Раздел 2. Программное обеспечение эвм
- •Тема 2.1. Структура программного обеспечения пк
- •Тема 2.2. Операционные системы
- •Тема 2.3. Файл и файловая система
- •Тема 2.4. Функции и характеристики сетевых ос
- •Тема 2.5. Эволюция режимов работы эвм
- •Раздел 3. Структура базового микропроцессора эвм
- •Тема 3.1. Классификация микропроцессоров
- •1. По числу бис:
- •2. По назначению:
- •3. По виду обрабатываемых сигналов:
- •4. По количеству выполняемых программ:
- •5. По характеру временной организации работы:
- •6. По объему набора инструкций:
- •Тема 3.2. Основные характеристики микропроцессоров
- •1.Разрядность регистров микропроцессора;
- •2.Разрядность шины данных;
- •Тема 3.3. Архитектура микропроцессора
- •Тема 3.4. Структура базового микропроцессора
- •Тема 3.5. Блок внутренних регистров базового микропроцессора
- •Тема 3.6. Сегментные регистры, регистр указателя команд и регистры флагов
- •Тема 3.7. Назначение и классификация уу
- •Тема 3.8. Назначение и классификация алу
- •1. По способу представления чисел:
- •2. По способу действия над операндами:
- •3. По выполняемым функциям алу подразделяются на:
- •4. По структурной организации алу подразделяются на устройства, имеющие:
- •Тема 3.9. Исполнение программного кода
- •Тема 3.10. Сегментная структура программ
- •Раздел 4. Основы программирования на ассемблере
- •Тема 4.1. Этапы создания программы на ассемблере
- •Тема 4.2. Формат команд и их классификация
- •Тема 4.3. Классификация операндов
- •Тема 4.4. Виды команд ассемблера
- •Раздел 5. Защищенный режим работы микропроцессора
- •Тема 5.1. Режимы работы микропроцессора
- •Тема 5.2. Адресация памяти в защищенном режиме
- •Тема 5.3. Дескрипторы и таблицы
- •Тема 5.5. Архитектурные особенности современных микропроцессоров
- •Тема 5.4. Суперскалярная архитектура
- •Принципы построения устройств внутренней памяти
- •4.1. Структура памяти эвм
- •3.2 Представление данных в памяти
- •3.3 Типы данных
- •Тема 6.2. Режимы адресации данных памяти
- •8.1. Общие принципы организации вв
- •10.1. Локальная системная шина
- •10.2. Шина расширения
- •11.1. Способы организации доступа к системной магистрали
- •11.2. Возможные структуры систем пдп
- •6.1. Характеристики систем прерывания
- •6.2. Возможные структуры систем прерывания
- •6.3. Организация перехода к прерывающей программе
Тема 3.6. Сегментные регистры, регистр указателя команд и регистры флагов
Сегментные регистры
Сегментные регистры используются для хранения начальных адресов полей памяти (сегментов), отведенных в программах для хранения:
команд программы (сегмент кода – CS);
данных (сегмент данных – DS);
стековой области памяти (сегмент стека – SS);
дополнительной области памяти данных при межсегментных пересылках (расширенный сегмент – ES), поскольку размер сегмента в реальном режиме работы микропроцессора ограничен величиной 64 Кбайт.
Сегмент в процессорах архитектуры IA-32 является непрерывным участком памяти, доступ к которому осуществляется без изменения значения, загруженного в какой-либо сегментный регистр. В зависимости от того, какого рода информация содержится в сегменте и через какой сегментный регистр к ней осуществляется доступ.
Рис.21 Сегментные регистры
1. Сегмент кода. Содержит команды программы.
Для доступа к этому сегменту служит регистр CS (code segment register) — сегментный регистр кода. Он содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (то есть эти команды загружаются в конвейер микропроцессора).
2. Сегмент данных. Содержит обрабатываемые программой данные.
Для доступа к этому сегменту служит регистр DS (data segment register) — сегментный регистр данных, который хранит адрес сегмента данных текущей программы.
3. Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком.
Работу со стеком микропроцессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этому сегменту служит регистр SS (stack segment register) — сегментный регистр стека, содержащий адрес сегмента стека.
4. Дополнительные сегменты данных.
Регистр ES используется в программах, обрабатывающих строковые последовательности. Если Ваша программа предполагает такую обработку, Вы должны проинициализировать этот регистр соответствующим значением (аналогично принудительной инициализации основного сегмента данных DS).
Регистр указателя команд IP «следит» за ходом выполнения программы, указывая в каждый момент относительный адрес команды, следующей за исполняемой. Регистр IP программно недоступен (IP - это просто его сокращенное название, а не мнемоническое обозначение, используемое в языке программирования); наращивание адреса в нем выполняет микропроцессор, учитывая при этом длину текущей команды. Команды переходов, прерываний, вызова подпрограмм и возврата из них изменяют содержимое IP, осуществляя тем самым переходы в требуемые точки программы.
Рис.22 Регистр указателя команд IP
Регистры флагов (EFLAGS/FLAGS)
Совокупность значений флажков и определяет состояние процессора во время его работы. В самом общем случае слово состояния — это двоичное число, каждый бит которого отражает строго определенный параметр состояния устройства. По результатам операций АЛУ устанавливает либо сбрасывает отдельные биты в регистре флагов F.
Рис.23 Регистры флагов
Разрядность eflags/flags — 32/16 бит. Флаги регистра eflags/flags можно разделить на три группы:
1) 8 флагов состояния. Эти флаги могут изменяться после выполнения машинных команд.
Флаги состояния регистра eflags отражают особенности результата исполнения арифметических или логических операций. Это дает возможность анализировать состояние вычислительного процесса и реагировать на него с помощью команд условных переходов и вызовов подпрограмм. Например,
CF - Флаг переноса (Carry Flag)
PF - Флаг паритета (Parity Flag)
ZF - Флаг нуля (Zero Flag)
SF - Флаг знака (Sign Flag)
OF - Флаг переполнения (Overflow Flag) и другие.
2) 1 флаг управления - DF (Directory Flag). Используется цепочечными командами. Значение флага df определяет направление поэлементной обработки в этих операциях: от начала строки к концу (df = 0) либо наоборот, от конца строки к ее началу (df = 1).
3) 5 системных флагов, управляющих вводом/выводом, маскируемыми прерываниями, отладкой, переключением между задачами и виртуальным режимом 8086.
Таблица 1. Флаги состояния
Мнемоника флага |
Флаг |
Номер бита в eflags |
Содержание и назначение |
cf |
Флаг переноса (Carry Flag) |
0 |
1 — арифметическая операция произвела перенос из старшего бита результата. Старшим является 7, 15 или 31-й бит в зависимости от размерности операнда; 0 — переноса не было |
pf |
Флаг паритета (Parity Flag) |
2 |
1 — 8 младших разрядов (этот флаг — только для 8 младших разрядов операнда любого размера) результата содержат четное число единиц; 0 — 8 младших разрядов результата содержат нечетное число единиц |
af |
Вспомогательный флаг переноса (Auxiliary carry Flag) |
4 |
Только для команд работающих с BCD-числами. Фиксирует факт заема из младшей тетрады результата: 1 — в результате операции сложения был произведен перенос из разряда 3 в старший разряд или при вычитании был заем в разряд 3 младшей тетрады из значения в старшей тетраде; 0 — переносов и заемов в(из) 3 разряд(а) младшей тетрады результата не было |
zf |
Флаг нуля (Zero Flag) |
6 |
1 — результат нулевой; 0 — результат ненулевой |
sf |
Флаг знака (Sign Flag) |
7 |
Отражает состояние старшего бита результата (биты 7, 15 или 31 для 8, 16 или 32-разрядных операндов соответственно): 1 — старший бит результата равен 1; 0 — старший бит результата равен 0 |
of |
Флаг переполнения (Overflow Flag) |
11 |
Флаг of используется для фиксирования факта потери значащего бита при арифметических операциях: 1 — в результате операции происходит перенос (заем) в(из) старшего, знакового бита результата (биты 7, 15 или 31 для 8, 16 или 32-разрядных операндов соответственно); 0 — в результате операции не происходит переноса (заема) в(из) старшего, знакового бита результата |
iopl |
Уровень Привилегий ввода-вывода (Input/Output Privilege Level) |
12, 13 |
Используется в защищенном режиме работы микропроцессора для контроля доступа к командам ввода-вывода в зависимости от привилегированности задачи |
nt |
флажок вложенности задачи (Nested Task) |
14 |
Используется в защищенном режиме работы микропроцессора для фиксации того факта, что одна задача вложена в другую |
Таблица 2. Системные флаги
Мнемоника флага |
Флаг |
Номер бита в eflags |
Содержание и назначение |
tf |
Флаг трассировки (Trace Flag) |
8 |
Предназначен для организации пошаговой работы микропроцессора. 1 — микропроцессор генерирует прерывание с номером 1 после выполнения каждой машинной команды. Может использоваться при отладке программ, в частности отладчиками; 0 — обычная работа |
if |
Флаг прерывания (Interrupt enable Flag) |
9 |
Предназначен для разрешения или запрещения (маскирования) аппаратных прерываний (прерываний по входу INTR). 1 — аппаратные прерывания разрешены; 0 — аппаратные прерывания запрещены |
rf |
Флаг возобновления (Resume Flag) |
16 |
Используется при обработке прерываний от регистров отладки. |
vm |
Флаг виртуального (Virtual 8086 Mode) |
17 |
Признак работы микропроцессора в режиме виртуального 8086. 1 — процессор работает в режиме виртуального 8086; 0 — процессор работает в реальном или защищенном режиме |
ac |
Флаг контроля выравнивания (Alignment Check) |
18 |
Предназначен для разрешения контроля выравнивания при обращениях к памяти. Используется совместно с битом am в системном регистре cr0. К примеру, Pentium разрешает размещать команды и данные с любого адреса. Если требуется контролировать выравнивание данных и команд по адресам кратным 2 или 4, то установка данных битов приведет к тому, что все обращения по некратным адресам будут возбуждать исключительную ситуацию |