Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
yuafan2
Nivel 4


Edad: 36
Registrado: 06 Feb 2007
Mensajes: 69
Ubicación: San Miguel - Bs As.
Carrera: Informática
argentina.gif
MensajePublicado: Dom Jul 28, 2013 7:01 pm  Asunto:  [66.20] Ayuda Còdigo mips Responder citandoFin de la PáginaVolver arriba

Hola, necesitaria si alguien me puede ayudar a coomprender que esta haciendo el siguiente codigo en mips, porq la verdad que no entiendo nada.

Saludos

ADD r2,r0,r0
004 loop SLLI r1,r2, 2
008 SW 16(r1),r2
00C ADDI r2,r2,1
SLI r3,r2,12
SLT $at, $r3, $zero;
BEQ $at, $zero, loop
JMP label
….
….
512 label ADD r5,r6,r7


Libra Género:Masculino Gato OfflineGalería Personal de yuafan2Ver perfil de usuarioEnviar mensaje privadoEnviar emailVisitar sitio web del usuarioMSN MessengerNúmero ICQ
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Dom Jul 28, 2013 10:15 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Está medio horrible el formato en el que lo pegaste, y además con ese fragmento no puede hacerse seguimiento de valores porque depende de cosas que pasaron antes.

Acá tenés la referencia de los mnemónicos: http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html (algunos de los que tenés en tu ejemplo tienen sufijos para el tipo de variable)

Las cosas que pusiste antes de las instrucciones son o número de byte del código o etiquetas (004, 008, 00C, 512: números, loop y label: etiquetas). Ese "$r3" en el STL tiene pinta de error, debería decir "r3" a secas.

Tal vez te sirva pegarle un vistazo a esto: https://www.cs.tcd.ie/Jeremy.Jones/vivio/dlx/dlxtutorial.htm
(Lo único que no tenés ahí es lo del SLT + BEQ; básicamente lo branches de MIPS no hacen comparaciones de números, lo que hace el SLT es guardar el resultado de la comparación como un booleano en "$at" (donde ese $at es algún registro que está decidiendo el ensamblador o alguna macro) y el BEQ hace el loop dependiendo de si "$at" está o no en cero.)


Igual, el código que tenés es medio un pijazo; está accediendo a vectores de enteros de 32bits y parte del código que ves es hacer el direccionamiento de eso. Las multiplicaciones de los índices por el sizeof(int) las está haciendo con corrimientos de bits.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Hache
Nivel 8



Registrado: 13 May 2010
Mensajes: 574

Carrera: Informática
argentina.gif
MensajePublicado: Dom Jul 28, 2013 10:17 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Que no es algo como....

Código:
r2 = r2+r0;
do{
    r1 = r2<<2;
    *r1 = r2;
    r2 = r2+1;

    if(r2<12)
        r3=1;
    if(r3<0)
        at=1;
}while(at=0);
...
...
r5=r6+r7;


Claro que me puedo equivocar....

Sebastian Santisi escribió:
Igual, el código que tenés es medio un pijazo

_________________
Nosotros... Chat FIUBA!

   OfflineGalería Personal de HacheVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Dom Jul 28, 2013 10:42 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Editando sobre el tuyo:
Código:
r2 = 2*r0;
do{
    r1 = r2<<2;
    v[r1] = r2;  // Donde v es un vector que arranca en 16; las dos últimas líneas, yo las veo equivalentes a "v[r2] = r2", con int v[].
    r2++;

/*
La verdad es que no sé qué es SLI, pero si fuera lo que entendiste vos me suena más a "r3 = r2 < 12" que a:
    if(r2<12)
        r3=1;
De todos modos, no me suena a que sea una comparación el SLI; se me hace que debería decir SUB y que el objetivo final es iterar mientras que r2 < 12 */
*/
while(r3 >= 0);
r5=r6+r7;  // Esta línea queda inmediata al while.


[edit]
O sea, completo y emprolijado me suena a:
Código:

int *v = 16;
for(i = 2*a; i < 12; i++)
   v[i] = i;

Y si me dicen que r0 vale cero queda pipí-cucú.
[/edit]

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]



Última edición por Sebastian Santisi el Dom Jul 28, 2013 10:50 pm, editado 1 vez
Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Hache
Nivel 8



Registrado: 13 May 2010
Mensajes: 574

Carrera: Informática
argentina.gif
MensajePublicado: Dom Jul 28, 2013 10:49 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Tenes razon. Bah, interpreté que SLI es 'set if less than', asi que claro, si no es tiene que poner cero.

_________________
Nosotros... Chat FIUBA!

   OfflineGalería Personal de HacheVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.3803s ][ Pedidos: 20 (0.2994s) ]