Page 21-57
@SST↓@ SL1 = 1. (S + k
2
) [Stores value of SL2 = 2, into
SL1 = ‘k’]
@SST↓@ SL1 = ‘S’, SL2 = 1. (S + k
2
)
@SST↓@ Empty stack [Stores value of SL2 = 1, into SL1
= ‘S’]
@SST↓@ Empty stack (NEXT – end of loop)
--- loop execution number 3 for k = 2
@SST↓@ SL1 = 2. (k)
@SST↓@ SL1 = 4. (SQ(k) = k
2
)
@SST↓@ SL1 = 1.(S), SL2 = 4. (k
2
)
@SST↓@ SL1 = 5. (S + k
2
)
@SST↓@ SL1 = 1., SL2 = 5. (S + k
2
)
@SST↓@ SL1 = 2.(k), SL2 = 1., SL3 = 5. (S + k
2
)
@SST↓@ SL1 = 3.(k+1), SL2 = 5. (S + k
2
)
@SST↓@ SL1 = ‘k’, SL2 = 3., SL3 = 5. (S + k
2
)
@SST↓@ SL1 = 5. (S + k
2
) [Stores value of SL2 = 3, into
SL1 = ‘k’]
@SST↓@ SL1 = ‘S’, SL2 = 5. (S + k
2
)
@SST↓@ Empty stack [Stores value of SL2 = 0, into SL1
= ‘S’]
@SST↓@ Empty stack (NEXT – end of loop)
--- for n = 2, the loop index is exhausted and control is passed to the statement
following NEXT
@SST↓@ SL1 = 5 (S is recalled to the stack)
@SST↓@ SL1 = “S”, SL2 = 5 (“S” is placed in the stack)
@SST↓@ SL1 = S:5 (tagging output value)
@SST↓@ SL1 = S:5 (leaving sub-program »)
@SST↓@ SL1 = S:5 (leaving main program »)
The step-by-step listing is finished. The result of running program @@@S1@@ with n =
2, is S:5.
Check also the following results: J