Алгоритм:
+ -
+ -
+ -
+ -
Текст программы:
Ввести Р1 'Вводим первое число
Ввести Р2 'Вводим второе число
Печать Р1 'Печатаем первое число
Печать Р2 'Печатаем второе число
'Если первое число отрицательное - инвертируем его + 1
Если Р1(6:7) = 3 Идти_К 11
Идти_К 12
11 Операция Р1(4:0) = Р1(4:0)~
Операция Р1 + 1
'Если второе число отрицательное - инвертируем его + 1
12 Если Р2(6:5) = 3 Идти_К 21
Идти_К 22
21 Операция Р2(4:0) = Р2(4:0)~
Операция Р2 + 1
22 Операция Р3 = Р1
Операция Р3 + Р2 'Складываем числа
'Если результат отрицательное - инвертируем его + 1
Если Р3(6:5) = 3 Идти_К 31
Идти_К 32
31 Операция Р3(4:0) = Р3(4:0)~
Операция Р3 + 1
'Проверка на переполнение
32 Если Р3(6:5) = 1 Идти_К 41
Если Р3(6:5) = 2 Идти_К 41
Печать Р3
Идти_К 42
41 Печать "Переполнение"
42 Конец
Пример работы программы:
Складываем 12 и 15 = 27
╔═════════════════════════════════ Результаты ═════════════════════════════════╗
║ 2-й код 16-й код 10-й код ║
║Р001 00001100 0C 00000000012 ║
║Р002 00001111 0F 00000000015 ║
║Р003 00011011 1B 00000000027 ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
Складываем 12 и -15 = 3
╔═════════════════════════════════ Результаты ═════════════════════════════════╗
║ 2-й код 16-й код 10-й код ║
║Р001 00001100 0C 00000000012 ║
║Р002 01101111 6F 00000000111 ║
║Р003 01100011 63 00000000099 ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
Складываем -12 и -15 = -27
╔═════════════════════════════════ Результаты ═════════════════════════════════╗
║ 2-й код 16-й код 10-й код ║
║Р001 01101111 6F 00000000111 ║
║Р002 01101100 6C 00000000108 ║
║Р003 11111011 FB 00000000251 ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
Складываем 28 и 4 состоится переполнение
╔═════════════════════════════════ Результаты ═════════════════════════════════╗
║ 2-й код 16-й код 10-й код ║
║Р001 00011100 1C 00000000028 ║
║Р002 00000100 04 00000000004 ║
║Переполнение ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
Вывод
В данной лабораторной работы я закрепил знания по арифметическим действиям в машине. Моделировали действие добавления в обратном и дополнительном кодах.