Question

Je sais qu'il utilise l'adresse physique= registre de segment << 4 + registre de décalage. Bien que ces deux registres soient de 16 bits, comment 8086 peut-il gérer une opération de plus de 20 bits?

Était-ce utile?

La solution

L'unité d'interface de bus se compose de registres de segments, d'un additionneur pour générer une adresse de 20 bits et une file d'attente de prélecture d'instructions.Une fois que cette adresse est envoyée hors de BIU, les octets d'instruction et de données sont extraits de la mémoire et ils remplissent une file d'attente de 6 octets First In First Out.

Voir un document intitulé "8086_Internal_Block_diagram_enotes.pdf", facilement accessible via Google.Consultez également ce document , la section sur l'unité d'interface de bus.

Le processeur génère donc ces adresses 20 bits "à la demande" avec un registre interne dédié de 20 bits, si vous voulez.

Autres conseils

Lorsque vous déplacez un nombre de 16 bits de 4 places vers la gauche, vous créez essentiellement un nombre de 20 bits.Le décalage indique alors jusqu'où vous irez dans cette plage.Consultez l ' article de Wikipedia sur l'adressage en mode réel .

Exemple:

0x0001  << 4  ->  0x00010  (5 sets of 4 bits in each hex digit -> 20 bits)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top