J'essaie de comprendre comment encoder l'instruction MOV DS, AX
, mais je suis confus par la table d'opcode comme suit:
-
MOV DS est-il un octet ou MOV est-il un octet, DS le deuxième et AX le troisième?
-
Le tableau impliquant que la valeur binaire du préfixe de registre source DS est 011? Si tel est le cas, comment pourrais-je l'encoder dans le cadre de l'instruction entière?
Je ne peux pas comprendre comment les tableaux ont un sens par la façon dont ils sont répertoriés; ils devraient être plus précis! Quelqu'un peut-il corriger cela?
Je veux juste déplacer la valeur du registre AX vers le segment de données, DS. Aucun site n'explique parfaitement comment l'encodage des registres dans les opcodes fonctionne exactement, ou la relocalisation.
Toutes les tables proviennent de http://ref.x86asm.net, et c'est très vague, peu clair, non spécifique et non détaillé.
Je voudrais savoir s'il existe des didacticiels 100% détaillés et parfaitement expliqués sur le fonctionnement du codage de chaque octet, des valeurs de chaque registre, de la troncature d'adresse, du décalage, etc. binaire, et comment l'encoder correctement.