org y el compilador

Re: org y el compilador

de Leonardo Etcheverry -
Número de respuestas: 0

Gonzalo,

No hay forma de solucionar eso. Este ensamblador hace una única pasada y requiere que el contador de posiciones siempre se incremente (de ahí que los .orgs tengan que estar en orden creciente.)

Una alternativa, que puede o no servirte dependiendo de lo que quieras hacer, es evitar usar directivas .ORG. Si lo único que te interesa que ciertos datos o código estén alineados a cierta frontera, por ejemplo que una tabla quede en una dirección de la forma 0xXX00, uno puede usar la directiva ".p2align N" para alinear a una potencia de 2 específica:

.p2align 8        ;; el simbolo tablita quedará alineado a un página de 2^8 = 256 
tablita:  db 0

Con eso el ensamblador te garantiza que va a poner tablita en la dirección de la forma 0xXX00 más cercana sin necesidad de tener que hacer un .org a un valor específico. (Siempre verificar con el listado de símbolos que se genera al compilar!)

Saludos, Leonardo.