.code // No C Code - Start code here MAIN: // void main() { MOV [X], 1 // x = 1; ADD [X], 20 // x = x + 20; // } END MAIN // This has no C counterpart // Is the same as - Code ends here // and execution starts at MAIN .data // No C Code - Variable declarations X DB ?? // int x; // A 1 byte integer |
ADDRESS | VALUE |
0 | MOV |
1 | 6 |
2 | 1 |
3 | ADD |
4 | 6 |
5 | 20 |
6 | STOARGE FOR X |
OLD ADDRESS (Offset) | NEW ADDRESS | VALUE |
0 | 810 | MOV |
1 | 811 | 816 |
2 | 812 | 1 |
3 | 813 | ADD |
4 | 814 | 816 |
5 | 815 | 20 |
6 | 816 | STOARGE FOR X |
MOULDE 1: INTERNAL GLOBAL MAIN(), Y EXTERNAL REFERENCE S1() INTERNAL REFERENCE X MAIN: LOAD X 0 1 STORE Y 2 3 JUMP S1 4 5 X: CONSTANT 1 6 Y: STORAGE 1 7 |
SYMBOL INTERNAL ADDRESS EXTERNAL REFERENCE IDENTITY MAIN() 0 - INTERNAL GLOBAL S1() 5 ? EXTERNAL X 6 - INTERNAL Y 7 - INTERNAL GLOBAL |
ADDRESS | VALUE |
0 | LOAD |
1 | 6 |
2 | STORE |
3 | 7 |
4 | JUMP |
5 | ?? |
6 | STOARGE FOR X |
7 | STOARGE FOR Y |
MOULDE 2: INTERNAL GLOBAL S1() EXTERNAL REFERENCE Y INTERNAL REFERENCE Z S1: LOAD Y 0 1 ADD 2 2 3 STORE Z 4 5 HALT 6 Z: STORAGE 1 7 |
SYMBOL INTERNAL ADDRESS EXTERNAL REFERENCE IDENTITY S1() 0 - INTERNAL GLOBAL Y 1 ? EXTERNAL Z 7 - INTERNAL |
ADDRESS | VALUE |
0 | LOAD |
1 | ?? |
2 | ADD |
3 | 2 |
4 | STORE |
5 | 7 |
6 | HALT |
7 | STOARGE FOR Z |
Address | Operator/Data | Operand/Data |
Module 1 Starts Here | ||
0 | LOAD | 6 |
2 | STORE | 7 |
4 | JUMP | 8 |
6 | STORAGE FOR X | STORAGE FOR Y |
Module 2 Starts Here | ||
8 | LOAD | 7 |
10 | ADD | 2 |
12 | STORE | 15 |
14 | HALT | STORAGE FOR Z |
Address | Operator/Data | Operand/Data |
140 | LOAD | 146 |
142 | STORE | 147 |
144 | JUMP | 148 |
146 | STORAGE FOR X | STORAGE FOR Y |
148 | LOAD | 147 |
150 | ADD | 2 |
152 | STORE | 155 |
154 | HALT | STORAGE FOR Z |