ROUTINE:MOV R1, -(R6)
MOV R2, -(R6)
CLR R0   ; sum
MOV 10(R6), R1   ; pointer to current array element
MOV 6(R6), R2   ; how many are left
; post-tested loop ok because guaranteed n>0
LOOP:ADD (R1)+, R0
BVS OVERFLOW
DEC R2
BGT LOOP
MOV (R6)+, R2
MOV (R6)+, R1
RTS R7   ; V clear by MOV
OVERFLOW:MOV (R6)+, R2
MOV (R6)+, R1
SEV   ; the MOVs cleared V
RTS R7


[on to problem #9]