I need some help with this exercise, I'm a little confused about what all we are supposed to do and what the output is supposed to look like. I started my code but I'm stuck at this point because I'm not entirely sure what all we are supposed to do for this assignment so I'm not sure if I'm on the right track or if I need to start over. It's not a difficult assignment but the prompt is just sort of vague and unclear.
here is the prompt:
Write a MIPS assembly program that when run in MARS at 25 instructions/second will
display in the Memory segment a 4-byte “sprite” that moves from left to right across the
top of the memory display. Note: there are eight words in the top row of memory display.
Important: set the MARS slider bar to execute at a slower speed. Omitting this step will
run at full speed and no output will be apparent.
For example, consider the portion of the assignment where the sprite moves from left to
right. Assuming that you chose a “background” of the hex digit e and a “sprite” of the
hex digit 0, a “time lapse” series of snapshots of the Memory segment display would look
like the data below:(0 is the sprit character)
Time 1: 0x0eeeeeee 0xeeeeeeee. . .
Time 2: 0xe0eeeeee 0xeeeeeeee. . .
Time 3: 0xee0eeeee 0xeeeeeeee. . .
Time 4: 0xeee0eeee 0xeeeeeeee. . .
Time 5: 0xeeee0eee 0xeeeeeeee. . .
Time 6: 0xeeeee0ee 0xeeeeeeee. . .
Time 7: 0xeeeeee0e 0xeeeeeeee. . .
Time 8: 0xeeeeeee0 0xeeeeeeee. . .
Time 9: 0xeeeeeeee 0x0eeeeeee. . .
You may choose the hex digits used for the “background” and the “sprite” – select two
hex digits that have as much contrast as possible for best visibility. For instance, the
digits e and c are poor choices because they look so similar.
Your program will involve a series of nested loops.
What I have tried:
.data
InArr: .word 0x0eeeeeee
.text
.globl main
main:
#
li $s2,0x0eeeeeee
li $s3,0
#
loop:
ror $s2,$s2,4 # $s2 = $s2 >>4
sw $s2,InArr # InArr(0) = $s2
#addi $s2,$s2,4
bne $s2,$s3,loop # until i==0
#
li $v0,10 # System(exit)
syscall