Silver_Smoulder icon

[ASM] [Inc] Arrays and Strings

Silver_Smoulder | PRO | 04/16/19 02:58:13 PM UTC | 0 ⭐ | 537 👁️ | Never ⏰ | []
text |

1.37 KB

|

None

|

0 👍

/

0 👎

##output the contents of an "array" which you initialize via .byte, .word, .half
 #then, input a string and output the string backwards
 .data
string_array:
	.space 1000 #define an array 1000 bytes big
 reverse_array:
	.space 1000 #define the array that will hold the reverse
 .globl main
.text
  main:
 	la $a0, user_input #user input
	li $v0, 4
	syscall
 	la $a0, string_array #prepare for user input into the string array
	li $a1, 1000 #telling it to feed it into those 1000 bytes of memory + 1(why +1?)
	li $v0, 8 #the actual syscall code
	syscall
  	la $t0, string_array #set t1 to store an address of our string array
	la $t2, reverse_array #set t2 to be the address of our reverse array 
 repeat:
 	lb $t1, ($t0) #store the BYTE indicated by the address in t0
	beqz $t1, finish #if the address becomes 0, terminate
 	##get the maximium of the reverse array and feed byte by byte from the back-to-front
   	addi $t0, $t0, 4 #increase the address by 4, which moves us to the next byte 
 finish:
	la $a0, terminate
	li $v0, 4
	syscall
 	li $v0, 10
	syscall
   .data
 user_input:
	.asciiz "Input your string: "
 terminate:
	.asciiz "Terminating the program."
   #DO: hybrid assignment 7
#http://courses.cs.vt.edu/~cs2505/summer2011/Notes/pdf/T23.MIPSArrays.pdf
#https://rosettacode.org/wiki/Reverse_a_string#MIPS_Assembly

Comments