Heim > häufiges Problem > Welche Adressierungsmodi gibt es für Speicheroperanden?

Welche Adressierungsmodi gibt es für Speicheroperanden?

青灯夜游
Freigeben: 2020-07-28 14:24:49
Original
16634 Leute haben es durchsucht

Die Adressierungsmodi von Speicheroperanden sind: direkte Adressierung, indirekte Registeradressierung, relative Registeradressierung, Basisindex-Indexadressierung und Basisindex-Index-relative Adressierung.

Welche Adressierungsmodi gibt es für Speicheroperanden?

Adressierungsmodus von Speicheroperanden

TIPPS:

♥Das von der Anweisung bediente Objekt befindet sich im Speicher und sein Ausdruck ist [ ]

♥ Die Anweisung gibt die Offset-Adresse des Operandenobjekts in einem bestimmten logischen Segment des Speichers an: [Offset-Adresse ]

♥Die Segmentbasisadresse des logischen Segments wird durch Standard oder Zurücksetzen

♥Die Wortlänge des Speicheroperanden selbst angegeben nicht bestimmt, deren Wortlänge von einem anderen Registeroperanden abhängt oder die Wortlänge auf andere Weise angegeben wird

1 Direkte Adressierung

Die Anweisung gibt direkt die Offset-Adresse des Operanden an

zB: MOV AX,[1200H]; speichert den Inhalt des Datensegments 1200H in AL, 1201H Der Inhalt wird in AH gespeichert

Im direkten Adressierungsmodus befindet sich der Operand standardmäßig im Datensegment, das Segment kann jedoch zurückgesetzt werden, dh das logische Segment wird durch die Anweisung angegeben

zB: MOV AX,ES:[1200H]; Speichern Sie den Inhalt des zusätzlichen Segments 1200H in AL und den Inhalt von 1201H in AH

Persönliches Verständnis :

plus [ ] bedeutet, dass Sie die Adresse an einem anderen Ort als dem Register finden müssen. Zu diesem Zeitpunkt sollten Sie zunächst überlegen, welches Segment des Speichers. und finden Sie dann direkt die in diesem Segment angegebene Adresse. Im Allgemeinen ist der Standardwert das Datensegment.

2. Register indirekte Adressierung

Der Operand wird im Speicher gespeichert und der Datenoffset im Speicher Die Schiebeadresse ist der Inhalt des allgemeinen Registers in eckigen Klammern [ ].

Üblicherweise werden vier Allzweckregister verwendet (diese vier Register werden auch als indirekte Adressregister bezeichnet, nämlich BX, BP, SI und DI), die zum Speichern verwendet werden können Offset-Adresse der Daten. (Indirekte Adressregister sind in Basisadressregister BX, BP und Indexregister SI, DI unterteilt)

Allgemeines Format der indirekten Adressierung :

zB: MOV BX,1200H; Hier wird der Operand direkt an BX gesendet.

MOV AX,[BX]; BX] = [1200H], also in direkte Adressierung umgewandelt, jedoch mit BX als Zwischenagent. Zu diesem Zeitpunkt wird der Inhalt der Einheit mit der Offset-Adresse 1200H im Codesegment AL zugewiesen. und der Inhalt der Einheit 1201H wird AH zugewiesen

Indirekte Adressierung besteht darin, die Offset-Adresse des Operanden indirekt über das Register anzugeben

Die Die Segmentadresse des Operanden (in welchem ​​Segment sich der Operand befindet) hängt davon ab, welches indirekte Adressregister ausgewählt werden soll (kann nach Segment zurückgesetzt werden)

BX, SI, DI sind in den Daten Standardmäßig befindet sich BP im Stapelsegment

Persönliches Verständnis :

Wir können das entsprechende Segment über das ausgewählte indirekte finden Adressregister und ermitteln Sie dann den physischen Standort anhand des Offsets des Segments. Bei der indirekten Adressierung können wir den physischen Standort des Quelloperanden ermitteln.

Physischer Standort = Segment-Basisadresse*16+Offset-Adresse.

3. Relative Adressierung des Registers

Die Offset-Adresse des Operanden ist der Inhalt des Registers plus eins Verschiebung

zB: MOV AX,2000H ; Sofortige Adressierung, 2000H zuweisen

MOV DS,AX ; DS wird aus der AX-Segmentkopfadresse erhalten

MOV BX,1200H; Sofortige Adressierung, 1200H zu BX zuweisen

MOV AL,[BX]5; Relative Adressierung, die Segmentbasisadresse ist 2000H, Offset Der Inhalt mit einem Verschiebungsbetrag von 1200H+5 wird AL zugewiesen

Relative Adressierung wird hauptsächlich für eindimensionale Array-Operationen verwendet

verwendet oft den Verschiebungsbetrag als Der Header Die Adresse und der Wert des indirekten Adressregisters werden als relative Adresse in der Tabelle verwendet (es wird Konstanten zwischen den Verwendungen geben, was unpraktisch sein wird)

Persönliches Verständnis :

Bei der relativen Adressierung wird eine Verschiebungskonstante auf der Grundlage der indirekten Adressierung hinzugefügt. Daher lässt sich feststellen, ob es sich um eine indirekte Adressierung oder eine relative Adressierung handelt: Überprüfen Sie, ob vor und nach dem indirekten Adressregister Konstanten vorhanden sind . Wenn es Konstanten gibt, handelt es sich um eine relative Adressierung

4 🎜> Operand ist :

Der Inhalt eines Basisregisters (BX, BP) + der Inhalt eines Indexregisters (SI, DI)

BX ist standardmäßig auf Das Datensegment und BP sind standardmäßig das Stapelsegment

Die Segmentadresse des Operanden wird durch das ausgewählte Basisadressregister bestimmt

Das Gleiche wie die relative Adressierung, wird hauptsächlich für eindimensionale Arrays verwendet. Operation

z. B.: MOV SI,1100H; Sofortige Adressierung, 1100H zu SI

MOV zuweisen BX,SI; Weisen Sie BX 1100H zu

MOV AX,[SI+BX]; >Persönliches Verständnis:

Basisindizierte Adressierung besteht darin, zunächst die Segmentkopfadresse zu ermitteln, an der sich das Basisregister befindet, plus den Offset des Basisregisters und den Offset des Indexregisters. Seine Merkmale sind, dass [BX][BP] einer der beiden sein muss, [SI][DI] einer der beiden sein muss

5. Basisadresse Indiziert relativ Adressierung

※ Die Offset-Adresse des -Operanden ist :

Basisregister + Indexregister + Verschiebung

Die Segmentadresse des Operanden wird durch das ausgewählte Basisadressregister bestimmt

Der relative Adressierungsmodus des Basisadressindex wird hauptsächlich für den Betrieb zweidimensionaler Arrays verwendet

z.B.: MOV DI,1100H ; Sofort 1100H zuweisen

MOV BP,DI ; 1100H BP zuweisen

MOV AL, [BP][DI]5; BP zeigt an, dass sich der Operand im Stapelsegment befindet und seine physische Adresse = Basisadresse des Stapelsegments*16+1100H+1100H+5

Persönliches Verständnis :

Die relative Adressierung des Basisindex fügt nur einen konstanten Offset zum Basisindex hinzu, und daraus kann die physikalische Adresse des Quelloperanden erfasst werden.

Weitere Informationen zu diesem Thema finden Sie unter: PHP-Website für Chinesisch!

Das obige ist der detaillierte Inhalt vonWelche Adressierungsmodi gibt es für Speicheroperanden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage