bigString holds a copy of theString in big characters and with one column of space
display is where characters are placed before being written out to the screen
all_chars[52*9*9] array containing representation of ‘A’-‘Z’ and ‘a’-‘z’ as big chars (not shown in
The aim of this exercise is to complete the supplied MIPS program skeleton (in the file scroll.s) to
behave exactly like the C program (in scroll.c). You should not change the chars.s file; treat its
contents as a read-only data structure.
In scroll.s each function has comments to:
indicate which registers the function uses
indicate which registers the function overwrites (clobbers)
give a mapping between local variables in the C code and registers in MIPS
Note that these are suggestions only; you can use whatever registers you like, provided that you save
and restore any $s? registers that you overwrite in the function code. And, of course, provided that the
code behaves the same as the C code.
To save you some time, we have included function prologues and epilogues in some functions. These
save and restore registers $fp, $ra, and any $s? registers that the function happens to use, and also
maintain the stack. You can use these as templates for how to implement the prologue and epilogue in
the functions that do not provide them.
Some of the functions from scroll.s are already implemented, but others require you to write MIPS
assembler for them. Here’s a rundown of the functions in scroll.s and their status:
main Partly complete, including the epilogue and prologue, and the command-line
setUpDisplay Function prologue and epilogue ok. ToDo: function body.
showDisplay Function prologue and epilogue ok. ToDo: function body.
delay Already complete, but you can tweak the numbers if you want, to speed up or
slow down the animation.
isUpper ToDo: function prologue and epilogue, and function body.
isLower Already complete (and makes isUpper very easy).