linguaggio Assembly è un linguaggio di programmazione a basso livello , il che significa che tratta direttamente con l'hardware . Istruzioni di montaggio sono molto simili alle istruzioni macchina che un'unità centrale di elaborazione o CPU , legge . Un programma di montaggio può spostare i dati da un registro ad un posto in memoria , che viene gestito automaticamente dai linguaggi di alto livello come Python . L'offset di una istruzione è la differenza tra la sua posizione in memoria e la posizione a cui fa riferimento . Per esempio , una ramificazione riferimenti istruzione un posto nella memoria che il programma salta al . È possibile calcolare questo offset abbastanza facilmente . Istruzioni
1
Trova l' indirizzo dell'istruzione che si desidera espandersi esecuzione a . Questo indirizzo sarà specificato all'interno del programma di montaggio stesso. Ad esempio , si supponga di voler diramare per affrontare 0x100 . Linguaggio Assembly utilizza in genere numeri esadecimali per gli indirizzi di memoria . I numeri esadecimali sono denotate da un precedente "0x ". A intervalli di numeri esadecimali in valore da 0 a 9 e le lettere da A a F , per un totale di 16 valori .
2
Annotare l'indirizzo dove avete posizionato le istruzioni di diramazione. Ad esempio, supponiamo che la vostra istruzione di ramificazione è all'indirizzo 0x010 .
3
calcolare la differenza tra i due indirizzi . Questa è l'offset . La maggior parte dei assemblatori calcolare automaticamente per voi , quindi tutto quello che dovete fare è dire dove al ramo di e calcola l'offset . Tuttavia, se si vuole fare questo manualmente tutto ciò che dovete fare è trovare la differenza tra gli indirizzi . Dall'esempio di una ramificazione indirizzo a 0x010 e si vuole espandersi a 0x100 , si avrebbe un offset di 0x090 .