Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: bscreator am 03. September 2008, 18:11
-
Hallo,
wenn ich mit
mov bx,0x800
mov [bx], 4
den Arbeitsspeicher beschreibe, wird dann Segment 0x800 und Offset 0, also Adresse 8000 beschrieben?
wird mit
mov [bx+5],4
das Segment 0x800, Offset 5 beschrieben, also Adresse 8004 ?
Oder hab ich da was vollkommen falsch verstanden?
Vielen Dank, bscreator
-
Deine beiden Zeilen greifen auf Segment ds und Offset 0x800 bzw. Offset 0x805 zu.
-
Achso...
Und wenn ich ganz speziell, ungeachtet dessen, ob sinnvoll oder nicht, beispielsweise auf Speicheradresse 8000h:2000h zugreifen will, dann muss ich schreiben:
push ds ;vorherige Adresse speichern
mov ax,0x8000
mov ds,ax
mov bx,0x2000
mov [bx],4
pop ds ;vorherige Adresse wiederherstellen
oder?
Thanks
-
Ja.
-
du kannst natürlich auch andere Segment-Register verwenden:
z.B.:
mov ax, 0x8000
mov es, ax
mov BYTE ptr [es:0x2000], 4