- •Глава 2 Архитектура системы команд
- •Классификация по месту хранения операндов
- •Стековая архитектура
- •Аккумуляторная архитектура
- •Типы и форматы операндов
- •Упакованные целые числа
- •Разрядность основных форматов числовых данных
- •Размещение числовых данных в памяти
- •Символьная информация
- •Логические данные
- •Прочие виды информации
- •Видеоинформация
- •Аудиоинформация
- •Типы команд
- •Команды пересылки данных
- •Команды арифметической и логической обработки
- •Операции с целыми числами
- •Операции с числами в форме с плавающей запятой
- •Логические операции
- •Операции сдвигов
- •Операции с десятичными числами
- •Simd-команды
- •Адресность и эффективность использования памяти
- •Способы адресации операндов
- •Непосредственная адресация
- •Выбор системы операций на основе структурирования алгоритмов
Типы и форматы операндов
Машинные команды оперируют данными, которые в этом случае принято называть операндами. К наиболее общим (базовым) типам операндов можно отнести: адреса, числа, символы и логические данные. Помимо них ВМ обеспечивает обработку и более сложных информационных единиц: графических изображений, аудио-, видео- и анимационной информации. Такая информация является производной от базовых типов данных и хранится в виде файлов на внешних запоминающих устройствах. Для каждого типа данных в ВМ предусмотрены определенные форматы.
65
Числовая информация
Среди цифровых данных можно выделить две группы:
* целые типы, используемые для представления целых чисел,
* вещественные типы для представления рациональных чисел.
В рамках первой группы имеется несколько форматов представления численной информации, зависящих от ее характера. Для представления вещественных чисел используется форма с плавающей запятой.
Числа в форме с фиксированной запятой
Представление числа А в форме с фиксированной запятой (ФЗ), которую иногда называют также естественной формой, включает в себя знак числа и его модуль в g-ичном коде. Здесь q — основание системы счисления или база. Для современных ВМ характерна двоичная система (q = 2), но иногда используются также восьмеричная (q = 8) или шестнадцатеричная (q = 16) системы счисления. Запятую в записи числа называют соответственно двоичной, восьмеричной или шестиyадцатеричной. Знак положительного числа кодируется двоичной цифрой 0, а знак отрицательного числа — цифрой 1.
Числам с ФЗ соответствует запись вида X = ±ал.1...а1а0а.1а..2...а_г Отрицательные числа обычно представляются в дополнительном коде. Разряд кода числа, в котором размещается знак, называется знаковым разрядом кода. Разряды, где располагаются значащие цифры числа, называются цифровыми разрядами кода. Знаковый разряд размещается левее старшего цифрового разряда. Положение занятой одинаково для всех чисел и в процессе решения задач не меняется. Хотя запятая и фиксируется, в коде числа она никак не выделяется, а только подразумевается. В общем случае разрядная сетка ВМ для размещения чисел в форме с ФЗ имеет вид, представленный на рис. 2.10, где п разрядов используются для записи целой части числа и г разрядов — для дробной части.
Целая часть числа Дробная часть числа
qп-1 q1 q0 q-1 q-2 q -r
Знак |
|
an-1 |
|
a, |
ao |
• |
a., |
й-2 |
|
Ct-r |
Рис. 2.10. Формат представления чисел с фиксированной запятой
При заданных значениях п и г диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется соотношением
Если число является смешанным (содержит целую и дробную части), оно обрабатываются как целое, хотя и не является таковым (в этом случае применяют термин масштабируемое целое). Обработка смешанных чисел в ВМ встречается крайне редко. Как правило, используются ВМ с дробной (п = 0) либо целочисленной (r = 0) арифметикой.
66
При фиксации запятой перед старшим цифровым разрядом (рис. 2.11) могут быть представлены только правильные дроби. Для ненулевых чисел возможны два варианта представления (нулевому значению соответствуют нули во всех разрядах): знаковое и беззнаковое. Фиксация запятой перед старшим разрядом встречалась в ряде машин второго поколения, но в настоящее время практически отжила свое.
Рис. 2.11. Представление дробных чисел в формате ФЗ
При фиксации запятой после младшего разряда представимы лишь целые числа. Это наиболее распространенный способ, поэтому в дальнейшем понятие ФЗ будет связываться исключительно с целыми числами, а операции с числами в форме ФЗ будут характеризоваться как целочисленные. Здесь также возможны числа со знаком и без знака (рис. 2.12):
Рис. 2.12. Представление целых чисел в формате ФЗ
На рис, 2.13 приведены целочисленные форматы с фиксированной запятой, принятые в микропроцессорах фирмы Intel.
Целые числа применяются также для работы с адресами. На рис. 2.13 это 32-разрядный формат ближнего и 48-разрядный формат дальнего указателей.
Представление чисел в формате ФЗ упрощает аппаратурную реализацию ВМ и сокращает время выполнения машинных операций, однако при решении задач необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты не выходили за допустимый диапазон формата, иначе возможно переполнение разрядной сетки и результат вычислений будет неверным.