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