Архитектурные регистры и типы данных

Регистры

32- разрядные микропроцессоры имеют следующие группы регистров:

- регистры общего назначения (РОН) - 8 регистров (Данные регистры имеют 32 разрядную длину и содержат адреса и данные);

- сегментные регистры - 6 регистров(Сегментные регистры реализуют сегментное управление памятью.Сегментные регистры в защищенном режиме содержат информацию только о дескрипторе, который полностью описывает сегмент);

- указатели команд и флаги - 2 регистра(Указатель команд (EIP) - это 32-разрядный регистр, который содержит относительный адрес подлежащей выполнению (следующей) команды. Регистр флагов тоже стал 32 - разрядным (EFLAGS). Младшие 16 разрядов регистра флагов EFLAGSсовпадают с соответствующими разрядами FLAGS16 - разрядных МП.);

- системные регистры(служат для ссылок на системные сегменты и таблицы защищенного режима), которые включают:

- управляющие регистры - 5 регистров (один зарезервирован)(хранят управляющие признаки процессора, общие для всех задач);

- регистры системных адресов и системных сегментов - 4 регистра;

- отладочные регистры - 8 регистров(предназначенные для задания и управления отладочными точками останова);

- тестовые регистры - 8 регистров(предназначены для тестирования отдельных модулей процессора (в основном кэша));

- модельно-специфические регистры - число регистров зависит от модели процессора(предназначены для управления расширениями отладки, мониторингом производительности, машинным контролем, кэшированием областей физической памяти и другими функциями. Их назначение привязывается к архитектуре конкретного процессора, состав меняется от модели к модели, доступ привилегирован).

Абстрактные типы данных

Типы данных, которые рассматриваются независимо от контекста и реализации в конкретном языке программирования. Абстракция в математическом смысле означает, что алгебра данных рассматривается с точностью до изоморфизма. Абстрактные типы находят широкое применение в методологии программирования, основанной на пошаговой разработке программ. На этапе построения спецификации проектируемой программы алгебра данных моделирует объекты предметной области, в терминах решаемой задачи. В процессе пошагового уточнения данные конкретизируются путём перехода к промежуточным представлениям до тех пор, пока не будет найдена их реализация с помощью базовой алгебры данных используемого языка программирования. Существует несколько способов определения абстрактных типов: алгебраический, модельный и аксиоматический. При модельном подходе элементы данных определяются явным образом. При алгебраическом используются методы алгебраических отношений, а при аксиоматическом подходе используется логическая формализация.

Целочисленные типы

Целочисленные типы содержат в себе значения, интерпретируемые как числа (знаковые и беззнаковые).

BYTE

Cоответствует байту, 8 бит, беззнаковое.

Используется в API Win32 (64), в основном в качестве указателя на блок двоичных данных (BYTE *).

В спецификации Ogg Media используется для хранения однобайтных значений

Логические типы

Логические переменные, BOOL или boolean, содержат одно из двух значений (истина или ложь). В зависимости от реализации, истина может обозначаться как единица или «true», так и любым ненулевым числом (Си). Ложь, соответственно, обозначается инверсно к правде. Для реализации типа достаточно одного бита, однако на практике для ускорения размер bool равен размеру машинного слова.

Типы с плавающей запятой

Используются для представления вещественных (не обязательно целых) чисел. В этом случае число записывается в виде x=a*10^b. Где 0<=a<1, а b-некоторое целое число из определённого диапазона. a называют мантиссой, b - порядком. У мантиссы хранятся несколько цифр после запятой, а b - хранится полностью.

Строковые типы

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

Идентификационные типы

Идентификационные типы интерпретируются не как число, а как уникальный идентификатор объекта.

FOURCC

FOURCC - 32 бита, интерпретируется как идентификатор кодека для воспроизведения содержимого в файлах-медиаконтейнерах (RIFF (AVI), Ogg Media). В оригинальной спецификации [источник не указан 1124 дня] было указано ограничение на использование "псевдо ASCII" представления кода (при записи в little-endian порядке байт при побайтовом выводе данных должна была получаться ASCII строка).

ATOM

Atom (от греческого "неделимый") - общесистемный идентификатор строки в операционной системе Windows. Приложение может "поместить" (соответствующим вызовом) строку в таблицу (англ. atom table), вызов возвращает число. По указанному числу любое приложение может получить значение строки. Используется для межпроцессного взаимодействия и уникальных идентификаторов (напр., классов окон).

Сложносоставные типы

COLORREF

В операционных системах Windows COLORREF служит для хранения значения трёх цветов (R, G, B — красный, зелёный, синий), размер 32 бита.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: