Duda Examen Marzo 2010 - Ej. 3.b

Duda Examen Marzo 2010 - Ej. 3.b

de Ezequiel Jardim Godoy -
Número de respuestas: 2
Hola, tengo dudas al generar el código en ensamblador:
a) ¿Cómo se calculan las direcciones de memoria que están a la izquierda de la tabla de la solución? ¿Porqué hay dos columnas? no me logro dar cuenta, la de la izquierda supongo que es la del orden del código nomas, pero la de la derecha no se de donde sale

b) En este ejercicio veo que no se puede hacer un JMP pasándole una etiqueta, le tenés que pasar un Inmediato. En la letra dice " Salto relativo a la direccion actual más el inmediato de 8 bits (en complemento A2)"
El inmediato ya está en complemento a 2? Cómo interpreto esto? A la suma le hago el complemento?


Muchas gracias de antemano,
Saludos, Ezequiel
En respuesta a Ezequiel Jardim Godoy

Re: Duda Examen Marzo 2010 - Ej. 3.b

de Gonzalo Tejera -
Hola. 
a.i) La arquitectura tiene un largo variable de instrucciones por lo que dependiendo del largo particular de cada instrucción en código máquina, será la cantidad de bytes que te movés entre instrucciones.

a.ii) El formato de la tabla es el siguiente: dirección de carga en memoria relativa; código máquina; código assembler; comentarios.

b) Las etiquetas se usan cuando trabajas en código assembler, cuando pasas a código máquina debés eliminar entre otras cosas las etiquetas colocando un número en su lugar que represente la dirección de salto. En este caso se debe colocar en el lugar de la dirección de salto el código en complemento a dos de salto relativo a la dirección actual.

Saludos, Gonzalo