Вычислить Значение Выражения

  • Автор темы KAD15
  • Дата начала
K

KAD15

Гость
#1
Дано:
Y = (a+b)/(c*d)^2
Помогите пожалуйста найти ошибки!!!!
Код ASM.
Решение:
программа с использованием абсолютной адресации:
in 0
stor a,A
in 1
stor a,B
in 2
stor a,C
in 3
stor a,D

load b,A
adm b,B
load b,C
mum b,D
stor b,tmp
mum b,tmp
load a,tmp
dvm b,tmp

mov a,b
out 4
stop

A:.ds 1
B:.ds 1
C:.ds 1
D:.ds 1
tmp:.ds 1
end

программа с использованием относительной адресации:
.base b
start: mvi b,start

in o
stor a,A
in 1
stor a,B
in 2
stor a,C
in 3
stor a,D

push b
push a
load a, A
adm a,B
load a,C
push b
load b,D
mur a,a
mov a,b
pop b
push b
mur b,b
dvm a,1(sp)

mov a,b
out 4
stop
A: .ds 1
B: .ds 1
C: .ds 1
D:.ds 1
.end

c) программа с использованием только регистров и стековой памяти
in 0
mov b,a
in 1
adm b,a
in 2
push a
in 3
push b
mum a,b
mur a,a
dvm a, 1(sp)
mov a, b
out 4
stop
.end