Programación General > ASM (Ensamblador)
RLE en ensamblador MIPS
manurodri189:
Ok, me llevara un tiempecito, porque también estoy liado con otra cosa, así que en un par de días o así postearé el código en java. Pero vamos de Mips lo que se dice Mips ni idea.
Salu2
m0skit0:
--- Cita de: "manurodri189" ---Pero vamos de Mips lo que se dice Mips ni idea.
--- Fin de la cita ---
Pues ya sabes lo que toca: ponerse a estudiar. Te puedes ahorrar el código en Java, pues como te he dicho, no te lo voy a traducir a MIPS. En todo caso te ayudaría con las dudas, o bien si controlas otro ensamblador, digamos x86, también podríamos ver. Pero si no tienes ni idea de ensamblador... mal vamos.
Un saludo
manurodri189:
Vamos a ver, ahora que he acabado lo demás me he puesto con esté ejercicio.
Primero lo que he decidido es que se introduzca la cadena por teclado, y la codificación se haga de esta manera:
Si se introduce la cadena "22222AA"
Pues se codifica como un array que contenga [2 A] y otro que contenga el numero de repeticiones [5 2]. Esto creo que serviria.
Ahora me he puesto con el codigo pero necesito ayuda, porque es que me cuesta la vida.
He empezado con esto:
--- Código: ASM ---.dataEntrance: .space 80encode1: .space 40encode2: .space 40decode: .space 80msg1: .asciiz "Please insert the String: "msg2: .asciiz " "msg3: .asciiz "n String encode like: "msg4: .asciiz "n String decode like: ".text.globl main main: in:li $v0,4la $a0,msg1syscallli $v0,8syscallli $v0,4syscall
Se supone que en $v0 tengo la cadena que he introducido por teclado no?
Lo que quiero es separar la cadena por caracteres, coger el primer carcter meterlo en el array encode1 y compararlo con el siguiente, y si es igual lo saco de la supuesta array auxiliar e incremento un contador, y si es distinto, lo saco del array y pongo el contador en el array encode2. Tiene buena pinta no?
Pues bueno el primer paso seria comparar los caracteres de la cadena que tengo supuestamente en $v0, dame una idea de como hacerlo por favor.
Salu2
m0skit0:
A ver, primero... ¿Estás usando un simulador de MIPS (PCSPIM ¿?), o cómo? Porque entonces tienes que explicarme qué hace cada syscall, o postear la documentación del manejador de excepciones, que no soy adivino :D
manurodri189:
Si uso PCSPIM, a ver tengo esto:
--- Código: ASM ---# la $a0,msg1# syscall # li $v0,8# syscall # li $v0,4# syscall
La primera lo que hace es que me imprime el msg1 en la consola.
La segunda me captura por teclado un String.
Y la tercer me imprime un String en la consola.
syscall es una llamada al sistema, que por lo que veo, lo que hace depende de la sentencia anterior.
Salu2
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa