Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: scales of justice am 15. April 2006, 01:16
-
Also CS, zeigt auf das Segment, in welchem grade Code ausgeführt wird,
wird also für Sprünge und eigentlich jeden Befehl gebraucht
DS ist das Gleiche für Daten, also das wird z.B. bei sowas gebraucht:
mov [0x0000], ax
ist dann eigentlich
mov [ds:0x0000], ax
aber wofür ist dann ES?
ES muss man ja auch am Anfang des Bootloaders auf das Code Segment setzen damit alles funktioniert
Ich dachte immer ES wäre nur für Schiebeoperationen
-
ES wird nur für einige Befehle verwendet, z.B. kopiert MOVSB das Byte von DS:ESI nach ES: EDI. Aber es gibt noch einige andere Befehle die ES verwenden. Ansonsten kann man ES auch für eigene Zwecke verwenden, wenn man z.B. DS nicht ändern will/kann. Beispiel:
mov [es:0x0000], ax
EDIT: Einige Befehle die ES verwenden:
o CMPS/CMPSB/CMPSW/CMPSD
o INS/INSB/INSW/INSD
o LES
o MOVS/...
o OUTS/...
o SCAS/...
o STOS/...
-
Sorry für den Link, aber da wirds so schön und ausführlich beschrieben: http://www.coding-board.de/board/showthread.php?t=19178
Gruss
Nooooooooos
-
Ah, jetzt hab ichs kapiert, dann ist das schonmal nicht mein Fehler
Aber wie kommst du eigentlich auf die Idee, dass hier Links verboten sind?
-
Sie sind nicht verboten, aber Links zu anderen Foren sind normalerweise nicht soooo gern gesehen. So wegen abwerben usw.
Gruss
Noooooooooooooos
-
als ob das ein konkurrenzkampf wäre. wenns in nem anderen forum doch besser steht, warum nicht?
außerdem ist es sowieso nützlich, in mehreren foren zu lesen.