Título: Leer Cadena de Caracteres
Publicado por: muyayodeoz en 10 Enero 2014, 11:59 am
Hola me dan este ejercicio: 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: .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
Título: Re: Leer Cadena de Caracteres
Publicado por: muyayodeoz en 10 Enero 2014, 16:25 pm
Ya lo he arreglado, he aqui el bueno .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 #Pide una cadena de 10 jal put_str
la $4,string_10 #Lee la cadena que se ha introducido la $5,10 jal read_string_10
la $a0,string_pideString_20 #Pide una cadena de 20 jal put_str
la $4,string_20 #Lee la cadena que se ha introducido la $5,20 jal read_string_20
jal fin #---------------------------Subrutinas----------------------------------#
read_string_10: li $v0,8 # función de syscall: read_string la $a0,0x10010000 # 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,0x10020000’ # 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
|