Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:techinf:assembler:adressierung:start [20.09.2021 19:28] – [Registeradressierung] sbel | faecher:informatik:oberstufe:techinf:assembler:adressierung:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Adressierung ====== | ||
- | |||
- | Mit der Einführung des i80386 standen 32-Bit-Register zur Verfügung. Mit einem 32-Bit-Zeiger | ||
- | kann man 23^2 = 4GB Speicher adressieren. Jede Adresse wird durch einen einzigen 32-Bit-Wert beschrieben, | ||
- | ===== Adressierungsarten ===== | ||
- | |||
- | ==== Unmittelbare Adressierung ==== | ||
- | |||
- | Bei der unmittelbaren Adressierung (immediate adressing) steht der Quelloperand unmittelbar | ||
- | im Befehl. Er wird bei Übersetzung fest in den Maschinencode eingebunden und folgt unmittelbar auf den Befehlscode. | ||
- | |||
- | Beispiele: | ||
- | < | ||
- | MOV BX,9 ; 9 wird unmittelbar ins Register bx geschrieben | ||
- | BYTE_VALUE | ||
- | ADD BYTE_VALUE, 65 ; Es wird unmittelbar der Wert 65 addiert | ||
- | MOV AX, 45H ; 45H wird unmittelbar ins Register AX geshrieben | ||
- | </ | ||
- | |||
- | ==== Registeradressierung ==== | ||
- | |||
- | Der Registeradressierung sind Quelle und Ziel interne Register des Prozessors. | ||
- | |||
- | Beispiele: | ||
- | <code asm> | ||
- | MOV EAX, EBX | ||
- | </ | ||
- | |||
- | ==== Direkte Speicheradressierung ==== | ||
- | |||
- | Bei der direkten Speicheradressierung wird der Offset des adressierten Speicherplatzes direkt angegeben und liegt nach der Assemblierung fest. Die Angabe des Offsets kann als konstante | ||
- | Zahl oder (besser) als Variablenname erfolgen. Der Variablenname kann – muss aber nicht – in | ||
- | eckigen Klammern eingeschlossen sein. Es können auch Feldelemente direkt adressiert werden, | ||
- | indem nach dem Feldnamen ein Pluszeichen und eine Konstante folgen. | ||
- | |||
- | Beispiele: | ||
- | |||
- | <code asm> | ||
- | mov ax, Zaehler1 ;Direkte Adressierung ohne eckige Klammern | ||
- | mov [bigcount], | ||
- | mov ecx, [Feld+2] ;Direkte Adr. von Feld + 2 Byte | ||
- | </ |