divert(-1) define(loc,0) define(word, `define($1,eval(loc)) define(`loc', eval(loc + 1))') define(label,`define($1,eval(loc))') define(halt, `define(`loc', eval(loc + 1))') define(div, `define(`loc', eval(loc + 4))') define(mul, `define(`loc', eval(loc + 4))') define(sub, `define(`loc', eval(loc + 4))') define(add, `define(`loc', eval(loc + 4))') define(load, `define(`loc', eval(loc + 3))') define(store,`define(`loc', eval(loc + 3))') define(ba, `define(`loc', eval(loc + 2))') define(blt0, `define(`loc', eval(loc + 3))') define(ble0, `define(`loc', eval(loc + 3))') define(beq0, `define(`loc', eval(loc + 3))') define(bne0, `define(`loc', eval(loc + 3))') define(bge0, `define(`loc', eval(loc + 3))') define(bgt0, `define(`loc', eval(loc + 3))') define(print,`define(`loc', eval(loc + 2))') define(end,`dnl') define(comment,`') include(source.m) define(`loc',0) define(`word', ` $2') define(`label',`') define(`halt', ` 0') define(`div', ` 10 $1 $2 $3') define(`mul', ` 20 $1 $2 $3') define(`sub', ` 30 $1 $2 $3') define(`add', ` 40 $1 $2 $3') define(`load', ` 50 $1 $2') define(`store',` 60 $1 $2') define(`ba', ` 70 $1') define(`blt0', ` 71 $1 $2') define(`ble0', ` 72 $1 $2') define(`beq0', ` 73 $1 $2') define(`bne0', ` 74 $1 $2') define(`bge0', ` 75 $1 $2') define(`bgt0', ` 76 $1 $2') define(`print',` 90 $1') define(`end', ` $1') define(`comment',`') define(r0, 0) define(r1, 1) define(r2, 2) define(r3, 3) define(r4, 4) define(r5, 5) define(r6, 6) define(r7, 7) divert include(source.m)