n la programación de bajo nivel es preferible un programa independiente de posición a uno dependiente de posición (aun cuando el programa independiente de posición es de un 5% a 10% mas lento que el dependiente de posición). En un ?P MC6809 se cuenta con modos de direccionamiento relativo, relativo extendido e indexado relativo que facilita la elaboración de programas independientes de posición. En especial el indexado relativo del contador de programa (PCR) puede ser usado para apuntar a cualquier localidad relativa al programa no importando su posición en memoria. El PCR (indexado relativo del contador de programa) es una forma de direccionamiento indexado que permite el acceso a tablas dentro del espacio del programa en forma independiente de posición a través del uso de las instrucciones "carga dirección efectiva".
Un programa que es independiente de posición tiene necesidad de utilizar localidades absolutas para dispositivos de E/S. En este caso se pueden grabar estas localidades en el stack como almacenamiento global en una rutina de inicialización antes de la ejecución del paquete independiente de posición. De esta forma en el programa se pueden llamar a los dispositivos de E/S como apuntadores como almacenamiento global, permitiendo que el hardware pueda ser fácilmente cambiado si se desea, ya que solo se necesita reescribir la pequeña rutina de inicialización para cada diferente configuración.
Los datos temporales, globales y permanentes también deben estar disponibles en forma independiente de posición. Las instrucciones LEA permiten el acceso a datos, tablas o valores de texto en forma independiente de posición.
|