DEFN 0 4; //defn1 is main() //frame = stack PUSH 1; //frame[0] = 1; //int x = 1 PUSH 0; //frame[1] = 0; //create parameter ASSIGN 0 1; //frame[1] = frame[0]; //set parameter = x PUSH 3; //frame[2] = 3; //ret = defn3 PUSH 2; //frame[3] = 2; //prepare jump to defn2 JUMP 3; //defn2(); //addtwo( x ); DEFN 3 2; //defn2 is addtwo( int n ) //frame[0] = n //frame[1] = return defn //frame[2] = this defn id POP; //del frame[2]; //discard our defn id PUSH 2; //frame[2] = 2; //int a = 2 ADD 0 2; //frame[3] = frame[0] + frame[2];//int b = n + a ASSIGN 3 0; //frame[0] = frame[3]; //n = b POP; //del frame[3]; //del b POP; //del frame[2]; //del a JUMP 1; //defn3(); //return n DEFN 3 0; //defn3 is main() continued //frame[0] = x //frame[1] = n //frame[2] = this defn id POP; //del frame[2]; //discard our defn id ASSIGN 1 0; //frame[0] = frame[1]; //x = n POP; //del frame[1]; //del n POP; //del frame[0]; //del x HALT; //program finish //attach binary file to program DATA "test.bin";