| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||||||
2 | Multiply two defined numbers and store it at memory address 0 | Multiply two numbers from d.memory and store it at memory address | ||||||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||||||
4 | RSTALL; | x = | 7 | 3 | RSTALL; | data_add_1 = | 0 | |||||||||||||||||||||||
5 | CONST 7; | y = | 10 | 6 | CONST 0; | data_add_2 = | 1 | |||||||||||||||||||||||
6 | MOV R5, R1; | 9 | MOV AC, R1; | |||||||||||||||||||||||||||
7 | ADD; | store_add = | 0 | 12 | LOAD; | store_add = | 2 | |||||||||||||||||||||||
8 | CONST 10; | 15 | MOV R5, DR; | |||||||||||||||||||||||||||
9 | MOV R5, R1; | 18 | CONST 1; | |||||||||||||||||||||||||||
10 | MUL; | 21 | MOV AC, R1; | |||||||||||||||||||||||||||
11 | MOV R7, AC; | 24 | LOAD; | |||||||||||||||||||||||||||
12 | CONST 0; | 27 | MOV AC, DR; | |||||||||||||||||||||||||||
13 | MOV AC, R1; | 30 | MUL; | |||||||||||||||||||||||||||
14 | STORE; | 36 | MOV R7, AC; | |||||||||||||||||||||||||||
15 | CONST 2; | |||||||||||||||||||||||||||||
16 | MOV AC, R1; | |||||||||||||||||||||||||||||
17 | Iterate and get the summation of numbers 1,2,3,...n | STORE; | ||||||||||||||||||||||||||||
18 | LOAD; | |||||||||||||||||||||||||||||
19 | 0 | RSTALL; | n = | 2 | ||||||||||||||||||||||||||
20 | 1 | CONST 2; | Iterate and get the summation of sqaure numbers 1,2,3,...n | |||||||||||||||||||||||||||
21 | 2 | MOV R7, R1; | ||||||||||||||||||||||||||||
22 | 3 | CONST 1; | store_add = | 0 | RSTALL; | yup | ||||||||||||||||||||||||
23 | 4 | MOV R5, R1; | CONST 10; | |||||||||||||||||||||||||||
24 | 5 | MOV AC, R3; | expected ans = | 21 | MOV R7, R1; | |||||||||||||||||||||||||
25 | 6 | ADD; | INCI | |||||||||||||||||||||||||||
26 | 7 | MOV R2, R5; | MOV AC, R2; | |||||||||||||||||||||||||||
27 | 8 | INCI; | MOV R5, R2; | |||||||||||||||||||||||||||
28 | 9 | MOV R5, R2; | MUL; | |||||||||||||||||||||||||||
29 | 10 | MOV R3, AC; | MOV R5, R3; | |||||||||||||||||||||||||||
30 | 11 | MOV AC, R7; | ADD; | |||||||||||||||||||||||||||
31 | SUB; | MOV R3, AC; | ||||||||||||||||||||||||||||
32 | JMPNZ; | MOV R5, R2; | ||||||||||||||||||||||||||||
33 | 5; | MOV AC, R7; | ||||||||||||||||||||||||||||
34 | MOV R7, R3; | SUB; | ||||||||||||||||||||||||||||
35 | CONST 0; | JMPNZ; | ||||||||||||||||||||||||||||
36 | MOV AC, R1; | 3; | ||||||||||||||||||||||||||||
37 | STORE; | MOV R7, R3; | ||||||||||||||||||||||||||||
38 | CONST 0; | |||||||||||||||||||||||||||||
39 | Above code can be used to check JMPNZ, ADD, MOV operations | MOV AC, R1; | ||||||||||||||||||||||||||||
40 | STORE; | |||||||||||||||||||||||||||||
41 | LOAD; | |||||||||||||||||||||||||||||
42 | To Test | RSTALL; | ||||||||||||||||||||||||||||
43 | MOV AC, R3; | |||||||||||||||||||||||||||||
44 | 4 x 4 Matrix Multiplication using 1 Core | 4 x 4 Matrix Multiplication using for any number of Cores | ||||||||||||||||||||||||||||
45 | SIZE 3 | RSTALL; | ||||||||||||||||||||||||||||
46 | ADDX | MOV AC, R1; | ||||||||||||||||||||||||||||
47 | ADDY | RSTALL; | RSTALL; | |||||||||||||||||||||||||||
48 | MOV02 | RSTALL; | SIZE 4; | SIZE 4; | ||||||||||||||||||||||||||
49 | MOV13 | MOV AC, R2; | MOV02; | MOV R5, R2; | ||||||||||||||||||||||||||
50 | ADDX; | MOV AC, R2; | ||||||||||||||||||||||||||||
51 | MOV R5, R3; | ADD; | ||||||||||||||||||||||||||||
52 | MUL; | ADD; | ||||||||||||||||||||||||||||
53 | Checks MOV02, ADDX,ADDY, SIZE | MOV R5, R2; | ADD; | |||||||||||||||||||||||||||
54 | ADD; | MOV R5, AC; | ||||||||||||||||||||||||||||
55 | RSTALL; | LOAD; | MOV02; | |||||||||||||||||||||||||||
56 | SIZE 2; | core id = | 0,0 | 0,1 or 1,0 | 1,1 | MOV R6, DR; | ADDX; | |||||||||||||||||||||||
57 | MOV AC, R4; | ans = 7 | 10 | 8 | MOV AC, R3; | ADD; | ||||||||||||||||||||||||
58 | MOV R5, R3; | MOV R5, R2; | LOAD; | |||||||||||||||||||||||||||
59 | ADD; | MUL; | MOV R6, DR; | |||||||||||||||||||||||||||
60 | ADDX; | ADDY; | INCI; | |||||||||||||||||||||||||||
61 | ADDY; | MOV R5, R4; | MOV R5, R2; | |||||||||||||||||||||||||||
62 | MOV R1, AC; | ADD; | MOV AC, R2; | |||||||||||||||||||||||||||
63 | MOV02; | MOV R5, AC; | ADD; | |||||||||||||||||||||||||||
64 | MOV R5, R1; | MOV13; | ADD; | |||||||||||||||||||||||||||
65 | ADD; | ADD; | ADD; | |||||||||||||||||||||||||||
66 | MOV R7, AC; | LOAD; | MOV R5, AC; | |||||||||||||||||||||||||||
67 | CONST 0; | MOV AC, DR; | MOV13; | |||||||||||||||||||||||||||
68 | MOV AC, R1; | MOV R5, R6; | ADDY; | |||||||||||||||||||||||||||
69 | STORE; | MUL; | ADD; | |||||||||||||||||||||||||||
70 | LOAD; | MOV R5, R7; | LOAD; | |||||||||||||||||||||||||||
71 | ADD; | MOV AC, DR; | ||||||||||||||||||||||||||||
72 | Checks MOV02,MOV13 | MOV R7, AC; | INCI; | |||||||||||||||||||||||||||
73 | INCI; | MOV R5, R6; | ||||||||||||||||||||||||||||
74 | RSTALL; | 1011 | MOV R5, R2; | MUL; | ||||||||||||||||||||||||||
75 | CONST 11; | MOV AC, R3; | MOV R5, R7; | |||||||||||||||||||||||||||
76 | MOV13; | 3 | SUB; | ADD; | ||||||||||||||||||||||||||
77 | MOV R7, AC; | JMPNZ; | MOV R7, AC; | |||||||||||||||||||||||||||
78 | CONST 0; | 2; | MOV AC, R4; | |||||||||||||||||||||||||||
79 | MOV AC, R1; | MOV02; | MOV R5, R2; | |||||||||||||||||||||||||||
80 | STORE; | ADDX; | SUB; | |||||||||||||||||||||||||||
81 | CONST 11; | MOV R5, R3; | JMPNZ; | |||||||||||||||||||||||||||
82 | MOV02; | 2 | MUL; | 2; | ||||||||||||||||||||||||||
83 | MOV R7, AC; | ADDY; | MOV02; | |||||||||||||||||||||||||||
84 | CONST 1; | MOV R5, AC; | ADDX; | |||||||||||||||||||||||||||
85 | MOV AC, R1; | MOV13; | MOV R5, R3; | |||||||||||||||||||||||||||
86 | STORE; | ADD; | MUL; | |||||||||||||||||||||||||||
87 | MOV R5, R4; | ADDY; | ||||||||||||||||||||||||||||
88 | Matrix Multiplication (for 2x2 cores) , can check one core as well | ADD; | MOV R5, AC; | |||||||||||||||||||||||||||
89 | ADD; | MOV13; | ||||||||||||||||||||||||||||
90 | RSTALL; | Data memory | 1 | STORE; | ADD; | |||||||||||||||||||||||||
91 | SIZE 2; | 2 | MOV R2, R1; | STORE; | ||||||||||||||||||||||||||
92 | CONST 0; | 3 | INCI; | MOV R2, R1; | ||||||||||||||||||||||||||
93 | MOV R2, R1; | 4 | MOV R1, R2; | INCI; | ||||||||||||||||||||||||||
94 | CONST 0; | 1 | MOV R5, R1; | MOV R5, R2; | ||||||||||||||||||||||||||
95 | MOV02; | 2 | CONST 0; | CONST 0; | ||||||||||||||||||||||||||
96 | ADDX; | 3 | MOV R7, R1; | MOV R7, R1; | ||||||||||||||||||||||||||
97 | MOV R5, R3; | 4 | RSTI; | RSTI; | ||||||||||||||||||||||||||
98 | MUL; | (0,0) | Data Mem Ans => | 7 | CONST 16; | CONST 4; | ||||||||||||||||||||||||
99 | MOV R5, R2; | (0,1) | 10 | MOV AC, R1; | MOV AC, R1; | |||||||||||||||||||||||||
100 | ADD; | (1,0) | 15 | MOV R1, R5; | MOV R1, R5; | |||||||||||||||||||||||||