Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_po_SP_2013.doc
Скачиваний:
272
Добавлен:
11.05.2015
Размер:
754.69 Кб
Скачать

46 Понятие программной модели ia-32. Регистры состояния и управления.

Понятие программной модели IA-32.

Программная модель– набор ресурсов микропроцессора, необходимых для выполнения и хранения в памяти вычислительной системы команд программы, данных и информации о текущем состоянии программы и микропроцессора

Программную модель микропроцессора Intelсоставляют:

  • пространство адресуемой памяти;

  • набор регистров для хранения данных общего назначения;

  • набор сегментных регистров;

  • набор регистров состояния и управления;

  • набор регистров устройства вычислений с плавающей точкой (сопроцессора);

  • набор регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора;

  • набор регистров SSE-расширения с плавающей точкой;

  • программный стек. Это специальная информационная структура, работа с которой предусмотрена на уровне машинных команд.

Регистры общего назначения используются в программах для хранения:

  • операндов логических и арифметических операций;

  • компонентов адреса;

  • указателей на ячейки памяти.

Все регистры этой группы позволяют обращаться к своим «младшим» частям. Использовать для самостоятельной адресации можно только младшие 16- и 8-битные части этих регистров. Старшие 16 битов этих регистров как самостоятельные объекты недоступны.

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

Регистры состояния и управления.

Регистры состояния и управления – регистры, которые постоянно содержат информацию о состоянии микропроцессора или программы, команды которой в данный момент загружены на конвейер.

К этим регистрам относятся:

  • регистр флагов EFLAGS/FLAGS (рисунок Error: Reference source not found);

  • регистр указателя команды EIP/IP.

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

Регистр EIP/IP называется указателем команд (InstructionPointerregister). РегистрEIP/IPимеет разрядность 32/16 бит и содержит смещение или адрес следующей подлежащей выполнению команды. Этот регистр непосредственно недоступен программисту, но загрузка и изменение его значения производятся различными командами управления, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации регистраEIP/IP.

Регистр EFLAGS/FLAGSназываетсярегистром флагов (flagregister). Он предназначен для сигнализации процессору о его состоянии или о том, как выполнилась та или иная арифметическая или логическая команда. Разрядность регистраEFLAGS/FLAGS– 32/16 бит.

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

Флаг– это бит, принимающий значение 1, если онустановлен, и 0, если онсброшен.

За битами регистра флагов закреплены соответствующие имена. Исходя из особенностей использования, флаги регистра EFLAGS/FLAGSможно разделить на следующие три группы:

  • 8 флагов состояния. Эти флаги могут изменяться после выполнения машинных команд. Флаги состояния регистраEFLAGS отражают особенности результата исполнения арифметических или логических операций. Это дает возможность анализировать состояние вычислительного процесса и реагировать на него с помощью команд условных переходов и вызовов подпрограмм;

  • 1 флаг управления. Обозначается какdf(DirectoryFlag). Он находится в десятом бите регистраEFLAGS и используется цепочечными командами.

  • 5 системных флагов, управляющих вводом/выводом, маскируемыми прерываниями, отладкой, переключением между задачами и виртуальным режимом 8086. Прикладным программам не рекомендуется модифицировать без необходимости эти флаги, так как в большинстве случаев это приведет к прерыванию работы программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]