Recitation 3 PM0 PMachine with registers PL0 Code

  • Slides: 59
Download presentation
Recitation 3 PM/0 ~ P-Machine with registers PL/0 Code Execution COP 3402 (Spring 2014)

Recitation 3 PM/0 ~ P-Machine with registers PL/0 Code Execution COP 3402 (Spring 2014)

P-machine Overview code 0 1 2 3 4 5 6 7 8 9 10

P-machine Overview code 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 6 1 4 3 1 22 8 3 14 4 3 1 13 4 3 9 7 3 9 2 0 0 0 0 1 0 0 0 stack 0 0 0 0 0 0 6 6 4 4 0 1 17 4 0 5 4 1 1 4 5 1 3 4 1 5 1 0 RF R 0 R 8 R 1 R 9 R 2 R 10 R 3 R 11 R 4 R 12 R 5 R 13 R 6 R 14 R 7 R 15 IR PC 0 BP 1 CPU SP 0 1 0 2 0 3 0 …

P-machine ISA 01 – LIT R, 0, M RF[R] M; 02 – RTN 0,

P-machine ISA 01 – LIT R, 0, M RF[R] M; 02 – RTN 0, 0, 0 sp bp - 1; bp stack[sp + 3]; pc stack[sp + 4]; 03 – LOD R, L, M RF[R] stack[ base(L, bp) + M]; 04 – STO R, L, M stack[ base(L, bp) + M] RF[R]; 05 – CAL 0, L, M stack[sp bp sp pc M; 06 – INC 0, 0, M sp + M; 07 – JMP 0, 0, M pc M; 08 – JPC R, 0, M if RF[R] == 0 then { pc M; } 09 – SIO R, 0, 1 print(RF[R]); 10 – SIO R, 0, 2 read(RF[R]); + + + 1] 2] 3] 4] 1; 0; /* space to return value base(L, bp); /* static link (SL) bp; /* dynamic link (DL) pc; /* return address (RA)

P-machine ISA 11 – NEG i, j, k (R[i] -R[j]) 12 - ADD i,

P-machine ISA 11 – NEG i, j, k (R[i] -R[j]) 12 - ADD i, j, k (R[i] R[j] + R[k]) 13 - SUB i, j, k (R[i] R[j] - R[k]) 14 - MUL i, j, k (R[i] R[j] * R[k]) 15 - DIV i, j, k (R[i] R[j] / R[k]) 16 - ODD i, j, k (R[i] mod 2) 17 - MOD i, j, k (R[i] R[j] mod R[k]) 18 - EQL i, j, k (R[i] R[j] == R[k]) 19 - NEQ i, j, k (R[i] R[j] != R[k]) 20 - LSS i, j, k (R[i] R[j] < R[k]) 21 - LEQ i, j, k (R[i] R[j] <= R[k]) 22 - GTR i, j, k (R[i] R[j] > R[k]) 23 - GEQ i, j, k (R[i] R[j] >= R[k])

P-machine Overview Initial State code PC 0 1 2 3 4 5 6 7

P-machine Overview Initial State code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack SP RF R 0 R 8 R 1 R 9 R 2 R 10 R 3 R 11 R 4 R 12 R 5 R 13 R 6 R 14 R 7 R 15 IR PC 0 BP 1 CPU SP 0 0 0

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 RF 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 0 R 4 R 12 6 0 R 5 R 13 R 6 R 14 R 7 R 15 IR inc 0 0 6 PC BP SP 1 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 0 R 4 R 12 6 0 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 IR PC 2 3 lit 0 0 3 BP SP 1 6 CPU SP

Store 04 – STO R, L, M stack[ base(L, bp) + M] RF[R]; int

Store 04 – STO R, L, M stack[ base(L, bp) + M] RF[R]; int base(l, base){ // l stand for L in the instruction format int b 1; //find base L levels down b 1 = base; while (l > 0) { b 1 = stack[b 1 + 1]; l--; } return b 1; }

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 0 R 4 R 12 6 0 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 IR PC 2 3 lit 0 0 3 BP SP 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 0 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 3 IR sto 0 0 4 PC BP SP 3 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 0 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 IR PC 4 1 lit 0 0 1 BP SP 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 1 IR sto 0 0 5 PC BP SP 5 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 1 IR sto 0 0 5 PC BP SP 5 1 6 CPU SP Wait! Let’s break the next instruction into fetch and execute…

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP FETCH

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 R 6 R 14 R 7 R 15 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 R 7 R 15 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 1 IR cal 0 0 7 PC BP SP 6 1 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 1 IR cal 0 0 7 PC BP SP 6 7 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 1 IR cal 0 0 7 PC BP SP 7 7 6 CPU SP Execute CAL 0, L, M stack[sp + 1] stack[sp + 2] stack[sp + 3] stack[sp + 4] bp sp + 1; pc M; 0; base(L, bp); bp; pc;

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 1 IR inc 0 0 4 PC BP SP 8 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 1 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 3 IR lod 0 1 4 PC BP SP 9 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 3 1 IR lod 1 1 5 PC BP SP 10 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 1 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 3 3 IR mul 1 0 1 PC BP SP 11 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 3 3 IR sto 1 1 5 PC BP SP 12 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 IR PC 13 3 1 lit 1 0 1 BP SP 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 3 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 2 1 IR sub 0 0 1 PC BP SP 14 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 2 1 IR sto 0 1 4 PC BP SP 15 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 1 1 IR neq 0 0 1 PC BP SP 16 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 RF R 0 R 1 1 1 IR jpc 0 0 18 PC BP SP 17 7 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 1 1 IR cal 0 1 7 PC BP SP 7 11 10 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 1 1 IR inc 0 0 4 PC BP SP 8 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 2 1 IR lod 0 1 4 PC BP SP 9 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 2 3 IR lod 1 1 5 PC BP SP 10 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 3 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 2 6 IR mul 1 0 1 PC BP SP 11 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 2 6 IR sto 1 1 5 PC BP SP 12 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 IR PC 13 2 1 lit 1 0 1 BP SP 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 2 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 1 1 IR sub 0 0 1 PC BP SP 14 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 1 1 IR sto 0 1 4 PC BP SP 15 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR neq 0 0 1 PC BP SP 16 11 14 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR jpc 0 0 18 PC BP SP 18 11 14 CPU SP

Return 02 – RTN 0, 0, 0 sp bp - 1; bp stack[sp +

Return 02 – RTN 0, 0, 0 sp bp - 1; bp stack[sp + 3]; pc stack[sp + 4];

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 11 14 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 11 10 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 7 10 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 18 7 10 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 7 10 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 7 6 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 19 1 6 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Execute code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR rtn 0 0 0 PC BP SP 6 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 0 1 IR jmp 0 0 19 PC BP SP 19 1 6 CPU SP

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9

P-machine Overview code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 stack 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 6 1 IR lod 0 0 5 PC BP SP 20 1 6 CPU SP

P-machine Overview print(6); code PC 0 1 2 3 4 5 6 7 8

P-machine Overview print(6); code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 6 1 IR sio 0 0 1 PC BP SP 21 1 6 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 RF R 0 R 1 6 1 IR rtn 0 0 0 PC BP SP 22 1 6 CPU SP

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 SP RF R 0 R 1 6 1 IR rtn 0 0 0 PC BP SP 22 1 0 CPU

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 SP RF R 0 R 1 6 1 IR rtn 0 0 0 PC BP SP 22 0 0 CPU

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 14 18 SP RF R 0 R 1 6 1 IR rtn 0 0 0 PC BP SP 0 0 0 CPU

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp +

02 sp bp pc – RTN 0, 0, 0 bp - 1; stack[sp + 3]; stack[sp + 4]; P-machine Overview Fetch code PC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 inc lit sto cal jmp inc lod mul sto lit sub sto neq jpc cal rtn lod sio rtn 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 6 3 4 1 5 7 19 4 4 5 1 1 4 1 18 7 0 5 1 0 stack 0 0 1 0 R 8 2 0 R 9 3 0 R 2 R 10 4 0 R 3 R 11 5 1 R 4 R 12 6 6 R 5 R 13 7 0 R 6 R 14 8 1 R 7 R 15 9 1 10 6 11 0 12 1 13 7 SP RF R 0 R 1 6 1 IR rtn 0 0 0 PC BP SP 0 0 0 CPU 14 18 End State. Halt P-Machine