Comprendre le codage des instructions 8086

0

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
muffel
la source
Pourquoi ne vérifiez-vous pas à la place les manuels officiels d'Intel ? Le codage des instructions y est parfaitement expliqué.
m0skit0

Réponses:

0

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.

ZaB
la source
Peut-être pourriez-vous en recommander un?
uSlackr
1
IDA? ollydbg? Visual Studio?
ZaB
NASM
m0skit0
0

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à.

ott--
la source
Pas à nitpick, mais 64h n'est pas un octet de préfixe sur le 8086. Du moins pas selon: electronicsandbooks.com/eab1/manual/… page 273 Ses 4 ans mais toujours