Государственное Образовательное Учреждение высшего профессионального образования Московский Авиационный Институт Государственный Технический Университет "маи" кафедра 304. конспект

Вид материалаКонспект

Содержание


Регистры общего назначения (регистры данных)
Регистровые указатели
Регистры сегментов (сегментные регистры)
Указатель команд и регистр флагов
Условные флаги в алфавитном порядке.
Установка флага осуществляется следующими командами ассемблера
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   15

Регистры общего назначения (регистры данных)


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

AX

Аккумулятор

AH, AL

BX

Базовый регистр

BH, BL

CX

Счетчик

CH, CL

DX

Регистр данных

DH, DL

Допускается обращение к частям этих регистров, т.е. старшему байту (вторая буква Н) и младшему байту (вторая буква L).
  1. Регистровые указатели


Группа содержит непосредственно указатели

SP – указатель стека,

BP – указатель базы

и индексные регистры

SI – индекс источника,

DI – индекс приемника.

Регистры-указатели используются для работы со специальной структурой памяти – стеком; индексные регистры используются при выборке операндов из памяти.
  1. Регистры сегментов (сегментные регистры)


Сегментация памяти позволяет укоротить адресные коды, кроме того, каждый сегмент имеет свое предназначение, что повышает надежность программ.

CS (Code Segment) – регистр сегмента команд, определяет начало сегмента, содержащего адрес текущей выполняемой команды;

DS (Data Segment) – регистр сегмента данных, определяет начало сегмента, содержащего константы и данные;

SS (Stack Segment) – регистр сегмента стека, указывает на начало сегмента стека;

ЕS (Extension Data Segment) – регистр дополнительного сегмента данных, определяет начало сегмента, который обычно используется для запоминания промежуточных данных или как расширение сегмента данных. В более поздних моделях МП есть дополнительные сегменты:

FS, GS – дополнительные сегменты данных

LDTR – регистр локальной таблицы дескрипторов.
  1. Указатель команд и регистр флагов


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



Флаги разделяют на:
  • условные (флаги условий), отражающие результаты выполнения предыдущей команды в АЛУ и используемые в командах условных переходов;
  • управляющие (флаги управления), от которых зависит выполнение специальных функций МП.
  1. Условные флаги в алфавитном порядке.

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 элемента:
  1. Блок управления шиной
  2. Очередь команд
  3. Сегментные регистры



Структура команд

Операционная часть

Адресная часть