Государственное Образовательное Учреждение высшего профессионального образования Московский Авиационный Институт Государственный Технический Университет "маи" кафедра 304. конспект
Вид материала | Конспект |
- Инновационной образовательной программы, 1090.47kb.
- Самостоятельная работа 2 часа в неделю всего часов, 28.69kb.
- Самостоятельная работа 2 часа в неделю всего часов, 45.89kb.
- Самостоятельная работа 2 часа в неделю всего часов, 73.46kb.
- Самостоятельная работа 2 часа в неделю всего часов, 46.6kb.
- Самостоятельная работа 2 часа в неделю всего часов, 41.37kb.
- Самостоятельная работа 2 часа в неделю всего часов, 41.08kb.
- Самостоятельная работа 2 часа в неделю всего часов, 64.33kb.
- Самостоятельная работа 2 часа в неделю всего часов, 29.72kb.
- Самостоятельная работа 2 часа в неделю всего часов, 33.42kb.
Регистры общего назначения (регистры данных)
Эти регистры используются для хранения операндов, промежуточных результатов и других видов данных и адресов. Каждый из указанных регистров имеет еще и дополнительное специальное назначение для определенных команд языка ассемблера.
AX | Аккумулятор | AH, AL |
BX | Базовый регистр | BH, BL |
CX | Счетчик | CH, CL |
DX | Регистр данных | DH, DL |
Допускается обращение к частям этих регистров, т.е. старшему байту (вторая буква Н) и младшему байту (вторая буква L).
-
Регистровые указатели
Группа содержит непосредственно указатели
SP – указатель стека,
BP – указатель базы
и индексные регистры
SI – индекс источника,
DI – индекс приемника.
Регистры-указатели используются для работы со специальной структурой памяти – стеком; индексные регистры используются при выборке операндов из памяти.
-
Регистры сегментов (сегментные регистры)
Сегментация памяти позволяет укоротить адресные коды, кроме того, каждый сегмент имеет свое предназначение, что повышает надежность программ.
CS (Code Segment) – регистр сегмента команд, определяет начало сегмента, содержащего адрес текущей выполняемой команды;
DS (Data Segment) – регистр сегмента данных, определяет начало сегмента, содержащего константы и данные;
SS (Stack Segment) – регистр сегмента стека, указывает на начало сегмента стека;
ЕS (Extension Data Segment) – регистр дополнительного сегмента данных, определяет начало сегмента, который обычно используется для запоминания промежуточных данных или как расширение сегмента данных. В более поздних моделях МП есть дополнительные сегменты:
FS, GS – дополнительные сегменты данных
LDTR – регистр локальной таблицы дескрипторов.
-
Указатель команд и регистр флагов
IP – указатель команд, выполняет роль счетчика команд; его содержимое – это смещение относительно начального адреса сегмента команд (CS).
Во время выполнения программы содержимое регистра IP изменяется и всегда хранит адрес следующей выбираемой для выполнения команды.
Flags (PSW) – регистр флагов, содержит информацию о текущем состоянии МП. Рассмотрим структуру регистра флагов подробнее :
Flags | | | | | OF | DF | IF | TF | SF | ZF | | AF | | PF | | CF |
| 15 | | | | 11 | 10 | 9 | 8 | 7 | 6 | | 4 | | 2 | | 0 |
Флаги разделяют на:
- условные (флаги условий), отражающие результаты выполнения предыдущей команды в АЛУ и используемые в командах условных переходов;
- управляющие (флаги управления), от которых зависит выполнение специальных функций МП.
- Условные флаги в алфавитном порядке.
AF (Auxiliary Carry flag) – флаг вспомогательного переноса, предназначенный для обработки чисел в BCD-формате, используется при выполнении арифметических операций над числами длиной 1 байт для индикации переноса из младшей тетрады в старшую (или займа из старшей тетрады). Здесь BCD (Binary Coded Decimal) – двоично-десятичное представление чисел (каждая десятичная цифра кодируется двоичной тетрадой)
CF (Carry flag) – флаг переноса, предназначен для индикации переноса из старшего байта, используется в операндах, разрядность которых больше 16 бит.
OF (Overflow flag) – флаг переполнения, предназначен для индикации переполнения результатов при выполнении арифметических операций. При сложении он устанавливается в 1, если есть перенос в старший бит, но нет переноса из старшего бита.
PF (Parity flag) – флаг четности, используется как контрольный бит, устанавливается в 1, если младший байт содержит четное число единиц.
SF (Sign flag) – флаг знака, равен 1 для отрицательного результата.
ZF (Zero flag) – признак нулевого результата.
Управляющие флаги устанавливаются программным путем и используются для изменения состояния МП.
DF (Direction flag) – флаг направления, применяется в командах обработки строк. При DF=1 обработка осуществляется от наибольшего адреса к меньшему, а при DF=0 – от начала к концу.
Установка флага осуществляется следующими командами ассемблера:
-
Команда
Устанавливает значение DF
STD
1
CLD
0
IF (Interrupt-Enable flag) – разрешение прерывания, используется для разрешения или запрета обработки внешнего маскируемого прерывания. Устанавливается командами ассемблера
-
Команда
Значение IF
Результат установки
STI
1
Обработка прерывания разрешена
CLI
0
Обработка прерывания запрещена
TF (Trap flag) – трассировка, используется для осуществления покомандного (пошагового) выполнения программы. При TF=1 МП автоматически вырабатывает внутренние прерывания после каждой команды, что удобно для отладочного режима выполнения программы. Изменить состояние флага TF довольно сложно.
Две части МП:
ОУ – операционное устройство, выполняет команды; содержит АЛУ, УУ и 10 регистров. Эти устройства обеспечивают выполнение команд, арифметических вычислений и логических операций.
ШИ – шинный интерфейс, подготавливает команду и данные для выполнения; содержит 3 элемента:
- Блок управления шиной
- Очередь команд
- Сегментные регистры
Структура команд
Операционная часть | Адресная часть |