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