int Foo, Blah; Foo = 27; Blah = Blah - Foo; if (Blah == 0) Foo++
%---- Foo = 27; 0 SET ACC 27 1 STORE ACC 14 %---- Blah = Blah - Foo; 2 LOAD R0 14 3 LOAD ACC 15 4 SUBTRACT R0 5 STORE ACC 15 %---- if (Blah == 0) 6 LOAD ACC 15 7 JUMPZERO 9 8 JUMP 13 %---- Foo++ 9 SET R0 1 10 LOAD ACC 14 11 ADD R0 12 STORE ACC 14 13 END %---- int Foo, Blah; 14 "Foo" 15 "Blah"
%---- Index = 3; 0 SET ACC 3 1 STORE ACC 17 %---- Total = 0; 2 SET ACC 0 3 STORE ACC 16 %---- while (Index > 0) { 4 LOAD ACC 17 5 JUMPZERO 15 %---- Total += Index; 6 LOAD ACC 16 7 LOAD R0 17 8 ADD R0 9 STORE ACC 16 %---- Index--; 10 LOAD ACC 17 11 SET R0 1 12 SUBTRACT R0 13 STORE ACC 17 %---- } 14 JUMP 4 15 END %---- int Total,Index; 16 "Total" 17 "Index"
The decodes are:
9999 - stop 1231 - if R0 > 0 PC = PC - 3 1356 - R0 = R1 2546 - R2 = R0 + R1 5647 - R0 = 4 6435 - R1 = R0 - 1