Homework progress

This commit is contained in:
Jan-Niclas Loosen
2025-10-18 15:35:07 +02:00
parent 081a7132fc
commit ee97bf1518
3 changed files with 99 additions and 36 deletions

View File

@@ -2,37 +2,56 @@ from MaMaGUI import MaMaGUI
from MaMaMa import MaMaMa
if __name__ == "__main__":
prog = {
0: 'ldo(-1)',
1: 'push(0)',
2: 'equal(17)',
3: 'push(0)',
4: 'ldo(-1)',
5: 'equal(19)',
6: 'ldo(-1)',
7: 'ldo(-1)',
8: 'leq(14)',
9: 'ldo(-1)',
10: 'ldo(-1)',
11: 'sub',
12: 'sto(-2)',
13: 'ujp(6)',
14: 'ldo(-1)',
15: 'sub',
16: 'ujp(3)',
17: 'sto(-1)',
18: 'stop',
19: 'pop',
20: 'stop'
}
prog = [
'cequal(26)',
'cleqR(11)',
'csub(-1,0,-1)',
'ujp(15)',
'csub(0,-1,0)',
'nzero(-1,3)',
'swp',
'pop',
'stop',
'pop',
'stop'
]
# Create and execute MaMa instance
machine = MaMaMa(['equal0(3)', 'stop', 'push(10)', 'stop'], [4, 6, 0])
machine = MaMaMa(prog, [1, 1, 1, 4, 6])
machine.add_macro('equal0', [
machine.add_macro('nzero', [
'ldo(n)',
'ldo(0)',
'sub',
'push(0)',
'equal(n)'
], ["n"])
'equal(p)'
], ['n', 'p'])
machine.add_macro('cequal', [
'ldo(-1)',
'ldo(-1)',
'equal(p)'
], ["p"])
machine.add_macro('cleqR', [
'ldo(0)',
'ldo(-2)',
'leq(p)'
], ['p'])
machine.add_macro('csub', [
'ldo(n)',
'ldo(m-1)',
'sub',
'sto(s-1)'
], ['n', 'm', 's'])
machine.add_macro('swp', [
'ldo(-1)',
'ldo(-1)',
'sto(-2)',
'sto(-1)',
])
# Visualize finished execution using journal
gui = MaMaGUI(machine)