Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Алгоритм

Читайте также:
  1. C. Ветвящихся алгоритмов
  2. CТРУКТУРЫ ДАННЫХ И АЛГОРИТМЫ
  3. III. Алгоритмическая конструкция ветвление и ее использование в языке Visual Basic
  4. IV. Алгоритмическая конструкция цикл и ее использование в языке Visual Basic
  5. LINUX|| Алгоритм замещения страниц в ОС Linux.
  6. Алгоритм
  7. АЛГОРИТМ
  8. Алгоритм FIFO (перша прибула - перша вивантажена)
  9. Алгоритм MD5

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; просмотров: 14 | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2021 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав