| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Вычислить значение выражения |
| Автор: ANM89 6.12.2012, 12:54 |
| Дано: 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 |