| Al termine delle 2
passate l'assemblatore
rende disponibile un codice
oggetto quasi funzionate
(il file OBJ) nel quale:
| le etichette
operando delle istruzioni
CALL
(relative agli enty
point delle procedure)
saranno codificate con un valore
nullo 0000H, pur rendendo
disponibile il loro indirizzo nella
Tavola
dei Simboli e un marcatore
in grado di ricordare che si tratta di un indirizzo interno
rilocabile. |
| le etichette
operando delle istruzioni
JMP
(o
Jxx,
relative ai punti a cui saltare)
saranno sostituite direttamente nel codice
macchina da un numero con segno
rappresentante la distanza (in bytes) dal punto di programma in cui è
definita l'etichetta stessa; per questa codifica è prevista una coppia
di bytes per cui:
|
se la distanza tra i punti è breve
(NEAR)
e l'etichetta è definita dopo la
linea di programma, sarà necessario un numero
a 16 bit compreso tra 3
(0003H) e 32767 (7FFFH), in pratica il numero di bytes
tra
l'istruzione che usa l'etichetta come operando e quella che definisce
l'etichetta (esclusi i bytes
necessari per definirle) |
|
se la distanza tra i punti è breve
(NEAR)
e l'etichetta è definita prima
della linea di programma, sarà sarà necessario un
numero a 16 bit compreso tra 32768
(8000H) e
-3 (FFFCH), in pratica il numero di bytes tra
l'istruzione che usa l'etichetta come operando e quella che definisce
l'etichetta (compresi i bytes
necessari per definirle) |
| se
la distanza tra i punti topici è vicina
(SHORT)
basterà un numero a 8 bit compreso tra 3
(03H) e 127
(7FH) [con etichetta definita
dopo] o tra
128 (80H) e
-3 (FCH)
[con etichetta definita prima]; in
questo caso,
poichè il terzo bytes previsto dal codice
mnemonico non è necessario, l'assemblatore lo codifica con 90H, NOP |
|
|