Desarrollar un código compuesto por un programa principal y una única subrutina que sirva para leer de consola una cadena de caracteres. El programa principal hará uso en dos ocasiones de dichas subrutinas para almacenar en memoria dos cadenas diferentes, de tamaño 10 y 20 respectivamente, las cuales serán almacenadas a partir de las posiciones 0x10010000 y 0x10020000.
Tengo esto pero creo que esta mal:
Código:
.data
string_10: .asciiz “Caracteres”
string_20: .asciiz “AquiVeinteCaracteres”
string_pideString_10: .ascizz “Introduce una cadena de 10 caracteres”
string_pideString_20: ,ascizz “Introduce una cadena de 20 caracteres”
.text
.globl __start
__start
la $a0,string_pideString_10
la $4,string_10
la $5,10
jal read_string_10
la $a0,string_pideString_20
la $4,string_20
la $5,20
jal read_string_20
jal fin
#---------------------------Subrutinas----------------------------------#
read_string_10:
li $v0,8 # función de syscall: read_string
la $a0,string_10 # direc. base del buffer donde se escribe
# la cadena introducida por consola (teclado)
li $a1,10 # tamaño del buffer: 10 caracteres
syscall # Lectura de cadena
read_string_20:
li $v0,8 # función de syscall: read_string
la $a0,string_20 # direc. base del buffer donde se escribe
# la cadena introducida por consola (teclado)
li $a1,10 # tamaño del buffer: 10 caracteres
syscall # Lectura de cadena
fin:
li $v0,10 #Cierra consola y finaliza programa.
syscall
Creo que esta mal a ver si me ayudais gracias