Maison  >  Article  >  Quels sont les modes d’adressage des opérandes mémoire ?

Quels sont les modes d’adressage des opérandes mémoire ?

青灯夜游
青灯夜游original
2020-07-28 14:24:4916562parcourir

Les modes d'adressage des opérandes de mémoire sont : l'adressage direct, l'adressage indirect de registre, l'adressage relatif de registre, l'adressage d'index de base et l'adressage relatif d'index de base.

Quels sont les modes d’adressage des opérandes mémoire ?

Mode d'adressage des opérandes mémoire

CONSEILS :

♥L'objet opéré par l'instruction est en mémoire, et son expression est [ ]

♥ L'instruction donne l'adresse de décalage de l'objet opérande dans un certain segment logique de la mémoire : [adresse de décalage ]

♥L'adresse de base du segment logique est donnée par default ou reset

♥La longueur de mot de l'opérande mémoire lui-même est non déterminé, dont la longueur du mot dépend d'un autre opérande de registre, ou la longueur du mot est spécifiée d'une autre manière

1. Adressage direct

※. L'instruction donne directement l'adresse de décalage de l'opérande

par exemple : MOV AX,[1200H] ; stocker le contenu du segment de données 1200H dans AL, 1201H Le le contenu est stocké dans AH

En mode d'adressage direct, l'opérande est dans le segment de données par défaut, mais le segment peut être réinitialisé, c'est-à-dire que le segment logique est donné par l'instruction

ex : MOV AX,ES:[1200H] ; Stocke le contenu du segment supplémentaire 1200H en AL, et le contenu de 1201H en AH

Compréhension personnelle  :

plus [ ] signifie que vous devez trouver l'adresse ailleurs que dans le registre. À ce stade, vous devez d'abord déterminer quel segment de la mémoire, puis recherchez directement l’adresse indiquée dans ce segment Emplacement. De manière générale, la valeur par défaut est le segment de données.

2. Enregistrez l'adressage indirect

L'opérande est stocké dans la mémoire et le décalage des données dans le mémoire L'adresse de décalage est le contenu du registre général entre crochets [ ].

Quatre registres à usage général sont couramment utilisés (ces quatre registres sont également appelés registres d'adresses indirects, à savoir BX, BP, SI et DI), qui peuvent être utilisés pour stocker le adresse décalée des données. (Les registres d'adresses indirectes sont divisés en registres d'adresses de base BX, BP et registres d'index SI, DI)

Format général de l'adressage indirect  :

par exemple : MOV BX,1200H ; Il s'agit d'un adressage immédiat, c'est-à-dire que l'opérande est envoyé directement à BX à ce moment, BX=1200H

MOV AX,[BX] ; BX] =[1200H], il est donc converti en adressage direct, mais avec l'ajout de BX comme agent intermédiaire A ce moment, le contenu de l'unité avec une adresse décalée de 1200H dans le segment de code est attribué à AL, et le contenu de l'unité 1201H est affecté à AH

L'adressage indirect consiste à donner indirectement l'adresse de décalage de l'opérande par le registre

Le l'adresse de segment de l'opérande (le segment dans lequel se trouve l'opérande) dépend du registre d'adresses indirectes à choisir (peut être réinitialisé par segment)

BX, SI, DI sont dans les données segment par défaut ; BP est dans le segment de pile par défaut

Compréhension personnelle  :

Nous pouvons trouver le segment correspondant grâce à l'indirect sélectionné registre d'adresses, puis recherchez l'emplacement physique grâce au décalage du segment. En s'adressant indirectement, nous pouvons trouver l'emplacement physique de l'opérande source.

Emplacement physique = adresse de base du segment * 16 + adresse décalée.

3. Enregistrer l'adressage relatif

L'adresse de décalage de l'opérande est le contenu du registre plus un Déplacement

par exemple : MOV AX,2000H ; Adressage immédiat, attribuer 2000H à AX

MOV DS,AX DS est obtenu à partir de l'adresse de la tête du segment AX ;

MOV BX,1200H ; Adressage immédiat, attribuer 1200H à BX

MOV AL,[BX]5 Adressage relatif, l'adresse de base du segment sera 2000H, décaler le contenu avec un montant de décalage ; de 1200H+5 est attribué à AL

L'adressage relatif est principalement utilisé pour les opérations de tableau unidimensionnelles

utilise souvent la quantité de déplacement comme en-tête L'adresse et la valeur du registre d'adresses indirectes sont utilisées comme adresse relative dans le tableau (il y aura des constantes entre les utilisations, ce qui sera gênant)

Compréhension personnelle  :

L'adressage relatif ajoute une constante de déplacement sur la base de l'adressage indirect. Par conséquent, la façon de déterminer s'il s'agit d'un adressage indirect ou d'un adressage relatif est la suivante : voir s'il y a des constantes avant et après le registre d'adresse indirect. . S'il y a des constantes, il s'agit d'un adressage relatif

4. Adressage de l'index de base

※ L'adresse de décalage du <.> l'opérande est  :

Le contenu d'un registre de base (BX, BP) + le contenu d'un registre d'index (SI, DI)

BX par défaut le segment de données et BP sont par défaut le segment de pile

L'adresse du segment de l'opérande est déterminée par le registre d'adresses de base sélectionné

Identique à l'adressage relatif, principalement utilisé pour les tableaux unidimensionnels Opération

par exemple : MOV SI,1100H Adressage immédiat, attribuer 1100H à SI

MOV ; BX,SI ; Attribuer 1100H à BX

MOV AX,[SI+BX] ; L'adresse physique de l'opérande source = adresse de base du segment de données*16+1100H+1100H

Compréhension personnelle :

L'adressage indexé de base consiste à trouver d'abord l'adresse de tête de segment où se trouve le registre de base, plus le décalage du registre de base et le décalage du registre d'index. Ses caractéristiques sont que [BX][BP] doit être l'un des deux, [SI][DI] doit être l'un des deux

5. Adresse de base relative indexée adressage

※ L'adresse de décalage de l'opérande est :

registre de base + registre d'index + déplacement

L'adresse de segment de l'opérande est déterminée par le registre d'adresses de base sélectionné

Le mode d'adressage relatif de l'index d'adresse de base est principalement utilisé pour le fonctionnement de tableaux bidimensionnels

par exemple : MOV DI,1100H ; Adresse immédiatement, attribuer 1100H à DI

MOV BP,DI ; Attribuer 1100H à BP

MOV AL, [BP][DI]5; BP indique que l'opérande est dans le segment de pile, et son adresse physique = adresse de base du segment de pile*16+1100H+1100H+5

Compréhension personnelle  :

L'adressage relatif de l'index de base ajoute uniquement un décalage constant à l'index de base, et l'adresse physique de l'opérande source peut être extraite de cela.

Pour plus de connaissances connexes, veuillez visiter : Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn