https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c6d121b4-8d9f-4d3b-9672-188b77b472a2/Untitled.png

Да, в этой практике вы будете делать простой интерпретатор ассемблера, так как польский калькулятор и геометрические фигуры - заезженные и унылые задания (хотя мем про Квадрат и Прямоугольник неиллюзорно доставляет преподавателям и студентам).

Шаблон проекта в repl.it тут

Кто кого наследует и зачем?

Чтобы ответить на этот вопрос нам нужно понять из чего состоит код программы на ассемблере:

; Программа считает значение факториала числа из регистра r0.
; Результат вычисления будет в регистре r1

mov r0 5   ; положили в регистр r0 число 5
mov r1 1   ; положили в регистр r1 число 1
mul r1 r0  ; умножили cодержимое регистра r1 на r0, а результат положили в r1
add r0 -1  ; сложили содержимое r0 и числа -1, а результат положили в r0
cmp r0 0   ; сравнили содержимое r0 с числом 0, результат сравнения лежит в специальном регистре f0
jgr -4     ; если в регистре f0 лежит 1, тогда прыгаем на 4 строчки назад иначе просто выполняем код дальше

; EOF. В r1 лежит факториал r0.

Как мы видим, есть следующие сущности:

Я бы выделил следующие сущности в терминах языка программирования: