www.mikrocontroller.net

Forum: PC-Programmierung Bestimmte Daten im Datensegement adresseiren?


Autor: Tobias Mehrl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit welchen Befehlen kann man bestimmte Werte im Datensegment 
adressieren?
DATA    SEGMENT

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

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?

Autor: Udo Schmitt (urschmitt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mov ax,[bx + di]  Lädt in ax den Inhalt der Speicherstelle auf den bx 
(Arrayanfang) plus di (Arrayindex) zeigt.
Müsste so gehen, ist schon etwa 20 Jahre her.

Autor: Tobias Mehrl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Regnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.