Problem Statement
Suppose that ALPHA is an array of 100 words, as defined in Fig. 1.5(a). Write a sequence of instructions for SIC to set all 100 elements of the array to 0.
Solution
Line Number(ac) | Code | Description |
1 | LDA ZERO | |
2 | STA INDEX | |
3 | LOOP LDX INDEX | |
4 | LDA ZERO | |
5 | STA ALPHA, X | |
6 | LDA INDEX | |
7 | ADD THREE | |
8 | STA INDEX | |
9 | COMP K300 | |
10 | TIX TWENTY | |
11 | JLT LOOP | |
12 | INDEX RESW 1 | |
13 | ALPHA RESW 100 | |
14 | ZERO WORD 0 | |
15 | K300 WORD 100 | |
16 | THREE WORD 3 |
LDA ZERO ; Load 0 into the accumulator
STA INDEX ; Store 0 into INDEX
LOOP LDX INDEX ; Load INDEX into the X register
LDA ZERO ; Load 0 into the accumulator
STA ALPHA, X ; Store 0 into ALPHA + X (array element)
LDA INDEX ; Load the value of INDEX into the accumulator
ADD THREE ; Add 3 to the accumulator
STA INDEX ; Store the new value back into INDEX
COMP K300 ; Compare the value in A with K300 (100)
JLT LOOP ; If INDEX < 100, jump to LOOP
END ; End of the program
INDEX RESW 1 ; Reserve 1 word for INDEX
ALPHA RESW 100 ; Reserve 100 words for the array ALPHA
ZERO WORD 0 ; A word initialized to 0
K300 WORD 300 ; K300 should be 300 (100 * 3) for comparison
THREE WORD 3 ; A word initialized to 3