- •Тема 4 Программная модель микропроцессоров архитектуры ia-32
- •1. Особенности архитектуры ia-32
- •2. Структура микропроцессоров ia-32
- •3. Регистры
- •4. Формат команды микропроцессора ia-32
- •5. Типы данных
- •6. Пространство памяти
- •7. Режимы адресации
- •8. Система команд
- •8.1. Инструкции пересылки данных
- •8.2. Инструкции двоичной арифметики
- •8.3. Инструкции десятичной арифметики
- •8.4. Инструкции логических операций
- •8.5. Инструкции сдвигов
- •8.6. Инструкции обработки бит и байт
- •8.7. Инструкции передачи управления
- •8.8. Инструкции строковых операций
- •8.9. Инструкции работы с флагами
- •8.10. Инструкции загрузки указателей
- •8.11. Разные инструкции
5. Типы данных
С точки зрения размерности, МП аппаратно поддерживает следующие основные типы данных, изображенные на рисунке 5.1:
байт– восемь последовательно расположенных битов;
слово – два байта, имеющих последовательные адреса. Слово делится на младший байт и старший. Младший байт всегда хранится по меньшему адресу, который является адресом слова;
двойное слово – четыре байта, расположенных по последовательным адресам. Двойное слово состоит из младшего слова и старшего. Младшее слово хранится по меньшему адресу, который является адресом двойного слова;
учетверенное слово – восемь байт, расположенных по последовательным адресам. Учетверенное слово делится на младшее двойное слово и старшее двойное слово. Младшее двойное слово хранится по меньшему адресу, который является адресом учетверенного слова;
128-разрядный упакованный тип данных – появился в МП Pentium III. Для работы с ним были введены специальные команды.
Рисунок 5.1 – Основные типы данных микропроцессора
Кроме трактовки типов данных с точки зрения их разрядности, МП поддерживает их логическую интерпретацию, изображенную на рисунке 5.2:
целый тип со знаком– двоичное значение со знаком размером 8/16/32 бита. Знак содержится соответственно в 7/15/31 разряде (единица – число отрицательное, ноль – положительное). Отрицательные числа представляются в дополнительном коде. Числовые диапазоны приведены в таблице 5.1;
целый тип без знака– двоичное значение со знаком размером 8/16/32 бита. Числовые диапазоны для этого типа данных приведены в таблице 5.1;
Таблица 5.1 – Диапазоны целых чисел
Размерность, бит |
Без знака |
Со знаком |
8 |
0 – 255 |
–128 – +127 |
16 |
0 – 65 535 |
–32 768 – +32 767 |
32 |
0 – 4 294 967 295 |
–2 147 483 648 – +2 147 483 647 |
ближний указатель– 32-разрядный логический адрес, представляющий собой относительное смещение в байтах от начала сегмента;
дальний указатель – 48-разрядный логический адрес, состоящий из двух частей: 16-разрядной сегментной части – селектора и 32-разрядного смещения;
цепочка– некоторый непрерывный набор байтов, слов или двойных слов длиной до 4;
битовое поле– непрерывная последовательность битов. Каждый бит является независимым и может рассматриваться как отдельная переменная;
неупакованный двоично-десятичный тип– двоичное представление десятичных цифр от 0 до 9. Числа хранятся как байтовые значения без знака по одной цифре в каждом байте (в младшей тетраде);
Рисунок 5.2 – Основные логические типы данных микропроцессора
упакованный двоично-десятичный тип– двоичное представление двух десятичных цифр от 0 до 9, упакованных в один байт. Каждая цифра хранится в своей тетраде (старшая – в старшей, младшая – в младшей);
типы данных с плавающей точкой– специальные типы данных для обработки чисел с плавающей точкой в математическом сопроцессоре;
типы данных ММХ-расширения– представляют собой совокупность упакованных в 64-разрядное поле целочисленных элементов;
типы данных ХММ-расширения– представляют собой совокупность упакованных в 128-разрядное поле элементов с плавающей точкой.