Читайте также:
|
|
JC MMMM;если 1,то перейти по метке MMMM
JMP 3000H;Прыгаем на конец программы
MMMM:
lxi de,2018h;Заносим результат в рег.пару DE
xchg;Обмен данными между регистровыми парами DE и HL
call invert;Вызываем функцию которая переводит число в прям.код
jmp 3000h;Прыгаем на конец программы
org 2500h;Подпрограмма перевода числа в доп.код
invert:
mvi c,01b;Заносим в регистр С число 01В
push hl;Занесение в стек содержимого регистровой пары HL
mov a,m;Пересылка данных из памяти в акк-р
cma;Поразрядное инвертирование содержимого акк-ра
add c;Складываем значения акк-ра и регистра С
jc nn;если бит переноса равен 1,то переходим к метке nn
mvi c,00b;Заносим в регистр С число 00В
nn:
mov m,a;Пересылка данных из акк-ра в память
inx hl;Увеличиваем значение рег.пары на 1
mov a,m;Пересылка данных из памяти в акк-р
cma;Поразрядное инвертирование содержимого акк-ра
ori 80h;Логическое сложение сод-го акк-ра и число 80Н
add c;Складываем сод-е акк-ра и регистра С
mov m,a;Пересылка данных из акк-ра в память
pop hl;Загрузка пары регистров из стека
ret;Возвращение в главную программу
org 3000h
hlt
4. Тестирование
Два положительных числа:
2000H 05 05
2008H 3B 03
2010Н 02 00
2018H 40 08
Первое число отрицательное, второе – положительное:
2000H 05 80
2008H 3B 03
2010Н 02 01
2018H 36 03
Первое число положительное, второе – отрицательное:
2000H 03 00
2008H 05 80
2010 02 02
2018H 02 80
Два отрицательных числа:
2000H 01 80
2008H FF 80
2010Н 02 03
2018H 00 81
Ограничение на сложение положительных чисел:
2000H FF 7F
2008H FF 7F
2010Н 02 00
2018H FF 7F
Ограничение на сложение отрицательных чисел:
2000H FF FF
2008H FF FF
2010Н 02 03
2018H FF FF
5. Вывод
Написанная программа соответствует поставленной задаче. Результаты подтверждают правильность работы данной программы. Программа рассматривает четыре возможных случая: оба числа положительные, оба числа отрицательные, отрицательно только первое число, отрицательно только второе число. Если число отрицательно, то оно переводится в дополнительный код, а в отдельную ячейку записывается метка(1 в первый бит числа если отрицательно первое число и 1 во второй бит число если второе число отрицательно).Метка необходима для обработки результата. Также есть ограничения на сложение чисел (двух положительных-7FFFH, двух отрицательных-FFFFH).
Отчет
По лабораторной работе №2
«Сложение целых многобайтных чисел с использованием подпрограмм»
Работу выполнила студентка группы 3083/2:
Бородина Ксения
Санкт-Петербург
Задание
· Сложение целых однобайтных чисел (числа в регистрах D и H), суммирование выполнить в подпрограмме.
· Сложение целых однобайтных чисел, числа в ЗУ.
· Сложение многобайтных чисел с использованием двух предыдущих подпрограмм.(максимум 10 байт)
Алгоритм
1.
П одпрограмма суммирования 1.
2.
Подпрограмма суммирования 2.
3.
Дата добавления: 2014-12-19; просмотров: 82 | Поможем написать вашу работу | Нарушение авторских прав |