5.34 · exercise
Sum a global array
A global array of scores lives in .bss, and the starter fills it from input: first the count, then that many scores. Add every element and print the total.
Walk the array the usual way: a base address in an x register, a word index in a w register, and the scaled-index load ldr wX, [base, wI, sxtw 2]. The sxtw 2 widens the index to 64 bits, keeping its sign, then multiplies it by 4 (a left shift of two bits) to turn a word count into a byte offset.
What is checked
- the total is printed on its own line
- the program exits cleanly
- elements are loaded with the scaled-index form (
sxtwpresent, total not written in) - the same holds for other arrays you do not see, an empty one (count 0) and negative scores among them
specification
stdin8
12 9 41 7 30 5 22 18
stdoutprints the right output
exitexits with the right code
sourceuses
sxtwsourcedoes not hardcode the answer
hiddenright output and exit code on 4 more inputs you do not see
We run your program on the input above and on the hidden ones, and compare what it does. Nothing is matched against a stored solution.