Forum: Object-Pascal / Delphi-Language
Delphi
by Sidorion,
31. Jul 2006
Es werden keine Register mit nullen aufgefüllt! Wo kämen wir denn da hin?????? das wäre ja tödlich für die Register, wenn eine simple Addition des LowByes das HighByte einfach nullen würde.
Abhängig vom Befehl (es gibt Varianten für ..L, ..H, ..X, E..X) werden nur bestimmte 'Schieber', die vom Register an die ALU gehen geöffnet (eben Schieber für LowByte, HighByte ..). Die restlichen Bits kommen...
Forum: Object-Pascal / Delphi-Language
Delphi
by Sidorion,
31. Jul 2006
Das tut er nur in einem Record für den schnelleren Zugriff, da er hier nicht erst den Typen der vorherigen Member prüfen muss, um den Offset zu berechnen.
Abgesehen davon legt er ein Byte in eine Speicheradresse, das nächste in die nächste. Bei Word versucht er, eine geradzahlige Speicherzelle zu nehmen (wegen Zugriff, siehe letztn Post), da er den Wert dann in einem Zugriffszyklus laden kann....
Forum: Object-Pascal / Delphi-Language
Delphi
by Sidorion,
29. Jul 2006
Jetzt geb ich doch auch mal meinen Senf dazu:
Jede Speicherzelle (zumindest bei x86 Systemen) ist exakt 8 bit groß.
Bei einem Speicherzugriff kann (je nach Datenbusbreite, das mach dann der Controller) man entweder 8, 16 oder 32 Bit lesen, da die Zellen heutzutage in 4er Gruppen angelegt sind. Wenn ich also 4 byte aus dem Speicher holen will, brauche ich entweder einen Zyklus (lesen eines...