Iniziamo distinguendo tra codice assemblaggio e codice macchina . Questi sono spesso visti come qualcosa di molto simile, e lo sono, ma c'è un passaggio tra il linguaggio assembly e il linguaggio macchina - quello dell'assembler.
Le persone non lavorano più nel codice macchina (hanno fatto lungo fa) è troppo doloroso. Lavorare con un assemblatore ti dà la possibilità di usare etichette e, in alcuni casi, opcode di livello più alto. L'assemblatore può quindi tradurre le etichette e gli opcode di livello superiore in codice macchina.
Quando si disassembla un binario, si ottiene la traduzione del codice macchina in assembly. Ma non tutte le informazioni per il montaggio sono lì. In particolare, le etichette non sono lì. Senza le etichette, si salta e si leggono gli indirizzi corretti. Questo è ciò che l'assemblatore ha convertito l'assembly iniziale in codice macchina.
Se vuoi recuperare le etichette, devi aggiungerle. Passare attraverso ed etichettare ogni indirizzo che viene utilizzato come target di salto o diramazione. Quindi converti ogni uso di quell'indirizzo nell'etichetta e vai avanti da lì. Ricorda che devi aggiungere tutti delle etichette e farlo perché cambierai idea. Aggiungendo un'istruzione o due vicino alla parte superiore, sposterà tutto dopo di esso in un nuovo indirizzo.