Note that there are some explanatory texts on larger screens.

plurals
  1. POloop through array mips
    primarykey
    data
    text
    <p>I'm working on a homework assignment that requires me to compute the grayscale value of a series of hex values in an array. That's the part I understand. I need to loop through this array of values until a -1 is encountered. Here's what I've got: </p> <pre><code> # -------------------------------- # Below is the expected output. # # Converting pixels to grayscale: # 0 # 1 # 2 # 34 # 5 # 67 # 89 # Finished. # -- program is finished running -- #--------------------------------- .data 0x0 startString: .asciiz "Converting pixels to grayscale:\n" finishString: .asciiz "Finished." newline: .asciiz "\n" pixels: .word 0x00010000, 0x010101, 0x6, 0x3333, 0x030c, 0x700853, 0x294999, -1 .text 0x3000 main: ori $v0, $0, 4 #System call code 4 for printing a string ori $a0, $0, 0x0 #address of startString is in $a0 syscall #print the string LOOP: ori $a0, $0, 0x0 lw $t1, 48($a0) beq $t1 -1, exit addi $t4, $0, 3 sll $t2, $t1, 8 srl $s1, $t2, 24 #$s1 becomes red value sll $t2, $t1, 16 srl $s2, $t2, 24 #$s2 becomes green value sll $t2, $t1, 24 srl $s3, $t2, 24 #$s3 become blue value add $t1, $s1, $s2 add $t1, $t1, $s3 div $t1, $t4 mflo $s4 #$s4 becomes grayscale value or $a0, $0, $s4 ori $v0, $0, 1 syscall ori $v0, $0, 4 ori $a0, $0, 43 syscall j LOOP exit: ori $v0, $0, 4 #System call code 4 for printing a string ori $a0, $0, 33 #address of finishString is in $a0; we computed this # simply by counting the number of chars in startString, # including the \n and the terminating \0 syscall #print the string ori $v0, $0, 10 #System call code 10 for exit syscall #exit the program </code></pre> <p>I know that 48 needs to be incremented by 4 for every iteration of the loop, I just have no idea how to do this in MIPS. Any help is much appreciated!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload