Quel est le but des registres CS et IP dans l'assemblage Intel 8086?
Donc, que la question des états, quel est le but de CS et IP registres d'intel 8086
J'ai trouvé cette explication:
Segment de Code (CS) est un registre 16 bits contenant l'adresse de segment de 64 KO avec processeur
les instructions. Le processeur utilise CS segment pour tous les accès aux instructions référencé par
pointeur d'instruction (IP) de vous inscrire. CS registre ne peut pas être modifié directement. Le CS registre
est automatiquement mis à jour lors de la mesure de sauter, loin d'appel et de loin, les instructions de retour.
et ce, pour la propriété intellectuelle:
Pointeur d'Instruction (IP) est un registre 16 bits.
Je ne comprends pas vraiment ce que cela signifie essentiellement, donc si quelqu'un pouvait fournir un plus "vif" explication, ce serait génial 🙂
source d'informationauteur idjuradj
Vous devez vous connecter pour publier un commentaire.
Depuis le Pointeur d'Instruction (IP) est de 16 bits, cela signifie que vous ne pouvez avoir de 64 ko instructions (2^16), ce qui n'était pas beaucoup, même dans les années 80. Afin d'élargir l'espace d'adressage, vous disposez d'un deuxième registre des adresses de blocs de 64 ko. Vous pourriez envisager de cs:ip comme un ensemble de 32 bits à registre qui est alors capable de répondre à 2^32 octets...c'est à dire de la 4G est ce que vous obtenez sur un processeur qui utilise 32 bits d'adresses. Le 8086 a l'aide de 20 bits d'adresses, de sorte que vous pouvez avoir accès à 1M de la mémoire.
L'adresse physique est calculée à partir de 2 pièces.
i) l'adresse de segment.
ii) l'offset de l'adresse.
Le CS(code segment de registre) est utilisé pour l'adresse de segment de code de la mémoire, je.e un emplacement dans la mémoire où le code est mémorisé. L'IP(Instruction pointer) contient le décalage dans le segment de code de la mémoire. Donc CS:IP est utilisée pour pointer vers l'emplacement (j'.e pour calculer l'adresse physique)du code dans la mémoire.
L'instruction qui sera exécutée suivant, c'est qu'à l'adresse de mémoire égale à:
Cela permet de 20 bits de mémoire qui doit être adressée, en dépit de registres soit seulement 16 bits de large (et il crée également deux façons distinctes pour encoder la plupart des adresses).
L'effet de la CS est analogue à celle des autres registres de segment. E. g.,
DS
incréments d'accès de données (qui ne spécifient pas un autre registre de segment) par16 * DS
.CS
Les instructions qui modifient les CS sont:
CS ne peut pas m'modifié par
mov
comme les autres registres de segment. En essayant de coder avec le code standard pour la CS, qui GNU GAZ 2.24 ne sans se plaindre si vous écrivez:conduit à un code non valide exception lors de l'exécution.
Pour observer l'effet de CS, essayez d'ajouter ce qui suit dans un secteur de démarrage et en cours d'exécution dans QEMU, comme expliqué ici https://stackoverflow.com/a/32483545/895245
IP
IP augmente automatiquement chaque fois qu'une instruction est exécutée par la longueur de l'encodage de l'instruction: c'est pourquoi le programme va de l'avant!
IP est modifiée par les mêmes instructions qui modifient le CS, et par la non-loin des versions de ces instructions (plus couramment).
IP ne peut pas être observé directement, de sorte qu'il est plus difficile de jouer avec elle. Cochez cette question des alternatives:
Lecture de Compteur de Programme, directement
Une fois que vous écrivez .code dans votre programme d'assemblée du texte, que .les points de code de la cs de la valeur. toute commande plus tard ou plus tôt dans le fichier seront abordés que par cs:ip , où la propriété intellectuelle est une valeur de décalage de cs.
Bien sûr, vous devez garder à l'esprit que l'assemblée compilateur se charge de convertir le texte en code machine des instructions en premier.
depuis le processeur 8086 utilise 20 bits d'adressage, nous pouvons accéder à 1 mo de mémoire, mais les registres du 8086 est que de 16 bits,pour accéder aux données de la mémoire, nous sommes en combinant les valeurs présentes dans le code registres de segment et le pointeur d'instruction des registres pour générer une adresse physique, il est fait en déplaçant la valeur de CS 4 bits
vers la gauche, puis en ajoutant à la valeur IP
EXEMPLE:
valeur de CS est 1234Hex(hexa décimal)
valeur de la propriété intellectuelle est 5678Hex
maintenant la valeur de CS après le déplacement de 4 bits à gauche est 12340Hex puis après l'ajout de l'IP de la valeur, il est 179B8Hex qui est l'adresse physique
Registre IP - IP est Pointeur d'Instruction. Sa fonction est la même que sur PC (program counter) dans d'autres microprocesseur qui est à point pour la prochaine instruction à être récupérée par la BIU de l'unité de l'alimentation de l'UE unité.