J'essaie de comprendre le codage des instructions 8086. Même si j'ai trouvé une instruction générale et une référence volumineuse, je ne la comprends toujours pas.
Pourriez-vous m'expliquer comment les "traductions" suivantes à partir de données d'octet sont effectuées?
Merci d'avance!
48 -> dec ax
EB0D -> jmp short 0xf
642120 -> and [fs:bx+si],sp
x86
assembly
disassembly
muffel
la source
la source
Réponses:
Votre désassembleur indique le décalage JMP SHORT à partir du début de l’instruction lorsque le nombre réel JMP SHORT compte à partir de l’octet après l’instruction. Peut-être avez-vous besoin d'un autre désassembleur permettant un bon décodage.
la source
Un saut (ou ce) inconditionnel est suivi de données, qu'il s'agisse de données réelles ou de données d'alignement. Pour 8086, 2 ou 4 est un bon alignement, l’instruction suivante pourrait donc commencer à 21, 20 ou au-delà.
la source