Bestimmte Daten im Datensegement adresseiren?

Gast #1968094
Lesenswert?

Mit welchen Befehlen kann man bestimmte Werte im Datensegment 
adressieren?
1
DATA    SEGMENT
2

3
array    DW  0,1,2
4
         DW  3,4,5
5
         DW  6,7,8
6

7
DATA    ENDS

Ich hab wie oben gezeigt, Werte im Datensegment deklariert und möchte 
nun bestimmte Werte von diesem Datensegment z.B. in DX schreiben.

Ich kenn einige Adresseierungsarten (und natürlich auch die Befehle):

- Registeradressierung
- unmittelbare Adressierung
- indirekte Adressierung
- Indexadressierung
- Basis indizierte Adressierung
- direkte Adressierung

Ich hab jetzt schon alle möglichen Befehle durch, ber keiner hat 
funktioniert...

Könnt ihr mir sagen wie's richtig funktioniert?
Gast #1968114
Lesenswert?

Und woher weiß ich worauf BX und DI zeigt?

Die Daten die ich im Datensegment definiert habe liegen ja irgendwo im 
Datensegment, oder werden diese Daten immer an den Anfang des 
Datensegements geschrieben?
Gast #1976771
Lesenswert?

Du musst bx schon selbst füllen. Der Assembler bietet dir dazu 
Konstrukte an, um die Adresse des Labels zu referenzieren. Je nach Gusto 
(NASM, MASM...) und Architektur (16bit, 32bit...) kann das so aussehen 
(NASM, 32bit, wir laden das 2. Arrayelement in ax):

mov ebx, array
mov di, 1
mov ax, [ebx+di]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren