Сложение/вычитание чисел в цифровых процессорах в формате с ПТ
Автор: roflan • Апрель 14, 2023 • Лабораторная работа • 709 Слов (3 Страниц) • 214 Просмотры
Министерство науки и высшего образования
Пензенский государственный университет
Кафедра «Вычислительная техника»
ОТЧЕТ
по лабораторной работе №6
по дисциплине: "Алгебраические и логические основы вычислительной техники"
на тему: Сложение/вычитание чисел в цифровых процессорах в формате с ПТ
Выполнил: Краснорылов М.А.
Приняли: Калиниченко Е.И.
Сёменов А.О.
2023
Оранжевый – знак
Черный – порядок
Красный - мантисса
1.Представил числа f = 35,86 и g = -86,35 в формате КВ
f = 35,86 = 0 100 0010 0000 1111 0111 0000 1010 0011
g = -86,35 = 1 100 0010 1010 1100 1011 0011 0011 0011
2. Записала мантиссу и порядок каждого числа в разные регистры, восстановив скрытый бит.
Mf = 0 10001 1110 1110 0001
Pf = 1000 0100
Mg = 1 10101 1001 0110 0110
Pg = 1000 0101
3. Нашёл разность порядков. Pf – Pg = 1000 0100 + 0111 1011 = [1111 1111] = -1(10), тк разность отрицательная нужно выравнять порядок первого операнда до порядка второго. Разность записывается в счётчик разности порядков: CЧ = [1111 1111]
Денормализация первого операнда:
AR(Mf,1) = 00 10001 1110 1110 000
Операнды выравнены.
4. Перевел мантиссы в дополнительный код и нашёл значение выражения
y = f + g.
[Mf]2 = 0 1000 1111 0111 0000
[Mg]2 = 1 1010 1100 1011 00110
[pic 1]
CF = 0; SF = 1; OF = 0; ZF = 0
[My]2 = 1 1111 0100 0110 10110
Мантисса сложения = 1 1011 1001 0101 00000
Результат в формате КВ:
y = 1100 0010 1 1011 1001 0101 00000
5. Перевел результат в десятичную систему счисления.
[pic 2]
y = -1, 1011 1001 0101 00000* 10^110 = -11011 10,01 0101 00000= -50,49(10)
Проверка: y = f + g = 35.86 – 86.35 = -50.49 Результат верный.
6. Нашёл значение выражения y = f – g = f + (-g).
[Mf]2 = 0 1000 1111 0111 0000
[Mg]2 = 0 1010 1100 1011 0111
[pic 3]
CF = 0; SF = 1; OF = 1; ZF = 0
Так как возникло переполнение, необходимо выполнить нормализацию вправо, а слева подставить значение флага CF.
My = 0 1001 1110 0001 0011
Py = Pf + 1 = 1000 0101 + 1 = 1000 0110
Результат в формате КВ:
0100 0011 0100 1111 0000 1001
7. Перевел результат в десятичную систему счисления.
y = 1,100 1111 0000 1001 * 10^111 = 1100 1111, 0000 1001 = 122.21
Проверка: y = f – g = 35.86 + 86.35 = 122.21
Результат верный.
Вывод: Научился выполнять сложение и вычитание в числовых процессорах чисел в формате с плавающей точкой
...