Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ.doc
Скачиваний:
43
Добавлен:
16.04.2015
Размер:
196.61 Кб
Скачать

2. Аналитическая часть

2.1. Кодирование чисел в микропроцессорах.

Понятие «число» является одним из основных понятий математики. В процессе своего развития оно расширялось и обобщалось, проходя определенные этапы: целые положительные (натуральные) числа; рациональные (дробные) числа; отрицательные числа; иррациональные числа; действительные числа как совокупность рациональных и иррациональных чисел; комплексные числа.

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

В большинстве современных микроЭВМ целые числа занимают целое число байтов или слов (два байта). Собственно процесс кодирования целого числа заключается в записи его в двоичной системе счисления с числом разрядов, равным числу битов в машинном слове. Например, числу 254 соответствует двоичный код 11111110, а числу 8 – код 00001000.

Другими словами, в 8-разрядной микроЭВМ целые числа без знака представляются в формате 8-разрядного слова (байта), если число меньше 255, и в формате 16-разрядного слова, если число больше 255.

Здесь следует указать на стандартные варианты интерпретации 8- и 16-разрядных данных в микропроцессорных системах. Восьмибитные данные интерпретируются как двоичные числа со знаком в диапазоне от – 128 до +127. Отрицательные числа представляются в дополнительном коде (знак числа хранится в седьмом разряде); упакованные двоично – десятичные числа без знака, состоящие из двух цифр, - в диапазоне от 0 до 99, причем первая цифра хранится в старшем полубайте, а вторая – в младшем; символы – в КОИ – 7. Шестнадцатибайтные данные интерпретируются как двоичные числа без знака в диапазоне от 0 до 65535 или как адрес ячейки памяти.

В микроЭВМ принята нумерация разрядов справа налево в разрядной сетке машины, начиная с нулевого разряда.

Определенные затруднения всегда вызывает кодирование отрицательных чисел. Используются три способа кодирования.

  1. Отличающийся простотой способ представления отрицательных чисел в виде знак – модуль (прямой код). Отрицательное и положительное числа представляются одинаково, за исключением левого знакового разряда: если он равен единице, то число отрицательное; если равен нулю, то число положительное. Недостаток такого способа состоит в усложнении процедуры сложения чисел с разными знаками.

  2. Представление отрицательного числа с помощью обратного кода. Для получения обратного кода берется его положительное двоичное представление и слева дополняется нулями до числа разрядов, соответствующих одному машинному слову. После этого каждый нуль заменяется на единицу, а каждая единица – на нуль.

прямой код обратный код

Обратный код отрицательного числа называют также дополнением до единицы. Достоинством такого кодирования является простота получения обратного кода и возможность не учитывать знаки при сложении и вычитании.

Недостатки кодирования заключаются в следующем: образуются два различных представления нуля, не эквивалентных по записи; необходим циклический перенос при сложении для получения правильного результата.

  1. Представление числа отрицательного числа с помощью дополнительного кода или двоичного дополнения. Двоичное дополнение образуется вычитанием числа фиксированной длины (т.е. дополненного нулями слева) из целого числа, на единицу большего чем максимальное число, которое может храниться в данной ЭВМ. Например, число –3 можно получить в виде

Существует, однако, и более компактный метод получения дополнительного кода. Для этого необходимо: 1) заменить все нули на единицы, а единицы на нули в двоичном представлении модуля числа; 2) добавить единицу к результату.

Представление числа в виде дополнительного кода имеет следующие преимущества по сравнению с другими формами представления:

  • сложение и вычитание выполняются предельно просто;

  • имеется единственное представление нуля;

  • можно рассматривать целые числа только как положительные.

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

Заметим, что использование отрицательных чисел вдвое сокращает диапазон представляемых таким образом абсолютных значений чисел.

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