Examples
Factorial Program:
int product = 1;
for( i=1; i<= N; i++ )
product = product * i;
write product;
CISC Instructions for 5 Factorial:
1 LOADM 0 1 // ram[0] = product
2 LOADM 1 1 // ram[1] = i
3 LOADM 2 5 // ram[2] = 5
4 LOADM 3 0 // ram[3] = 0
5 ADDMM 3 1 // ram[3] = i
6 LSERM 3 2 // less than test
7 JUMFMI 3 11
8 MULTMM 0 1 // product = product * i
9 INCM 1 1 // i++
10 JUMPU 4 4
11 WRITEM 0 0 // write product
12 WRITEL 0 0
RISC Instructions for 5 Factorial:
0 RISC: LOADI 11 1 1
1 RISC: STORE 11 0 1
2 RISC: LOADI 11 1 2
3 RISC: STORE 11 1 2
4 RISC: LOADI 11 5 3
5 RISC: STORE 11 2 3
6 RISC: LOADI 11 0 4
7 RISC: STORE 11 3 4
8 RISC: LOAD 11 3 5
9 RISC: LOAD 12 1 5
10 RISC: ADD 11 12 5
11 RISC: STORE 11 3 5
12 RISC: LOAD 11 3 6
13 RISC: LOAD 12 2 6
14 RISC: LST 11 12 6
15 RISC: STORE 11 32 6
16 RISC: LOAD 11 3 6
17 RISC: EQUAL 11 12 6
18 RISC: LOAD 12 32 6
19 RISC: OR 11 12 6
20 RISC: STORE 11 3 6
21 RISC: LOAD 11 3 7
22 RISC: NOT 11 11 7
23 RISC: LOADI 12 11 7
24 RISC: JUMPNZ 11 12 7
25 RISC: LOAD 11 0 8
26 RISC: LOAD 12 1 8
27 RISC: MULT 11 12 8
28 RISC: STORE 11 0 8
29 RISC: LOAD 11 1 9
30 RISC: ADD 11 9 9
31 RISC: STORE 11 1 9
32 RISC: LOADI 11 4 10
33 RISC: JUMPNZ 9 11 10
34 RISC: LOAD 11 0 11
35 RISC: WRITE 11 11 11
36 RISC: WRITELN 0 0 12
RESULT:
120
Order 3 Integers program:
write x1;
write x2;
write x3;
if( x1 > x2 )
temp = x1;
x1 = x2;
x2 = temp;
if( x2 > x3 )
temp = x2;
x2 = x3;
x3 = temp;
if( x1 > x2 )
temp = x1;
x1 = x2;
x2 = temp;
write x1;
write x2;
write x3;
CISC Instructions for Order 3 Integers:
1 LOADM 0 2 //ram[0] = 2
2 LOADM 1 3 //ram[1] = 3
3 LOADM 2 1 //ram[2] = 1
4 WRITEM 0 0
5 WRITEM 1 1
6 WRITEM 2 2
7 WRITEL 0 0
8 LOADM 3 0 //ram[3] = 0
9 ADDMM 3 0 //ram[3] = x1
10 GRTMM 3 1 //x1>x2
11 JUMPFMI 3 13
12 SWAPMM 0 1 //switch x1 and x2
13 LOADM 3 0 //ram[3] = 0
14 ADDMM 3 1 //ram[3] = x2
15 GRTMM 3 2 //x2>x3
16 JUMPFMI 3 18
17 SWAPMM 1 2 //switch x2 and x3
18 LOADM 3 0 //ram[3] = 0
19 ADDMM 3 0 //ram[3] = x1
20 GRTMM 3 1 //x1>x2
21 JUMPFMI 3 13
22 SWAPMM 0 1 //switch x1 and x2
23 WRITEM 0 0
24 WRITEM 1 1
25 WRITEM 2 2
26 WRITEL 0 0
RISC Instructions for Order 3 Integers:
0 RISC: LOADI 11 2 1
1 RISC: STORE 11 0 1
2 RISC: LOADI 11 3 2
3 RISC: STORE 11 1 2
4 RISC: LOADI 11 1 3
5 RISC: STORE 11 2 3
6 RISC: LOAD 11 0 4
7 RISC: WRITE 11 11 4
8 RISC: LOAD 11 1 5
9 RISC: WRITE 11 11 5
10 RISC: LOAD 11 2 6
11 RISC: WRITE 11 11 6
12 RISC: WRITELN 0 0 7
13 RISC: LOADI 11 0 8
14 RISC: STORE 11 3 8
15 RISC: LOAD 11 3 9
16 RISC: LOAD 12 0 9
17 RISC: ADD 11 12 9
18 RISC: STORE 11 3 9
19 RISC: LOAD 11 3 10
20 RISC: LOAD 12 1 10
21 RISC: LST 11 12 10
22 RISC: STORE 11 32 10
23 RISC: LOAD 11 3 10
24 RISC: EQUAL 11 12 10
25 RISC: LOAD 12 32 10
26 RISC: OR 11 12 10
27 RISC: NOT 11 11 10
28 RISC: STORE 11 3 10
29 RISC: LOAD 11 3 11
30 RISC: NOT 11 11 11
31 RISC: LOADI 12 13 11
32 RISC: JUMPNZ 11 12 11
33 RISC: LOAD 11 0 12
34 RISC: LOAD 12 1 12
35 RISC: STORE 11 1 12
36 RISC: STORE 12 0 12
37 RISC: LOADI 11 0 13
38 RISC: STORE 11 3 13
39 RISC: LOAD 11 3 14
40 RISC: LOAD 12 1 14
41 RISC: ADD 11 12 14
42 RISC: STORE 11 3 14
43 RISC: LOAD 11 3 15
44 RISC: LOAD 12 2 15
45 RISC: LST 11 12 15
46 RISC: STORE 11 32 15
47 RISC: LOAD 11 3 15
48 RISC: EQUAL 11 12 15
49 RISC: LOAD 12 32 15
50 RISC: OR 11 12 15
51 RISC: NOT 11 11 15
52 RISC: STORE 11 3 15
53 RISC: LOAD 11 3 16
54 RISC: NOT 11 11 16
55 RISC: LOADI 12 18 16
56 RISC: JUMPNZ 11 12 16
57 RISC: LOAD 11 1 17
58 RISC: LOAD 12 2 17
59 RISC: STORE 11 2 17
60 RISC: STORE 12 1 17
61 RISC: LOADI 11 0 18
62 RISC: STORE 11 3 18
63 RISC: LOAD 11 3 19
64 RISC: LOAD 12 0 19
65 RISC: ADD 11 12 19
66 RISC: STORE 11 3 19
67 RISC: LOAD 11 3 20
68 RISC: LOAD 12 1 20
69 RISC: LST 11 12 20
70 RISC: STORE 11 32 20
71 RISC: LOAD 11 3 20
72 RISC: EQUAL 11 12 20
73 RISC: LOAD 12 32 20
74 RISC: OR 11 12 20
75 RISC: NOT 11 11 20
76 RISC: STORE 11 3 20
77 RISC: LOAD 11 3 21
78 RISC: NOT 11 11 21
79 RISC: LOADI 12 13 21
80 RISC: JUMPNZ 11 12 21
81 RISC: LOAD 11 0 22
82 RISC: LOAD 12 1 22
83 RISC: STORE 11 1 22
84 RISC: STORE 12 0 22
85 RISC: LOAD 11 0 23
86 RISC: WRITE 11 11 23
87 RISC: LOAD 11 1 24
88 RISC: WRITE 11 11 24
89 RISC: LOAD 11 2 25
90 RISC: WRITE 11 11 25
91 RISC: WRITELN 0 0 26
RESULTS:
2 3 1
1 2 3