У вас вопросы?
У нас ответы:) SamZan.net

Конспект лекций 32 ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86 План лекции 1

Работа добавлена на сайт samzan.net: 2016-06-09

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.4.2025

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

Языки программирования. Ассемблер. Конспект лекций -32-

ЛЕКЦИЯ 4

ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

План лекции

1. Набор регистров процессора, их форматы, назначение, особенности

использования.

2. Программируемые регистры.

3. Регистр флажков.

1. Набор регистров процессора, их форматы,

назначение, особенности использования.

Для программирующих на языке ассемблер главным объектом при изу-

чении любого процессора является набор доступных внутренних регистров,

образующих программную или регистровую модель процессора. Она пока-

зывает те ресурсы процессора, которыми может пользоваться программист,

привлекая его систему команд.

В разработке регистровых моделей современных процессоров имеются

два крайних подхода, между которыми находятся и промежуточные вариан-

ты. В первом подходе почти все регистры процессора выполняют абсолютно

одинаковые функции, т. е. являются полностью взаимозаменяемыми. Обычно

такие регистры называются универсальными. Во втором подходе, характер-

ном для процессоров фирмы Intel, многие регистры специализированы, т. е. в

некоторых командах выполняют специфические функции. Считается, что за-

крепление регистров за часто используемыми функциями обеспечивает более

компактное кодирование команд (или, как говорят, улучшает плотность кода)

и приводит к повышению производительности процессора. Конкретные ре-

гистры применяются в командах умножения и деления двойной точности,

преобразования, управления циклами, динамического сдвига, ввода-вывода,

цепочечных командах и в стековых операциях.

Расширенный набор регистров процессора х86 объединяет лучшие сто-

роны обоих подходов. В нем сохранены специализированные регистры для

некоторых команд (в целях совместимости с предыдущими процессорами),

но в большинстве команд при необходимости можно заменить предпочти-

тельный регистр. Для использования другого регистра перед командой мож-

но указать префиксы замены сегмента, размеров операнда и адреса; а также

воспользоваться альтернативной, более длинной формой команды, в которой

действует другой режим адресации. Различия в объектном коде, полученном

при задании регистра, который участвует в команде вместо принимаемого по

умолчанию, почти незаметны для программиста. Если же в конкретных ко-

мандах привлекаются регистры по умолчанию, длина объектного кода обыч-

но сокращается.

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

1. Набор регистров процессора, их форматы, назначение, особенности использования.

В программной модели процессора х86 имеется 31 регистр. Они под-

разделяются на 16 регистров прикладного программиста (пользовательские

регистры) и 15 регистров системного программиста (системные регистры).

Напомним, что поле ss указывает масштабный коэффициент индекса,

поле index определяет любой регистр общего назначения, кроме ESP, кото-

рый служит индексным регистром, и поле base идентифицирует любой ре-

гистр общего назначения, участвующий в адресации как базовый регистр.

2. Программируемые регистры.

Большинство регистров процессора используется прикладными про-

граммистами, и только часть системными программистами. Программи-

руемые регистры включают в себя регистры общего назначения, сегмента-

ции, флажков и указателя команды.

Некоторые регистры входят в базовый регистровый набор. Это группа

регистров, которые есть в каждом процессоре семейства х86. В н ее в ходят

младшие 16 бит прикладных регистров и слово состояния.

Регистров общего назначения всего восемь. Они содержат по 32 бита.

Имена полных 32-битных регистров начинаются с буквы Е (Extended рас-

ширенный): ЕАХ, ЕВХ, ЕСХ, EDX, EBP, ESI, EDI и ESP. Младшие 16 бит

каждого из этих регистров можно указывать так же, как и в прежних CPU:

АХ, ВХ, СХ, DX, BP, SI, DI и SP. Наконец, первые четыре 16-битных регист-

ра можно адресовать парами байтных регистров: АН и AL для АХ, DH и DL

для DX, ВН и ВL для ВХ, СН и CL для СХ. Формат регистров, на примере

ЕАХ, приведен на рис ( рис. 4.1).

Рис. 4.1. Формат регистров ЕАХ, ЕВХ, ЕСХ, EDX

Регистры EBP, ESI, EDI и ESP используются как указательные. Их

формат приведен на рис. 4.2.

Рис. 4.2. Формат регистров EBP, ESI, EDI и ESP

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

2. Программируемые регистры..

Языки программирования. Ассемблер. Конспект лекций -34-

Все регистры адресуются как двойные слова, т. е. как 32-битные реги-

стры. В двухсловном регистре одна команда (например, MOV ЕАХ,1) опери-

рует всем двойным словом. Младшая половина каждого регистра адресуется

как слово (16-битный регистр). В двухсловный регистр можно загрузить сло-

во в младшую половину, не влияя на старшие 16 бит. Когда нужно обращать-

ся к регистру в 32- или 16-битной формах (как удобнее программисту), мы

помещаем в скобках букву Е. Например, (Е)АХ означает «ЕАХ или АХ что

нужно». Первые четыре регистра допускают в младшей половине адресацию

байт.

Каждый из регистров общего назначения имеет специализированное

применение. В командах типа ADD программист может указывать в качестве

операндов любые два регистра. В операциях PUSH предполагается, что стек

адресует регистр SP.

Покажем назначение каждого регистра:

(Е)АХ аккумулятор, применяется в десятичной арифметике.

(Е)ВХ регистр базы, применяется как база при вычислении адреса.

(Е)СХ счетчик, применяется как счетчик в циклических операциях.

(E)DX —регистр данных, хранит данные для нескольких операций.

(E)SP —указатель стека, содержит смещение вершины стека.

(Е)ВР указатель базы, может содержит базу области данных.

(E)SI и (E)DI индексы источника и получателя, применяются для ад-

ресации смещения.

Регистры сегментации применяются для определения начальных сме-

щений в памяти области кода и данных. Каждый из шести этих регистров

имеет свое назначение. CS адресует программный код, DS данные про-

граммы, SS ее стек. Дополнительные регистры ES, TS, FS и GS предна-

значены для структур данных. Из них только ES используется в конкретных

командах. Все регистры 16-разрядные.

Прикладные программы обычно не обращаются к регистрам сегмента-

ции, ими полностью управляет операционная система. Содержимое регист-

ров сегментации вместе с другими регистрами определяет, где находится

следующая команда (CS плюс указатель команды), где вершина стека (SS

плюс ESP) и т. д. Способ объединения содержимого регистров зависит от

режима, в котором работает программа.

Еще два регистра это регистр флажков EFlags, который управляет

некоторыми операциями и показывает текущее состояние процессора х86, и

указатель команды, который используется вместе с CS для адресации сле-

дующей команды. Программисту доступны только некоторые биты в регист-

ре флажков, а указатель команды модифицируется только при переходах и

вызовах.

3. Регистр флажков.

Регистр флажков EFlags процессора х86 содержит 32 бита. ПрикладныеРе-

гистр флажков EFlags процессора х86 содержит 32 бита. Прикладные про-

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

3. Регистр флажков.

Языки программирования. Ассемблер. Конспект лекций -35-

граммы работают только с младшими 16 битами EFlags. Биты в EFlags отра-

жают состояние х86 и управляют выполнением некоторых операций.

Различают три типа флажков: системные (они отражают текущее со-

стояние компьютера в целом и чаще используются операционной системой, а

не прикладными программами), состояния (показывают состояние конкрет-

ной программы) и управления (прямо влияют на некоторые команды).

Системные флажки. Флажок VM виртуальный режим.

0 = защищенный режим; 1 = режим виртуального х86. Этот флажок по-

казывает, работает ли ваша программа в режиме виртуального х86. Обычно

вы не можете проверить этот бит (и следующий) в реальном режиме.

Флажок R возобновление.

0 = нет ошибки; 1 = ошибка отладки.

Этот флажок временно включает средства отладки, когда программа

возобновляет работу после особого случая отладки.

Флажок NT вложенная задача.

0 = текущая задача не вложена; 1 = текущая задача вложена.

Этот флажок показывает, выполняется ли текущая задача «под» неко-

торой другой задачей. Он влияет на выполнение команды IRET.

Флажок IOPL уровень привилегии ввода/вывода (биты 13 и 12).

0 = текущая задача имеет высший приоритет; 1 = следующий ниже;

2 = следующий ниже; 3 = низший приоритет.

Два бита IOPL используются процессором и операционной системой

для определения прав доступа прикладной программы к средствам вво-

да/вывода. Допустимые уровни варьируются от 0 (наиболее привилегирован-

ные) до 3 (наименее привилегированные).

Флажок I прерывание.

0 = внешние прерывания запрещены; 1 = разрешены.

Этот флажок определяет, будет ли CPU реагировать на внешние пре-

рывания или игнорирует их. Он не влияет на особые случаи прерывания (по-

рождаемые программой) и немаскируемые внешние прерывания. Программы

в мультизадачных системах должны избегать воздействия на этот флажок.

Флажок Т трассировка.

0 = нет трассировки; 1 = прерывание после каждой команды.

Этот флажок вызывает генерирование особого случая прерывания по

каждой команде. Применяется для покомандной работы при отладке

Флажки состояния. Флажки состояния (прямо используемые при-

кладными программами) устанавливаются многими командами х86, особен-

но арифметическими.

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

3. Регистр флажков.

Языки программирования. Ассемблер. Конспект лекций -36-

Программист может проверить флажок для определения последующих

действий программы. Хотя каждый флажок имеет общую функцию, точный

смысл его зависит от последней выполненной команды.

Флажок О переполнение.

0 = нет переполнения; 1 = возникло переполнение.

Этот флажок устанавливается в 1, если результат арифметической опе-

рации превышает доступные пределы; если этого нет, флажок переполнения

сбрасывается в 0.

Флажок S знак.

0 = старший бит содержит 0; 1 = старший бит содержит 1.

Значение этого флажка совпадает со старшим битом результата. Для

знаковых чисел этот бит показывает знак результата: 1 = отрицательный, 0 =

положительный.

Флажок Z нуль.

0 = последний ненулевой результат; 1 = последний результат был нуле-

вым.

Этот флажок устанавливается в 1 (истина), если результат операции

нуль, и сбрасывается в 0 (ложь), если результат ненулевой.

Флажок А коррекция или вспомогательный перенос.

0 = нет внутреннего переноса; 1 = внутренний перенос.

Этот флажок показывает состояние «внутреннего» переноса или заема (при

сложении и вычитании) из бита 3 в бит 4 межтетрадный перенос или заем.

Флажок Р паритет.

0 – младший байт имеет четный паритет; 1 = младший байт имеет не-

четный паритет.

Состояние этого флажка зависит от младшего байта результата: если он

содержит четное число единиц, то Р = 1, а в случае нечетного числа единиц Р = 0.

Флажок С перенос.

0 = нет переноса из старшего бита; 1 = есть перенос.

Показывает, вызвали ли сложение или вычитание перенос или заем из

старшего бита результата.

Флажки управления. Флажки управления действуют только на цикли-

ческие команды.

Флажок D направление.

0 – автоинкремент; 1 = автодекремент в циклических командах.

ЛЕКЦИЯ 4 ОСНОВЫ АРХИТЕКТУРЫ ЭВМ ЛИНИИ Х86

3. Регистр флажков.

Языки программирования. Ассемблер. Конспект лекций -37-

Этот флажок управляет «направлением» операций. Когда D = 0, циклы

обрабатываются от младших адресов к старшим, а когда D = 1, обработка

производится от старших адресов к младшим.__




1.  Анализ инновационной политики и ее роли в конкурентной борьбе Появление нового или обновленного товара
2. Векторная алгебра и аналитическая геометрия 20132014 уч
3. Лабораторная работа 1 1 Лабораторная раб
4. Силовое электрооборудование корнеплодохранилища ёмкостью 500 тон
5. а Анатомические свойства человека- производны от роста и развития тканей организма.
6. мале підприємство
7. Тема - Стихотворение С
8. Реферат Государственная регистрация земельных участков, прав на земельные участкии и сделок с ними в Республике Беларусь
9. Человек как личность в системе социогенеза
10. Метод осадительного титрования.html