ORG
– Referencia del Lenguaje Ensamblador
ORG
instrucción: Ajusta el apuntador ensamblador en tiempo de compilación.
ORG
Address
Address
es una dirección opcional RAM del Cog (0-495) para ensamblar el siguiente
código ensamblador. Si Address no se da se usa el valor 0.
Explicación
ORG
La instrucción
(origin) activa el apuntador ensamblador de la herramienta Propeller a un
nuevo valor para uso en referencias de direcciones.
ORG
solo
, al inicio de Nuevo código ensamblador que se pretende iniciar en un cog separado.
ORG
solo afecta referencias símbolos, no afecta la posicion del código ensamblador en el cog.
Cuando se inicia código ensamblador a través de
carga el código en su RAM iniciando en la dirección 0.
Aun pensando que el código siempre se carga d esta forma, el compilador/ensamblador no
sabe que parte del código constituye el comienzo ya que los desarrolladores son libres de
iniciar cualquier código en cualquier dirección
Para resolver esto, el ensamblador usa un punto de referencia (el valor del apuntador) para
calcular la dirección absoluta de los símbolos referenciados. Esas direcciones absolutas están
codificadas en el destino de la instrucción ensamblador (campo-d) o la fuente (campo-s) en
vez de la referencia simbólica. Por ejemplo:
DAT
org
Toggle
mov
:Loop
xor
jmp
Pin
long
ORG
La sentencia
en este ejemplo active el apuntador ensamblador a cero (0) así el código
que sigue se ensambla con ese punto de referencia en mente. El porque de esto, para el
ensamblador el símbolo
:Loop
simbolo
esta en la localidad 1 y el símbolo
Page 338 · Propeller Manual v1.1
0
dira, Pin
outa, Pin
#:Loop
$0000_0010
Toggle
esta lógicamente en la localidad 0 de la RAM del cog, el
ORG
típicamente aparece como
COGNEW
COGINIT
o
, el destino del cog siempre
'Inicia Cog en RAM 0
'Activa dirección E/S a salida
'Cambia estado de salida de pin
'Ciclo son fin
'Usa pin 4 E/S ($10 or %1_0000)
Pin
esta en la localidad e de la RAM. El
ORG 0
, o