Представление чисел в микропроцессорах
В зависимости от специфики применения МП числа в них могут быть представлены в разнообразных форматах. Рассмотрим представление чисел на примере восьмиразрядных процессоров.
В простейших применениях управляющих МП систем широко используется способ представления целых чисел без знака в двоичном коде (рисунок 1.5,а). Диапазон представления чисел невелик и составляет от 0 до .
В МП системах, ориентированных на обработку данных, в которых, кроме логических операций, выполняются также операции сложения и вычитания, используется представление чисел со знаком (рисунок 1.5,б). При этом способе старший бит отводится для знака числа (S=1 – число отрицательное, S=0 – число положительное). Положительные числа представляются модулем, а отрицательные – дополнительным кодом. Числа в этом случае могут находиться в диапазоне от до . Аналогично представляются числа двойной длины (двухбайтовые числа). Знаковый разряд располагается при этом в бите старшего байта. Диапазон представления чисел расширяется до .
В МП системах, требующих выполнения операций над числами по правилам десятичной арифметики, используется десятичный двоично-кодированный формат (двоично-десятичные числа) (рисунок 1.5,в), в котором каждый байт условно разбивается на две тетрады, в каждой из которых кодируется десятичное число.
Рисунок 1.5. Форматы представления однобайтных чисел
В случаях, когда МП система требует расширенного диапазона представления чисел, применяются многобайтные коды. На рисунке 1.6,а показан пример размещения в памяти МП системы 32-битного двоичного целого числа со знаком. Обработка таких многобайтных чисел, расположенных в смежных ячейках, осуществляется в МП побайтно, начиная с младшего байта, путем вызова соответствующей подпрограммы обработки и трехкратной модификации (инкрементирования) указателя стека.
Если в МП системе необходимо выполнить обработку десятичных чисел со знаком, то такие многобайтные числа представляются в десятичном дополнительном коде. При этом старшая тетрада старшего байта числа используется для кодирования знака числа, а остальные тетрады содержат двоичные коды десятичных цифр (рисунок 1.6,б). Положительное число в знаковой тетраде кодируется четырьмя нулями, а для представления знака «минус» используется код 1001 (девятка).
Для представления дробных чисел в МП может использоваться формат с плавающей точкой. Как правило, при этом два или три младших байта отводятся для представления мантиссы, а старший байт – для представления порядка числа и его знака. При этом бит определяет знак порядка: при отрицательном порядке и при положительном.
Порядок p представляется обычно смещенным кодом со смещением 64 и занимает биты . Значение порядка лежит в пределах , что соответствует . Бит в старшем байте задает знак числа: 0 соответствует плюсу, 1 – минусу (рисунок 1.6, в).
Мантисса m представляется либо прямым, либо дополнительным кодом и должна быть нормализованной, т.е. иметь значащую старшую цифру (находиться по модулю в диапазоне от до 1). Если в процессе вычислений мантисса денормализуется, число подвергается процедуре нормализации: сдвигу мантиссы влево (или вправо) с одновременным уменьшением (или увеличением) порядка.
Число с плавающей точкой определяется как
,
что позволяет перекрывать диапазон модулей от до .
Использование в МП системах многобайтных чисел приводит к резкому снижению производительности. Чем в большей степени формат обрабатываемых чисел (а на него нет никаких ограничений) превышает собственный формат МП (разрядность шины данных), тем значительнее снижается быстродействие обработки данных в МП системе.
Рисунок 1.6. Форматы представления многобайтных чисел
Дата добавления: 2015-04-25; просмотров: 1298;