- •Часть 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. Обнаружение переполнения разрядной сетки в модифицированных дополнительных кодах
3.4 Обнаружение переполнения разрядной сетки в пок
На рисунке 3 представлен алгоритм обнаружения переполнения путем сравнения знаков. Алгоритм аналогичен по логической структуре с рассмотренным ранее алгоритмом обнаружения переполнения для дополнительных кодов. Отличие состоит в отсутствии проверки на особый случай переполнения разрядной сетки, что является преимуществом обратных кодов.
4. Cложение чисел в модифицированных дополнительных кодах (мдк)
Модифицированные коды упрощают процедуру обнаружения переполнения.
В модифицированных кодах для кодирования знака используются не один, как в простых кодах а два разряда S0, S1. т.е. для представления слагаемого вводится дополнительный разряд. (Рис.5)
Комбинация значений “00” используется как код знака “+”, а комбинация “11” как код знака “–”. В модифицированном коде может быть представлен как прямой, так и обратный и дополнительный коды (Рис.6).
Процедура 3. Основные правила сложения в модифицированных дополнительных кодах:
положительные операнды участвуют в сложении в прямых модифицированных кодах;
отрицательные операнды должны быть преобразованы в дополнительные модифицированные коды и, в таком виде – суммироваться;
знаковые разряды слагаемых участвуют в операции наравне с числовыми разрядами;
перенос из старшего знакового разряда, который может возникнуть при сложении, должен быть игнорирован (отброшен),
если сумма – положительное число, то результат суммирования содержит нули в знаковых разрядах. Сумма в этом случае сформирована в прямом коде. Напротив, если сумма – отрицательна, то результат суммирования содержит единицы в знаковых разрядах, а сумма представлена в дополнительном коде;
при суммировании операндов одного знака возможно отрицательное или положительное переполнение. Признаком положительного переполнения является комбинация 01 значений в знаковых разрядах суммы. Признаком отрицательного переполнения является комбинация 10 в знаковых разрядах суммы
кроме того, при использовании дополнительных кодов возможен случай т.н. особого переполнения (особый случай переполнения).
Далее проводится анализ различных случаев сложения в дополнительных модифицированных кодах чисел, представленных в формате ФЗ.
На результаты сложения влияют
знаки слагаемых;
соотношения величин модулей слагаемых.
При сложении возможно переполнение результата. Поэтому необходимо определять признаки таких ситуаций.
Знаки слагаемых |
Знак/код знака |
Соотношение величин модулей слагаемых |
Возможность переполнения |
Случай |
Код знака суммы, как признак наличия/отсутствия переполнения |
Условия наличия/отсутствия переполнения |
|
A |
B |
||||||
Одинаковые
|
+/00 |
+/00 |
несущественно |
возможно положительное переполнение |
1, переполнения нет
|
переполнения нет, если “00” |
(A+B)<1 –для дроби (A+B)<2n-1 –для целого |
2, переполнение |
положительное переполнение, если “01“
|
(A+B) 1 – для дроби (A+B)2n- – для целого |
|||||
–/11 |
–/11 |
несущественно |
возможно отрицательное переполнение |
3, переполнения нет
|
переполнения нет, если “11” |
|A|+|B|<1 – для дроби |A|+|B|<2n-1 – для целого |
|
4, переполнение |
отрицательное переполнение, если “10“
|
|A|+|B|1 –для дроби |A|+B|2n-1 – для целого |
|||||
–/11 |
–/11 |
существенно |
особый случай переполнения |
5, особый случай переполнения |
переполнение, если “11 “ и модуль суммы равен нулю |
|A|+|B|=1 –для дроби |A|+|B|=2n-1 – для целого |
|
Разные |
+/00 |
–/11 |
|A| >|B| |
переполнение невозможно |
6 |
“00“ |
переполнение невозможно |
+/00 |
–/11 |
|A| <|B| |
7 |
“11“ |
|||
–/11 |
+/00 |
|A| >|B| |
8 |
“11“ |
|||
–/11 |
+/00 |
|A| <|B| |
9 |
“00“ |
Таблица 3 – Случаи сложения дробных и целых чисел в модифицированных ДК