Форматы данных: Базовые форматы данных

Печать
Программирование - Архитектура и система команд микропроцессоров x86

 

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

Различные форматы данных отличаются длиной (количеством бит, отводимых для числа) и назначением отдельных битов или групп битов. В современных процессорах, которые поддерживают несколько наборов команд, соответственно, поддерживается и несколько наборов различных форматов. К таким наборам относятся:

Все рассматриваемые в данном разделе процессоры поддерживают стандартные команды целочисленной арифметики (ADD, ADC, SUB, SBB, IMUL, MUL, IDIV, DIV, INC, DEC, NEG, CMP), команды двоично-десятичной арифметики (DAA, DAS, AAA, AAS, AAM, AAD), а также некоторые другие группы команд, которые предназначены для обработки целочисленных и строковых данных. В этих командах могут использоваться представленные ниже форматы данных (рис. 4.1.).

 

Базовые форматы данных

Рис. 4.1. Базовые форматы данных

 

Целые числа

Целые числа могут занимать байт, слово или двойное слово. Они могут быть знаковыми и беззнаковыми. В знаковых целых самый старший бит байта, слова или двойного слова, занимаемого числом, отводится для индикации знака числа. Нуль соответствует плюсу, 1 — минусу. Таким образом, возможный диапазон представляемых значений для знаковых целых составляет: от –128 до +127 для байтовых величин, от –32768 до +32767 для слов, от –231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 65535 для слов, от 0 до 232-1 для двойных слов.

 

Двоично-десятичные целые числа

Двоично-десятичные целые — это набор четырехбитовых беззнаковых величин, каждая из которых может принимать значения от 0 до 9. Двоично-десятичные числа могут быть в неупакованном (обычном) или упакованном формате. Неупакованный формат использует только младшие четыре бита байта, в этом формате каждая цифра представляется одним байтом так же, как и целочисленные беззнаковые значения от 0 до 9. Упакованный формат предусматривает использование старших четырех бит байта для представления более старшей значащей цифры десятичного числа, т.е. в упакованном формате требуется в два раза меньше байт для представления десятичных чисел одинаковой разрядности.

 

Битовые поля

Битовые поля — это непрерывные последовательности битов, которые могут располагаться в любом месте памяти и начинаться с любого бита любого байта по любому адресу. Началом битового поля считается самый младший используемый бит самого младшего байта. Битовые поля могут иметь длину до 32 бит.

 

Строки

Строки — это непрерывные последовательности битов, байтов, слов или двойных слов в памяти. Битовые строки могут располагаться в любом месте памяти и начинаться с любого бита любого байта по любому алресу. Максимальная длина битовых строк 232-1 бит. Строки байт, слов и двойных слов могут занимать до 232-1 байт (4 Гб).