Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 5_Система команд.doc
Скачиваний:
51
Добавлен:
20.03.2015
Размер:
329.73 Кб
Скачать

5. Лекция. Система команд процессоров ia-32 Pentium

  1. Система команд процессоров IA-32 Pentium

    1. Регистры и адресация

      1. Структура регистров процессоров IA-32

    2. Команды и последовательности команд

      1. Нотация для описания операций с регистрами

      2. Нотация языка ассемблера

      3. Базовые типы команд

      4. Выполнение команд и линейный код

      5. Ветвление

      6. Флаги кодов условий регистра состояния

    3. Режимы адресации

    4. Команды IA-32

      1. Программа для сложения чисел

      2. Формат машинных команд

      3. Однобайтовые команды

      4. Кодировка непосредственной адресации

      5. Режимы адресации и поля смещения

Все процессоры корпорации Intel имеют общее название Intel Architecture (IA). Мы с вами рассмотрим лишь процессоры IA, которые работают с 32-разрядными адресами памяти и 32-разрядными данными. Общее название процессоров этого семейства IA-32, а самые последние их представители носят имя Pentium. Пер­вый процессор архитектуры IA-32 — процессор 80386 — увидел свет в 1985 году. После этого были созданы процессоры 80486 (1989), Pentium (1993), Pentium Pro (1995), Pentium II (1997), Pentium III (1999) и Pentium 4 (2000). Каждый новый процессор обладал более высокой производительностью, что достигалось за счет множества архитектурных усовершенствований и новых решений в микроэлек­тронной технологии. Последние его члены поддерживают специализированные команды для управле­ния мультимедийной графической информацией и обработки векторных данных. Набор команд процессоров IA-32 очень большой, по­этому придется ограничиться рассмотрением самых основных команд и режимов адресации, а полную информацию об архитектуре системы команд процессоров IA-32 и их языке ассемблера вы найдете на web-узле Intel, который находится по адресу http://www.intel.com.

5.1. Регистры и адресация

В архитектуре процессоров IA-32 память адресуется побайтово при помощи 32-разрядных адресов, а команды работают с операндами размером 8 и 32 разря­да. Эти два размера операндов, согласно терминологии Intel, называются байтом и двойным словом. В первых моделях процессоров Intel 16-разрядный операнд назывался словом. Для хранения информации используется прямой порядок байтов, описанный в разделе 4.2. Многобайтные операнды могут начинаться по любым адресам. Выравниваться как-либо в памяти они не должны.

Структура регистров процессоров IA-32

Регистры процессора IA-32 показаны на рис. 5.1., Обычно восемь 32-разрядных регистров с именами от R0 до R7 являются регистрами общего назначения и ис­пользуются для хранения операндов-данных или адресной информации. Кроме то­го, имеется восемь регистров с плавающей запятой для хранения операндов-дан­ных, имеющих размер двойного или четверного (64 разряда) слова. Регистры с плавающей запятой содержат поле расширения (на рис. 5.1. не показано), с уче­том которого их длина составляет 80 бит. Дополнительные биты используются для увеличения точности при обработке процессором чисел с плавающей запя­той. Архитектура IA-32 основана на модели памяти, в которой различные области памяти, называемые сегментами, имеют разное назначение. Сегмент кода содер­жит команды программы, сегмент стека — стек процессора, а четыре сегмента дан­ных предназначены для хранения операндов-данных. В шести сегментных регист­рах хранятся значения селекторов, используемые для идентификации указанных сегментов в адресном пространстве памяти. О назначении этих регистров мы по­говорим в разделе 9.6, где будет обсуждаться семейство IA-32. Пока же такого рода информация нам не нужна. 32-разрядные адреса в архитектуре IA-32 часто при­меняются для доступа к тем областям памяти, в которых располагается сама про­грамма, стек процессора и области данных.

0

NT

IOPL

OF

DF

IF

TF

SF

ZF

0

AF

O

PF

1

CF

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0