|
Startseite • Forum • Assembler
Direkte und Indirekte Adressierung
|
Ishildur
Registrierter Benutzer
Beiträge: 1
Anmeldejahr: 2007
|
29. October 2007 10:59:
Direkte und Indirekte Adressierung
|
|
Hallo zusammen
Ich bin seit einigen Tagen dabei, Assembler zu erlernen und leider tauchen dabei immer wieder neue Fragen auf, welche mir mein Lehrer nicht beantworten kann!
Ich versuche gerade, die Varianten der direkten und indirekten Adressierung zu erlernen und habe mir in diesem Zusammenhang ein kleiner Beispielcode geschrieben.
Leider funktioniert dieser Code nicht wo, wie ich es erwartet hätte, wie könnte es auch anders sein...
Ich habe hinter jede Instruktion in einem Kommentar geschrieben, was ich glaube zu wissen, was die entsprechende Zeile tut. Diese Formulierung ist absichtlich, weil das Programm ja offensichtlich nicht das tut, was ich glaube zu wissen.
Zitat:
.MODEL SMALL
.DATA
Arr DB 3 DUP(0) ; 3 Bytes speicher reservieren
pArr DW ? ; 2 Bytes für die 16-Bit Speicheradresse von Arr zu speichern
.CODE
START: mov ax,@Data ; Basisadresse vom Datensegment in ax speichern
mov ds,ax ; Basisadresse in Datensegment register speichern
mov Arr,"S' ; Den Wert ASCII "S" in Adresse von Arr speichern
mov [Arr+1],"a' ; Den Wert ASCII "a" in Adresse von Arr+1 speichern
mov [Arr+2],"m' ; Den Wert ASCII "m" in Adresse von Arr+2 speichern
lea ax,Arr ; die effektive Adresse von Arr ins ax register speichern
add ax,02h ; adresse, welche in ax gespeichert ist mit 2 inkrementieren
mov pArr,ax ; die mit 2 inkrementierte Adresse in ax in pArr speichern
mov dl,[pArr] ; den Inhalt des Speichers, dessen Adresse sich in pArr befindet, in dl speichern
mov ah,02h ; den Wert 02h im register ah speichern (Wert in dl ausgeben)
int 21h ; den DOS - Interrupt 21h aufrufen
mov ah,4ch ; den Wert 4ch im register ah speichern (programm beenden)
int 21h ; den DOS - Interrupt 21h aufrufen
END START
END
Ich hoffe, jemand nimmt sich die Zeit und sieht sich das Ganze mal an!
Mit freundlichen Grüssen Ishildur
|
Optionen: |
Diesem Eintrag antworten
| Diesen Eintrag zitieren
|
|