- •Часть 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. Обнаружение переполнения разрядной сетки в модифицированных дополнительных кодах
Дополнительные коды числовых данных
4.1 Прямые преобразования
Для двоичной арифметики дополнительные коды аналитически определяются двумя соотношениями.
Для положительных операндов:
Д ля отрицательных операндов:
Выражение (5а) получается, если принять Q=0, выполняя тем самым требование 1.
Упуская некоторые аналитические детали, можно утверждать, что
Т аким образом, правило получения дополнительного кода, не требующее непосредственных вычислений по формулам 5б, состоит в следующем.
Процедура 4. Для получения дополнительного кода отрицательного числа, представленного в прямом коде необходимо
получить обратный код числа, руководствуясь Процедурой 2;
прибавить единицу к самому младшему разряду полученного обратного кода (+1LSB);
знак числа в обратном коде – сохранить.
Процедура 4 инвариантна к разрядности и формату преобразуемого числа.
Пример 7. Получить дополнительный код двоичного числа [x]пр=1.11101010000B.
Решение. [x]доп=1.00010110000B.
Пример 7 подтверждает справедливость другой логической процедуры, обеспечивающей преобразование отрицательных чисел в дополнительный код. Из примера видно, что младшие нулевые разряды при кодировании не изменились.
Процедура 5. Для получения дополнительного кода отрицательного о числа необходимо
просматривать значащую часть числа справа налево, сохраняя все младшие нули и первую значащую единицу;
остальную значащую часть числа проинвертировать;
знак числа – сохранить.
В необходимых случаях можно использовать ещё одну Процедуру.
Процедура 6. Для получения дополнительного кода отрицательного числа необходимо
вычесть единицу из младшего разряда преобразуемого числа;
проинвертировать все значащие цифры полученного числа;
знак числа – сохранить.
Наличие нескольких процедур получения дополнительного кода облегчает выбор оптимального способа преобразования применительно к реализуемому алгоритму.
4.2 Обратные преобразования
Как и при использовании обратных кодов необходимо осуществлять преобразование из дополнительного кода отрицательного числа в прямой код. Такой переход выполняется по следующей процедуре.
Процедура 7. Для преобразования дополнительного кода отрицательного числа в прямой код необходимо
выполнить поразрядную инверсию значащей части дополнительного кода;
прибавить в младший разряд полученного кода единицу (+1LSB);
сохранить знак.
Процедура справедлива для формата целых и дробных чисел.
Иногда более эффективна следующая процедура преобразования.
Процедура 8. Для преобразования дополнительного кода отрицательного числа в прямой код необходимо
вычесть из младшего разряда дополнительного кода единицу
выполнить поразрядную инверсию значащей части полученной разности;
сохранить знак.
Пример 8. Преобразовать, используя Процедуру 8 в дополнительный код отрицательное число [X ]доп = = 1.0100000B.
Решение.
Дополнительный код X. Разность равна 1.0100000 – 1 =1.0011111; Поразрядная инверсия равна 1.1100000.
т.е. [ X] пр =1.1100000B.
Пример 8 подтверждает ещё одну процедуру, справедливую для дополнительных кодов.
Процедура 9. Для получения прямого кода отрицательного двоичного числа необходимо
просматривать значащую часть числа справа налево, сохраняя все младшие нули и первую значащую единицу;
остальную значащую часть числа проинвертировать;
знак числа – сохранить.
Рекомендуемая литература
1. Савельев А.Я. Арифметические и логические основы цифровых автоматов: Учебник. - М.: «ВШ», 1980. – 255 с.
2. Карцев М.А. Арифметика цифровых машин. - М.: «Наука», 1969. - 575 с.
3. Каган Б.М. Электронные вычислительные машины и системы. - М.:«Энергия», 1975. – 528 с.
4. Каган Б.М. Электронные вычислительные машины и системы. 2-е изд. - М.: «Энергоатомиздат», 1985 – 542 с.
5. Поспелов Д.А. Арифметические основы вычислительных машин дискретного действия. М., «Высшая школа», 1970. – 308с.