Etiquetas en el ensamblador

Etiquetas en el ensamblador

de Juan Andres Pons Vuolo -
Número de respuestas: 1

Hola, tengo una duda con respecto a las etiquetas que tiene que ver con el registro PC del Z80 y la variable contador de posiciones $ del ensamblador. En la cartilla del micro aparece PC<--nn para el caso de la instrucción JP nn, sin embargo, en las clase se remarca que no es lo mismo $ que PC ya que la primera es una variable de software y la segunda es un registro de hardware, y por ejemplo, si nn fuera una etiqueta, sería $ el encargado de asignarle un valor númerico. Será que lo que ocurre es que $ se guarda en PC en el tiempo de ensamblado? 

En respuesta a Juan Andres Pons Vuolo

Re: Etiquetas en el ensamblador

de Julio Perez -
Juan Andrés:

en tiempo de ensamblado no tenés acceso al contador de programa (PC) ni a

los registros del procesador.

Lo que estás haciendo en ese momento es traducir un texto (el programa tal

como lo escribiste) y generar la secuencia de bytes que habrá después que

almacenar en la memoria del procesador.

Normalmente se hace utilizando un programa (el programa ensamblador), que

lee un archivo de texto y escribe el resultado en un archivo binario, pero

también podrías hacerlo con papel y lápiz (o en el pizarrón) como lo

hicimos en clase.



Ese proceso de traducción  por lo general se hace recorriendo el archivo de

texto con el programa fuente. En ese proceso de traducción en general se

usa una variable "contador de posiciones" en la que se lleva la cuenta de

en qué posición de memoria va a residir el resultado de la traducción de la

próxima línea. Si estoy ensamblando a mano esto se hace simplemente

anotando al comienzo de cada línea el valor de esa dirección de memoria.



Te recuerdo de nuevo que acá no hay ningún procesador z80 ejecutándose. Hay

un humano leyendo cada línea de programa de una hoja de papel (o un

programa ensamblador leyéndolas desde un archivo de texto) y deduciendo el

valor binario correspondiente y en qué dirección de memoria debe cargarse.



El resultado de ese proceso es el código de máquina del programa. Ese

código de máquina debe cargarse por algún mecanismo en la memoria del

procesador.



Recién ahí el procesador va a ejecutar el programa, leyéndolo desde memoria

de a una instrucción por vez.

El contador de posiciones ya no existe, dejó de existir cuando el programa

ensamblador terminó de hacer la traducción para generar el código de

máquina.



Espero haber aclarado algo.

Saludos,