Marie] Вычислить арифметическое выражение

Как реализовать вычисление выражения r=15(x+y-z) в симуляторе Marie.

Как умножить на 15?

Input
Store x
Input
Store y
Input
Store z
Load x
Add y
Subt z
Store r

Ответы (1 шт):

Автор решения: Roman Konoval

Так как операции умножения нет, то ее нужно реализовать сложением в цикле:


loop,    Load result
         Add r            / на каждом шаге добавляем (x+y-z)
         Store result     / тут накапливаем результат умножения

         Load M           / счетчик цикла
         Subt one
         Store M
    
         Skipcond 400     / достигло ли M нуля
         Jump loop        / если нет, переходим на loop

Предполагаем, что у нас объявлены переменные

one, DEC 1
M, DEC 15
r, DEC 0
result, DEC 0
→ Ссылка