web-dev-qa-db-fra.com

A quoi servent les registres CS et IP dans un assemblage Intel 8086?

Ainsi, comme le dit la question, à quoi servent les registres CS et IP dans 8086 d'Intel

J'ai trouvé cette explication:

Le segment de code (CS) est un registre de 16 bits contenant l'adresse du segment de 64 Ko avec le processeur instructions. Le processeur utilise le segment CS pour tous les accès aux instructions référencées par registre de pointeur d'instruction (IP). Le registre CS ne peut pas être changé directement. Le registre CS est automatiquement mis à jour pendant les instructions de saut, d'appel et de retour.

et ceci pour IP:

Le pointeur d'instruction (IP) est un registre de 16 bits.

Je ne comprends pas vraiment ce que cela signifie fondamentalement, donc si quelqu'un pouvait fournir une explication plus «vivante», ce serait génial :)

20
idjuradj

Étant donné que le pointeur d'instruction (IP) est de 16 bits, cela signifie que vous ne pouvez avoir que des instructions de 64k (2 ^ 16), ce qui n'était pas beaucoup dans les années 80. Donc, pour élargir l’espace d’adresse, vous avez un deuxième registre qui adresse 64k blocs. Vous pouvez considérer cs: ip ensemble comme un seul registre de 32 bits qui est ensuite capable d'adresser 2 ^ 32 octets ... c'est-à-dire 4G, ce que vous obtenez sur un processeur utilisant des adresses de 32 bits. Le 8086 utilisait 20 bits d’adresses pour pouvoir accéder à 1 M de mémoire.

16
user1666959

L'adresse physique est calculée à partir de 2 parties. i. adresse de segment L'IP (Instruction Pointeur) contient le décalage dans le segment de code de la mémoire. Par conséquent, CS: IP est utilisé pour pointer vers l’emplacement (c’est-à-dire pour calculer l’adresse physique) du code en mémoire.

23
kiran james

comme le processeur 8086 utilise un adressage de 20 bits, nous pouvons accéder à 1 Mo de mémoire, mais les registres de 8086 n’ont que 16 bits. l'adresse physique, cela se fait en déplaçant la valeur de CS 4 bits .__ vers la gauche puis en l'ajoutant avec la valeur IP 

EXEMPLE:

la valeur de CS est 1234Hex (hexa décimal)

la valeur de IP est 5678Hex

maintenant la valeur de CS après avoir déplacé 4 bits restants est 12340Hex puis après avoir ajouté avec la valeur IP 179A8Hex, qui est l'adresse physique

1
Amrish Ak

Une fois que vous avez écrit .code dans le texte de votre programme d'assemblage, ce code pointe sur la valeur cs. toute commande ultérieure ou antérieure du fichier sera adressée selon cs: ip, où ip est une valeur de décalage de cs.

Bien entendu, vous devez garder à l'esprit que le compilateur Assembly convertira d'abord le texte en instructions de code machine.

1
zeimer

Registre IP - IP est un pointeur d'instruction. Sa fonction est la même que celle d’un PC (compteur de programme) dans un autre microprocesseur, qui doit indiquer l’instruction suivante à extraire par l’unité BIU et transmise à l’unité UE.

0
masood qazi