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

contador de programa en ensamblador

Estas en el tema de contador de programa en ensamblador en el foro de Programación General en Foros del Web. Tengo un problema, debo de hacer una tare que consiste en traducir las diferentes instrucciones de ensamblador viendo cuanto espacion en bytes ocupa cada una ...
  #1 (permalink)  
Antiguo 04/04/2006, 10:23
 
Fecha de Ingreso: abril-2005
Mensajes: 208
Antigüedad: 19 años
Puntos: 1
contador de programa en ensamblador

Tengo un problema, debo de hacer una tare que consiste en traducir las diferentes instrucciones de ensamblador viendo cuanto espacion en bytes ocupa cada una de ella. El contador del programa (pc) se actualiza tanto bytes tenga una instrucción actual apuntando siempre hacia la instrucción siguiente. Cuando quiero codificar las etiquetas tanto en saltos condicionales o incondicionales no se como poner la etiqueta he visto ejemplo, pero aun no he entendido, desearía alguien ayudarme en esto he podido codificar todo menos esta parte.

De antemano gracias

Saludos,

Logout
  #2 (permalink)  
Antiguo 04/04/2006, 22:35
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
No entendi muy bien tu post, pero como que agarre que intentas hacer un ensamblador y que ienes problemas con los nombres de jumps y de calls.
Lo que yo hice fue dejar la direccion del call en 00 y guardar ese punto, es decir, en que direccion de memoria esta ese 00. Despues usando listas enlazadas, guardo en un nodo el nombre, la ubicacion y algun dato que necesite y al final de ensamblar todo te pones a dar direcciones, como?
Recorres toda tu lista enlazada y vas sustituyendo los 00 por el numero que tu ya tienes al haber terminado el ensamblado primario.

Un poco confuso. Descibeme mas tu problema y vere si te puedo ayudar ms.

SAluudos
  #3 (permalink)  
Antiguo 05/04/2006, 07:48
 
Fecha de Ingreso: abril-2005
Mensajes: 208
Antigüedad: 19 años
Puntos: 1
Sonrisa

Gracias por la ayuda, ve lo que pasa es lo siguiente me dan el siguiente codigo en ensamblador
MOV R0, [A] ; El ensamblado comienza a partir de la dirección
CMP R0, [B] ; 10F8h que es en la primera instrucción
JLE Label_1
DEC R0
JMP Label_2
Label_1: ADD [B], 4
Label_2: MUL [B], R0
MOV [A], R0

y esto lo debo de meter en una tabla es decir la primer instruccion iría así
7A 10 20 20 00 00 00, y que corresponden en el mismo orden 7A la directiva mov 10 se refiere al registro y numero, 20 se refiere a que es direccionamiento de memoria y finalmente el valor en 32 bits, ahora bien mi lio consiste en que no sé como identificar las etiquetas de JLE y JMP según se explica el pc (contador del programa) cambia tantos bytes tenga una instruccion y siempre apunta a la instrucción siguiente (dirección supongo) he intentado de todas formas a partir de unos ejemplos y no me sale con los ejemplos, me supongo que unas de mis deficiencias es no seguir la corrida de pc. Espero que esté más claro ahora.
Gracias
  #4 (permalink)  
Antiguo 05/04/2006, 20:40
 
Fecha de Ingreso: abril-2005
Mensajes: 208
Antigüedad: 19 años
Puntos: 1
otro problemilla

Hola a todos,

Ya logré hacer a lo que me referí en el primer y tercer post, pero tengo un pegón quien me dice como se hace esto en lenguaje c o pseudocódigo deseo pasar de ensamblador a lenguaje c o pseudocodigo:

MOV R5, [V+8]
MOV [A], R5

LEA R1, V
ADD R1, 4
MOV [A], [R1]

MOV R1, [A]
LEA R2, V
MOV [R2+12], R1

MOV R1, 8
MOV R3, [V+R1]
MOV [A], R3
Gracias por la ayuda y la atención prestada
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 00:58.