Speicherbereiche

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Speicherbereiche
Hallo :slight_smile:

Es geht um die Aufgabe 5:
http://www3.informatik.uni-erlangen.de/Lehre/GRa/SS2013/gra-ex-03.pdf

Gelöst habe ich sie bereits, nun hätte mich nur interessiert, wie die Lösung in Little-Edian aussehen würde, hat da wer ne Idee?


Das wird nicht ganz funktionieren…
Mit der zweiten Instruktion werden ja die 4 Byte ab Adresse 0x4e34 in Register R2 geladen. In der Big-Endian-Darstellung ist das der Wert 1, bei Little Endian waere es 0x01000000. Nun wird in der dritten Instruktion dieser Wert als Index verwendet – bei der LE-Darstellung wuerde dabei eine Adresse rauskommen, die weit außerhalb des gezeigten Speicherbereichs liegen wuerde.


Ich hätte noch eine Frage:
Ein direct mapped cache hat die größe 2^20 B
Die Adresse ist 32 Bit groß
Pro Eintrag werden 64 Byte Nutzdaten gespeichert.Wie Teilt sich die Adresse auf?
a-ld(b)-ld(s/b) ld(s/b) ld(b)
tag index byte
Das weiß ich ja, aber was ist hier b? Die 64? mich verwirrte hier,dass “pro Eintrag”:

Außerdem:
Bei der Intel Syntax ist ein Hauptspeicherzugriff
mov [2000],1 oder add ebx,4 ?
Woher kommt in dem Fall die 4?

LG
Eigelb


Die 1 und die 4 sind direkt in der Instruktion kodiert und werden also beim Laden der Instruktion direkt geladen. Somit braucht das [m]mov[/m] maximal 2 Hauptspeicherzugriffe (Instruktion und Speicherzugriff) und das [m]add[/m] einen (Instruktion).