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
tuky
Nivel 3


Edad: 39
Registrado: 26 Feb 2008
Mensajes: 28
Ubicación: Buenos Aires
Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jun 23, 2009 10:50 am  Asunto:  Duda ejercicio Pseudoassembler Responder citandoFin de la PáginaVolver arriba

Hola, el ejercicio es este "Hacer un programa que sume los contenidos de 10 posiciones de memoria a partir de la posición 2A y si el resultado es <0 colocar un 1 en el registro 1 y si no colocar un 0"

La verdad es que estoy trabado por que no sé como hacer para que mediante un ciclo ir cambiando la posición de memoria de la cual extraigo el patron de bits.

desde ya muchas gracias

_________________
sobre toda cosa guardada, guarda tu corazón, por que de él emana la vida

Aquario Género:Masculino Rata OfflineGalería Personal de tukyVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Mar Jun 23, 2009 2:01 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¿No te dieron ninguna instrucción para acceso directo, indexado o indirecto a memoria?

¿Hay algún enlace en el que se pueda ver el pseudoassembler que les dieron?

Deberia haber alguna instrucción onda:

MOV r, posicion + offsetenunregistro

O:

MOV r, @registroquemedalaposicion


Si no te dieron ninguna de esas dos, tendrás que hacer algo de la onda de:

MOV r, 0x2A ...
MOV r, 0x2A + 1 ...
MOV r, 0x2A + 2 ...
...
MOV r, 0x2A + 9 ...


Igual, ni idea, la palabra pseudoassembler es un poco mejor que la que usaban antes, pero tampoco dice mucho.

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



Última edición por Sebastian Santisi el Mar Jun 23, 2009 4:09 pm, editado 1 vez
Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
tuky
Nivel 3


Edad: 39
Registrado: 26 Feb 2008
Mensajes: 28
Ubicación: Buenos Aires
Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jun 23, 2009 3:26 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gracias por contestar, el pseudoassembler que almenos enseñan en la cátedra de Strobino se basa en 9 Instrucciones básicas escritas binario que usan los procesadores intel, ejemplo de programa:

262A
2501
200A
2200
2100
B114

las instrucciones que vos señalas me parece que son otra cosa
el tema es que en clase hicieron este ejercicio pero se ve que copié mal por que hay cosas que no me cierran y el viernes es el parcial, ya no puedo consultarlo.

_________________
sobre toda cosa guardada, guarda tu corazón, por que de él emana la vida

Aquario Género:Masculino Rata OfflineGalería Personal de tukyVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN Messenger
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Mar Jun 23, 2009 4:08 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ah, es que eso no es assembly, entonces, es código máquina... la gracia del assembly es ponerle mnemónicos a esas cosas e incluso nombrar igual a instrucciones de máquina que son similares y se sacan del contexto.

¿Sabés qué instrucciones son esas 9? (me da paja buscar la referencia de Intel)

_________________
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
Guido_Garrote
Moderador


Edad: 35
Registrado: 14 Oct 2007
Mensajes: 3319
Ubicación: AHÍ!
Carrera: Civil
haiti.gif
MensajePublicado: Mar Jun 23, 2009 7:19 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

tenes que hacer que la posicion de memoria la lea de un registro, e ir haciendo que ese registro varie en 1 posicion de memoria.

Prometo que mañana lo resuelvo :P

_________________
Image

Piscis Género:Masculino Serpiente OcultoGalería Personal de Guido_GarroteVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuarioMSN Messenger
Bimba
Nivel 8


Edad: 35
Registrado: 13 Sep 2007
Mensajes: 587

Carrera: Química
CARRERA.quimica.3.jpg
MensajePublicado: Mie Jun 24, 2009 12:19 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Las instrucciones deben ser estas:

Image


Leo Género:Femenino Dragón OcultoGalería Personal de BimbaVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Mie Jun 24, 2009 10:47 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Con esas instrucciones, entonces es el enfoque de hacerlo 10 veces. La onda sería algo del estilo de:


Cargar lo que está en 2A en 0
Cargar lo que está en 2B en 1
Sumar 0 y 1 y guardarlo en 0
Cargar lo que está en 2C en 1
Sumar 0 y 1 y guardarlo en 0
Cargar lo que está en 2D en 1
Sumar 0 y 1 y guardarlo en 0
...
Cargar lo que está en 34 en 1
Sumar 0 y 1 y guardarlo en 0


Después de eso, en 0 tenés la suma.

Con las instrucciones pedorras que te dan, si querés saber si es menor que cero, deberías fijarte en el contenido del bit de signo. Para eso, supongo que deberías hacer un AND entre el registro 0 y el byte 0x80..0 (no sé en cuántos bits laburan, supongo que 8, así que sería el 80), y el resultado va a ser cero o distinto de cero. Si dio cero, entonces es mayor o igual que cero, si dio uno, era negativo. El resto es un salto condicional dependiendo de ese resultado.

No lo codifico porque eso es lo que tenés que practicar vos.

Dentro de todo el ejercicio está completo en el hecho de que te están evaluando que sepas bien la representación numérica, y sepas operar en hexa y binario. Fuera de eso, es una paja Smile.

_________________
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
Racoon
Nivel 3



Registrado: 02 Mar 2008
Mensajes: 51

Carrera: Industrial
blank.gif
MensajePublicado: Mie Jun 24, 2009 10:54 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Despues de mucho pelearme con este ejercicio, porq no entendia ni lo que habia hecho strobino ni lo que habia querido copiar yo, creo que entendi lo de ir variando la posicion de memoria.
No estoy segura de que sea asi: si alguien puede confirmar que no entendi cualquier mandioca, mejor.

Ponele q cargaste lo que habia en la posicion 2A en el registro 3 mediante:
132A, y que esta intruccion quedo en la posicion 0A (este 0A seria de la numeracion que pone strobino a la izquierda).

Para ir modificando el numero de posicion que queda guardado en el registro 3, despues de la primera vez que pasas por ahi tenes que guardar en algun reg el 2A (lo guardo en el registro 6 con 262A) y en otro un uno (lo guardo en el registro 1), y los sumas con la instruccion 5 (5661).
Y ahora (esta es la instruccion que hace que vaya variando la posicion de memoria) usas 360B. Esto hace que la proxima vez que vayas por la posicion 0B se reemplace lo que sea que haya ahi con lo que hay en el registro 6 (que va a ir variando).
Puse 0B porq es donde se guardo el 2A al principio: la instruccion 132A empezaba en 0A, entonces el 13 se guarda en 0A y el 2A en 0B.

Trate de respetar los numeros de registros q uso en clase para que puedas seguir un poco mejor lo enredada que fue mi explicacion. Espero que te sirva, y que realmente sea asi q hay que hacerlo.


 Género:Femenino  OfflineGalería Personal de RacoonVer perfil de usuarioEnviar mensaje privado
Guido_Garrote
Moderador


Edad: 35
Registrado: 14 Oct 2007
Mensajes: 3319
Ubicación: AHÍ!
Carrera: Civil
haiti.gif
MensajePublicado: Jue Jun 25, 2009 9:05 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Racoon escribió:
Despues de mucho pelearme con este ejercicio, porq no entendia ni lo que habia hecho strobino ni lo que habia querido copiar yo, creo que entendi lo de ir variando la posicion de memoria.
No estoy segura de que sea asi: si alguien puede confirmar que no entendi cualquier mandioca, mejor.

Ponele q cargaste lo que habia en la posicion 2A en el registro 3 mediante:
132A, y que esta intruccion quedo en la posicion 0A (este 0A seria de la numeracion que pone strobino a la izquierda).

Para ir modificando el numero de posicion que queda guardado en el registro 3, despues de la primera vez que pasas por ahi tenes que guardar en algun reg el 2A (lo guardo en el registro 6 con 262A) y en otro un uno (lo guardo en el registro 1), y los sumas con la instruccion 5 (5661).
Y ahora (esta es la instruccion que hace que vaya variando la posicion de memoria) usas 360B. Esto hace que la proxima vez que vayas por la posicion 0B se reemplace lo que sea que haya ahi con lo que hay en el registro 6 (que va a ir variando).
Puse 0B porq es donde se guardo el 2A al principio: la instruccion 132A empezaba en 0A, entonces el 13 se guarda en 0A y el 2A en 0B.

Trate de respetar los numeros de registros q uso en clase para que puedas seguir un poco mejor lo enredada que fue mi explicacion. Espero que te sirva, y que realmente sea asi q hay que hacerlo.


Es asi, tal cual =)

_________________
Image

Piscis Género:Masculino Serpiente OcultoGalería Personal de Guido_GarroteVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuarioMSN Messenger
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Jue Jun 25, 2009 10:21 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¡Argh!; ¿les plantearon un modelo en el que la memoria del programa y la memoria de los datos es la misma y que un programa puede automodificar su código?

Es bastante bastante bizarro... jamás hubiera hecho esa asunción. Si en los micros viejos Intel se podía, era simplemente por una falencia del hardware.

Eeeeen, fiiiin...

_________________
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
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.2461s ][ Pedidos: 20 (0.1747s) ]