Programación General > ASM (Ensamblador)

 RLE en ensamblador MIPS

<< < (3/17) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa