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.
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 à BXMOV 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!