Файл: Задание. Разработайте программу сложения CAB для следующих чисел Числа в двоичной системе счисления.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 19
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Задание. Разработайте программу сложения C=A+B для следующих чисел:
№ | Числа в двоичной системе счисления | Числа в шестнадцатеричной системе счисления | Числа в десятичной системе счисления | ||||||||
A | B | A | B | A | B | A | B | A | B | ||
10 | 1010000 | 0101001 | 0010000 | -0000111010 | B4532 | A74F | F5D175C | -D3FFF | -141284 | 21935 |
Двоичная система счисления:
При сложении первой пары A + B = 1010000 + 0101001 флаг знака равен 0 (Число положительное). Проверка в 10 системе: 80 + 41 = 121
При сложении второй пары A + B = 0010000 +-0000111010 флаг знака (SF) равен 1 (Итоговое число отрицательное). Флаг переноса (CF) равен 1, так как при вычитании большего из меньшего происходит заимствование старшего бита. Вспомогательный флаг переноса (AF) равен 1, так как возник перенос из 3 бита в 4.
Проверка в 10 системе: 16 + (-58) = -42
Шестнадцатеричная система счисления:
A = B4532
B = A74F
Число B4532 нельзя внести в регистр BX, поскольку оно будет больше 16 бит (Максимум FFFF). Поэтому для сложения данного числа требуется разделить число на два регистра (СX, AX).
При сложении 4532 и A74F не произойдет переполнение (флаг переноса
).
Команда ADC используется для сложения регистров с битом флага переноса.
Ответ: BEC81
A = F5D175C
B = -D3FFF
A – B = F5D175C - D3FFF
Так как числа F5D175C и D3FFF занимают по памяти больше 16 бит, то разделяем их на четыре регистра ax, bx, cx, dx.
После вычитания bx из ax флаг переноса (CF) равен 1, так как при вычитании большего из меньшего происходит заимствование старшего бита. Флаг знака (SF) равен 1, так как полученное число является отрицательным. Вспомогательный флаг переноса (AF) равен 1, так как возник перенос из 3 бита в 4.
После вычитания Dh из F5Dh c помощью sbb (учет переполнения прошлой операции) флаг знака (SF) равен 0, так как полученное число является положительным. Вспомогательный флаг переноса (AF) равен 1, так как возник перенос из 3 бита в 4.
Ответ: F4FD75D
Десятичная система счисления:
A= -141284
B= 21935
B - A = 21935 - 141284
Оба числа на два регистра.
После вычитания bx из dx флаг переноса (CF) равен 1, так как возник перенос, и полученное число занимает больше 2 байт. Флаг знака (SF) равен 1, так как полученное число является отрицательным. Флаг переполнения (OF) равен 1, так как возникло переполнение старшего бита.
После вычитания ax из cx, флаг знака (SF) равен 1, так как полученное число является отрицательным. Флаг переноса (CF) равен 1, так как возникло переполнение. Вспомогательный флаг переноса (AF) равен 1, так как возник перенос из 3 бита в 4.
Ответ: -119349