Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Министерство Образования РФ
Государственное образовательное учреждение
«Новгородский Государственный Университет имени Ярослава Мудрого»
Кафедра «Радиосистемы»
Лабораторная работа №3
по дисциплине ЦУиМП
ОТЧЕТ
Преподаватель _____________ Назаренков Л.А. «__»_________ 2003 год |
Великий Новгород
2003
Цель работы: Написать программу, вычисляющую значение выражения
H/L + B*C - DE.
Для решения поставленной задачи нарисуем блок схему программы.
Рисунок 1 Блок схема программы
Ниже приведем программу, выполняющую поставленную задачу.
org 100h
start:
push d
push b
xra a ;HL - данные H/L
mvi c,0
mov d,h
mov e,l
add h
jp M1
xra a
sub h
mov h,a
M1: xra a
add L
jp M2
xra a
sub l
mov l,a
M2: mov a,h
M21: inr c
sub l
jnz M21 ;выполнили деление H & L приведены к положительным
xra a
add d
jp M3
xra a
sub c
mov c,a
M3: xra a
add e
jp M4
xra a
sub c
mov c,a
M4: pop d ; BC -> DE
xra a
add c
mvi b,0
jp M5
mvi b,0ffh
M5: push b ;Получили B*C в BC
xra a
mvi c,0
mvi h,0
mvi l,0
push D ;DE - данные D*E
add d
jp MM1
xra a
sub d
mov d,a
MM1: xra a
add e
jp MM2
xra a
sub e
mov e,a
MM2: mvi b,0
mov c,e
mov a,d
MM3: dad b
dcr a
jnz MM3 ; D & E - положительные, в HL результат умножения
xchg
pop h
add h
jp MM4
mvi a,0ffh
xra d
mov d,a
mvi a,0ffh
xra e
lxi b,0001h
mov e,a
xchg
dad b
xchg
MM4: xra a
add l
jp MM5
mvi a,0ffh
xra d
mov d,a
mvi a,0ffh
xra e
lxi b,0001h
mov e,a
xchg
dad b
xchg
MM5: xchg ;в HL B*C
pop b
dad b ; в HL B*C + H/L
pop d
mvi a,0ffh
xra d
mov d,a
mvi a,0ffh
xra e
lxi b,0001h
mov e,a
xchg
dad b
xchg
dad d ;результат в HL
end
Приведем тестовые данные для проверки работы программы.
H |
L |
B |
C |
DE |
Ответ |
А |
5 |
2 |
3 |
4 |
4 |
FA |
3 |
FF |
FC |
1 |
1 |
C |
FA |
5 |
2 |
A |
FE |
Начало
tek2: = dl
С = 0
А = 0
d = h e = L
Stek1: = dc
h<0
h = -h
h<0
l = -l
A = A - B
C = C + 1
A = H
е < 0
D<0
A = 0
С = -С
С = -С
1
1
ВС = Stek1
D<0
Е<0
В = -В
С = -С
А = В
А = А - 1
HL = HL + C
A = 0
D<0
HL = - HL
Е<0
HL = - HL
BC = Stek1
HL = HL + BC
DE = Stek2
HL = HL - DE
Конец