Foros del Web » Programación para mayores de 30 ;) » Programación General »

[SOLUCIONADO] ENSAMBLADOR MIPS cadena de caracteres

Estas en el tema de ENSAMBLADOR MIPS cadena de caracteres en el foro de Programación General en Foros del Web. Buenas, ¿como puedo hacer un procesamiento de cadena de caracteres, en el cual tengo que meter una cantidad maxima de 200 caracteres y tiene que ...
  #1 (permalink)  
Antiguo 10/05/2013, 06:25
 
Fecha de Ingreso: julio-2006
Ubicación: Alicante
Mensajes: 281
Antigüedad: 17 años, 8 meses
Puntos: 1
ENSAMBLADOR MIPS cadena de caracteres

Buenas, ¿como puedo hacer un procesamiento de cadena de caracteres, en el cual tengo que meter una cantidad maxima de 200 caracteres y tiene que Mostrar por pantalla el número de palabras, Mostrar por pantalla la cadena invertida y Pedir por teclado un carácter y decir cuantas veces se repite en la cadena?

Ejemplo de lo que tiene que hacer:

Introduce una cadena: Hola a todos
Número de palabras: 3
Cadena invertida: sodot a aloh
Introducir un carácter: a
Número de repeticiones: 2

Gracias de antemano.
  #2 (permalink)  
Antiguo 10/05/2013, 06:33
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

Que es lo que tienes hecho del ejercicio? La duda es capturar/imprimir los caracteres o simplemente revertir la cadena?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 16/05/2013, 11:31
 
Fecha de Ingreso: julio-2006
Ubicación: Alicante
Mensajes: 281
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

Código:
.data
		.space 50
oracion: 	.asciiz "Introduce una cadena: "
		.align 2
entero: 	.word 0
.text

main: 		li $v0, 4 		# código de imprimir cadena
		la $a0, oracion		# dirección de la cadena
		syscall 		# Llamada al sistema
		li $v0, 12 		# código de leer entero
		syscall			# Llamada al sistema
		sb $v0, entero
fin: 		jr $ra
Tengo echo lo siguiente.
Pues tengo que capturar, imprimir y revertir los caracteres.
  #4 (permalink)  
Antiguo 17/05/2013, 03:45
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

Para revertir es simplemente recorrer la cadena al reves e ir copiando (por ejemplo con "lb"+"sb").

Para capturar e imprimir, desconozco el dispositivo. En un PC normal se captura mediante la interrupción 9h y se puede imprimir mediante la 10h o accediente directamente a la memoria de video.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 17/05/2013, 06:18
 
Fecha de Ingreso: julio-2006
Ubicación: Alicante
Mensajes: 281
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

¿Pero como puedo hacer para mostrar por pantalla el numero de palabras?
Esque he estando buscando por internet y no he conseguido ver como hacerme una idea de como hacerlo.
  #6 (permalink)  
Antiguo 17/05/2013, 06:29
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

Cita:
Iniciado por Danico Ver Mensaje
¿Pero como puedo hacer para mostrar por pantalla el numero de palabras?
Esque he estando buscando por internet y no he conseguido ver como hacerme una idea de como hacerlo.
Una palabra no es más que un conjunto de letras o números que se concatenan mediante "espaciadores". Por ejemplo:

PALABRA1[ESPACIO]PALABRA2[COMA]PALABRA3
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 17/05/2013, 06:40
 
Fecha de Ingreso: julio-2006
Ubicación: Alicante
Mensajes: 281
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: ENSAMBLADOR MIPS cadena de caracteres

He estado mirando y he encontrado esto:
Código:
			#Zona de datos
		.data 0x10010000
long:		.word 10		#tamanyo del buffer

		#Zona de datos
		.text
main:		lui  $t1, 0xFFFF
		lw   $s0, long($0)
		addi $s0, $s0, -1
		li   $t6, 0x0D
		
ctri:		jal  wi
		lb   $t7, 4($t1)
		jal  wo
		sb   $t7, 0xC($t1)
		addi $s0, $s0, -1
		beq  $t7, $t6, fin
		bne  $s0, $0, ctri

fin:		li   $t7, 0x0A
		jal  wo
		sb   $t7, 0xC($t1)
		andi $t7, $t7, 0
		jal  wo
		sb   $t7, 0xC($t1)
		
		li   $v0,10
		syscall
		
wi:

 	li $t0,10
cont1: 	addi $t0,$t0,-1
 	bnez $t0,cont1
		
wo:		

 	li $t0,10
cont2: 	addi $t0,$t0,-1
 	bnez $t0,cont2
Pero no muestra nada por pantalla ni veo que hace nada.
Solamente necesito un codigo para leer una cadena de caracteres de 50, pero todos los que he probado he visto que no hacen nada.

Última edición por Danico; 19/05/2013 a las 10:40

Etiquetas: cadena, caracteres, ensamblador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:17.