Программная модель МП PentiumIV. Совокупность всех программно доступных регистров микропроцессора, страница 2

Типы данных:

Основные - байты, слова и двойные слова. Слово (двойное слово) - любые два (четыре) последовательных адреса. Адресом слова (двойного слова) является адрес младшего байта.

Специализированные команды распознают следующие типы   данных:

•  данные   без   знака (порядковые): байт, слово, двойное  слово;

•   данные  со  знаком  байт,  слово, двойное  слово. Представление   и   выполнение операций     - в    дополнительном коде. Формат  данных  этого  типа   поле   знака    и   поле   значения.  Под знак  отводится  старший разряд  ( MSB ), 1 – отрицательное число;

•   двоично-десятичные   данные

Данные типа  битовое  полеБитовое  поле  -   это  непрерывная  последовательность  битов, каждый  бит  -  независимая  переменная. Битовое  поле  может  начинаться  с  любого бита  любого  байта  и  может  быть   длиной  до  32  бит;

Данные   типа   строка.   Строка    - непрерывная   последовательность   байтов,   слов   или   двойных   слов.   Может содержать   от   1   байта   до   4 Гбайт.

Данные  типа указатель. Указатель  содержит  значение,   определяющие  адрес   данных.   Поддерживаются  2 типа   указателей   -   длинный   (far) указатель   ( 48   бит )   и   короткий (near) указатель   ( 32 бита ).   Короткий   или   ближний      -   это   32-разрядный   логический   адрес,   представляет   собой   относительный   адрес   внутри   сегмента.

17. Основные способы адресации МП PentiumIV.

Для адресации  операндов используются: регистровая, непосредственная, прямая, косвенная, базовая, индексная,  базово - индексная  со смещением и без   смещения, адресация   строковых данных и адресация портов ввода-вывода (прямая и косвенная) адресации.

МП имеет прямой доступ только к регистрам и непосредственным операндам. При обращении к операнду, хранящемуся в ЗУ, вычисляется  величина внутрисегментного смещения, которая складывается с базовым адресом сегмента,  неявно адресуемого командой. В результате – 32-разрядный физический адрес для выборки требуемого операнда.

Адресное смещение – исполнительный адрес EA(effective address).

При сегментированной модели памяти работают работают 16‑разрядные сегментные регистры CS (кода), SS (стека), DS (данных), ES, FS, GS (доп. данных) для хранения селекторов (указателей)  дескрипторов (описателей) сегментов памяти, с которыми оперирует пользовательская программа.

Данный процесс  адресации работает автоматически, надстроен над формированием  ЕА и не зависит от  программиста.

Используемые способы адресации кодируются в команде с помощью специального байта адресации (постбайта адресации), который следует непосредственно за байтом кода операции. Постбайт адресации содержит три поля - поле md (режима), поле reg (регистра) и поле r/m (регистр/память).

В МП Pentium 4 один из операндов всегда размещается в регистре блока РОН, а другой операнд - в памяти или тоже быть содержимым РОН. Код регистра, в котором хранится один из операндов двухадресных команд, указывается в трехбитовом поле reg постбайта адресации.

Поле md - местоположение второго операнда. Двоичное значение 11 в поле md указывает на то, что оба операнда размещены в РОН, при этом поле r/m кодирует имя регистра, содержащего второй операнд. Если md ¹ 11, то совокупность полей md и r/m задает один из 24 конкретных способов вычисления исполнительного адреса EA с нулевым (md=00), однобайтным (md=01), или четырехбайтным (md =10) смещением, дополнительно указываемым в команде.

В общем случае адрес ЕА – сумма трех компонентов: содержимого базового регистра, содержимого индексного регистра и 8-, 16- или 32-битного смещения disp8, disp16 или disp32, заданного в коде команды.

Вычисление смещения с использованием постбайта:

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