Speicherverwaltung von Intel- und AMD-Prozesoren...
-
Mhm. Ich bin mir nicht sicher, ob das hierher gehört. Aber da ich das Problem mit VC++ 6.0 hatte und keine Ahnung hab, wos sonst hingehören könnte, schreib ichs mal hierher. Kann man ja bei Bedarf verschieben.
Also. Nun zum Problem:
Ich hab mir den Speicher meines Programms mal genauer angesehen. (Während eines Debugs.) Dabei hab ich das Speicherfenster (=Hex-Editor) geöffnet.Hab noch nicht so viel Erfahrung mit Hexeditoren und der genauen Speicherverwaltung. Der Speicher wird ja der Reihe nach angezeigt. Oder? Also frühere Speicheradresse eines Bytes kommt auch vorher. Oder?
Und dann hab ich gelesen, dass es bei Intel- (und auch AMD-?) Prozessoren so ist, dass 32-Bit-Wörter so abgespeichert werden, dass das niedrigstwertigste Bype links und das höchstwertigste Byte rechts steht. Also eigentlich genau verkehrt herum. ;-P
Ist das nur bei 32-Bit-Wörtern so, oder auch bei Datentypen mit z.B. 2 oder 8 Bytes? WICHTIG! Bevor ich das nicht weiß kann ich an nichts anderes mehr denken. AH! *rofl*
-
Ok. Hier sitzt das vielleicht besser. Aber eine Antwort wäre nett.
-
meines erachtens läuft deine frage auf little-oder big endian raus.
dieses unterscheidet sich bei unterschiedlichen prozessoren.bei risc-(also rxk´s oder mips) und die ganzen pc-teile(amd, intel, etc.) ist das verschieden. (risc haben big endian.......intels, etc. haben little endian)
für datentypen <4byte müsste es auf jedenfall beibehalten werden. ich denke bei einem doubleword auch. aber bin mir nicht sicher. frag mal im assemblerforum oder bei google nach.
-
Ist das nur bei 32-Bit-Wörtern so, oder auch bei Datentypen mit z.B. 2 oder 8 Bytes?
bei allen.