- •Часть 1. Исследование систем счисления и методов конвертирования
- •Часть 2. Кодирование данных в микропроцессорной технике
- •Часть 3. Арифметические операции при обработке данных
- •Лабораторная работа №1. Основы машинной арифметики.
- •Часть 1. Исследование систем счисления и методов конвертирования
- •Содержание отчета
- •1. Введение в системы счисления
- •1.1 Общие положения. Классификация систем счисления
- •1.2 Позиционные системы счисления. Полиномиальное представление чисел
- •1.3 Системы счисления, применяемые в микропроцессорной
- •1.4 Некоторые свойства позиционных однородных систем с естественным множеством цифр
- •2. Преобразование чисел из одной системы счисления в другую
- •2.1 Методы конвертирования
- •2.2 Метод подбора
- •2.3 Метод замещения полиномиальных элементов (поэлементное замещение)
- •2.4 Метод, основанный на “схеме Горнера”
- •2.5 Метод “цифра за цифрой”
- •2.5.1 Конверсия целого числа методом “цифра за цифрой”
- •2.5.2 Конверсия дробного числа методом “цифра за цифрой”
- •2.6 Методы, учитывающие специфические соотношения оснований систем счисления
- •2.6.1 Двоично-шестнадцатеричные и шестнадцатерично-двоичные преобразования
- •2.6.2 Двоично-восьмеричные и восьмерично-двоичные преобразования
- •2.7 Методы, использующие промежуточные системы систем счисления
- •Часть 2. Кодирование данных в микропроцессорной технике
- •2. Теоретические основы кодирования чисел
- •3. Обратные коды двоичных чисел.
- •Дополнительные коды числовых данных
- •Часть 3. Арифметические операции при обработке данных
- •1. Предварительные замечания
- •3.1.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.1.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.1.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.1.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.1.5. Сложение отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.6.Сложение чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.1.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •3.1.7 Обнаружение переполнения разрядной сетки в пдк
- •3.2.1. Сложение в обратных кодах дробных и целых отрицательных чисел без переполнения (Случай 3ок)
- •3.1.4. Сложение в обратных кодах дробных и целых отрицательных чисел с переполнением (Случай 4ок)
- •3.1.5. Сложение в обратных кодах отрицательных чисел с “особым случаем переполнением ” при сложении в дополнительных кодах (Случай 5)
- •3.1.6.Сложение в обратных кодах чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.4 Обнаружение переполнения разрядной сетки в пок
- •4. Cложение чисел в модифицированных дополнительных кодах (мдк)
- •4.2.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.2.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.2.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.2.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.2.5. Сложение целых отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.2.6.Сложение чисел разного знака в модифицированных дополнительных кодах
- •3.2.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6,9)
- •3.2.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •4. Обнаружение переполнения разрядной сетки в модифицированных дополнительных кодах
2. Теоретические основы кодирования чисел
Обратные и дополнительные коды предполагают изменение значащей части отрицательного числа. Такое изменение выполняется с целью замены операции вычитания чисел операцией сложения.
Аналитическим решением, позволяющим заменить операцию вычитания сложением является замена отрицательных операндов особого рода числами ( кодами).
Пусть из положительного операнда A требуется вычесть положительный операнд B или прибавить отрицательный операнд (–В).
Принципиальная возможность замены вычитания операцией сложения следует из следующего алгебраического выражения
В этом выражении Q –некоторое значение (параметр), использование которого позволяет перейти к кодам (Q–B) отрицательных операндов. а затем, при необходимости, откорректировать полученную сумму (вычитание Q в правой части (2)).
Анализ выражения 2 позволяет сформулировать в общем виде требования к параметру Q:
для положительного числа B и операции сложения параметр Q должен принимать нулевое значение
параметр Q для отрицательного операнда должен быть постоянной положительной величиной, не зависящей от значения модуля операнда;
если Bмакс – максимальное значение модуля операнда, то должно выполняться соотношение ;
выбор Q должен предполагать возможность замены операции вычесть (Q–B) при образовании кода типовыми логическими операциями и операцией сложения;
выбор Q должен обеспечить операцию коррекции (–Q), не связанную с вычитанием.
Требования достаточно противоречивы, однако, выполнимы.
Теоретические исследования позволили предложить несколько значений параметра Q, каждый из которых определяет тип кода со специфическими свойствами.
Коды, образованные параметрами Q= 2n –1 и Q= 2– 2–m называются обратными кодами, соответственно целых и дробных двоичных чисел. Коды, образованные параметрами Q= 2n и q= 2 называются дополнительными кодами, соответственно целых и дробных двоичных чисел.
3. Обратные коды двоичных чисел.
3.1 Прямые преобразования
Прямыми называются преобразования из прямого кода в обратный.
Обратные коды двоичных чисел задаются двумя соотношениями
д ля положительных чисел:
для отрицательных чисел:
В ыражение (3а) получается, если принять в алгебраическом выражении (2) значение параметра Q равным 0, выполняя тем самым требование 1.
Выражение (3б) задает обратный код отрицательного числа в аналитическом виде и в полном соответствии с (2).
Пример4. Используя аналитическую зависимость 3б получить обратный код отрицательного числа [A]пр=10001010 из примера 3
Решение.
Число [A]пр=10001010–целое. Его модуль равен
|A| =0 0001010.
П оследовательность вычитаний: сначала 2n –|A|, а затем вычитание из полученной разности 1 приводит к результату
Пример иллюстрирует то обстоятельство, что непосредственное получение кода по выражениям 3 требует двух арифметических операций вычитания, что противоречит требованию 4.
Поэтому целесообразен переход к следующей логической процедуре.
Процедура 2.
Для получения обратного кода отрицательного дробного или целого чисел заданных в прямом коде, необходимо:
сохранить значение знакового разряда прямого кода;
выполнить поразрядную инверсию значащей части прямого кода числа. Поразрядная инверсия выполняется путем замены в каждом разряде нулевого значения на единичное и единичного на нулевое.
Справедливость процедуры доказывается следующим образом.
Пусть задано n–разрядное целое отрицательное число. Для упрощения, пусть n=8 (это не приводит потери общности).
Первое. Изменив порядок вычитаний, а именно, сначала находя разность 2n –1 , нетрудно получить
При втором вычитании целесообразно учесть также логическое тождество . Тогда
С вязь исходного операнда и его обратного кода очевидна. Она иллюстрируется диаграммой
Сопоставление левой и правой части диаграммы позволяют сделать следующие выводы: выполненные преобразования ( два последовательных вычитания) не затрагивают (сохраняют) знак исходного операнда, и сводятся в итоге к поразрядной инверсии его мантиссы. Это доказывает справедливость Процедуры 2.
Пример 5. Представить в обратном коде отрицательные числа
[A]пр=10001010 и [B]пр=1.0001110.
Решение. [A]обр=11110101 и [B]обр=1.11100011
Процедура 1 инвариантна к формату преобразуемого операнда – целое или дробное число с фиксированной запятой.
Аналитически подтвердить справедливость Процедуры 2применительно к дробным числам можно следующим образом.
Пусть задано (m+1)–разрядное дробное число. Как и ранее, сначала определяется разность 2 –2–m.
В ычитая из полученной разности модуль преобразуемого в код дробного операнда, можно получить его обратный код , в виде разности
К ак и ранее, преобразования через вычитания не затрагивают (сохраняют) знак исходного операнда, и сводятся к поразрядной инверсии его дробной части. Это доказывает справедливость Процедуры 2 для дробных чисел.
Целесообразно выделить следующее свойство обратных кодов, получаемых с помощью выражения (3).
Модуль обратного кода отрицательного числа X – это алгебраическое дополнение модуля кодируемого числа до максимального числа, представимого в разрядной сетке заданного формата.
Д ействительно, модуль максимального представимого в заданном формате целого или дробного числа характеризуется наличием единиц во всех числовых разрядах.
Именно к этому результату можно прийти, выполнив сложение
3.2 Обратные преобразования
Обратными преобразованиями наз. преобразования, обеспечивающие получение из обратного кода прямого.
Для перевода из обратного в прямой код при отрицательной сумме выполняется следующая процедура.
Процедура 3. Для преобразования обратного кода отрицательного числа в прямой код необходимо
сохранить знак обратного кода;
выполнить поразрядную инверсию значащей части обратного кода.
Процедура справедлива для формата целых и дробных чисел.
Процедура вытекает из ранее доказанных соотношений и в аналитическом виде описывается как
а) для целых чисел
б) для дробных чисел
Пример 6. Преобразовать в прямые коды следующие числа, представленные в обратных кодах.
Решение. Исходные данные и результаты преобразований представлены в таблице.
-
Обратные коды чисел
Прямые коды, полученные после преобразования
1.0011110B
1. 1100001B
01101001B
01101001B
1.0011001B
1.1100110B
0.1111001B
0.1111001B
Недостатком обратных кодов является необходимость подсуммирования переноса из знакового разряда суммы к младшему разряду суммы. Это усложняет сумматор и требует дополнительных затрат машинного времени.