effektive adresse
-
hallo leute
ich hab mal eine frage zur effektiven adresse.
ich weiß zwar wie man die physikalische adr. berechnet (segmentadr. * 16 + offsetadr.),
aber hab komm grad nicht drauf wie man die eff. adr. berechnet..ich bedanke mich jetzt schonmal für die hilfe
lg
-
offsetadr. ist damit gemeint.
-
wie ? meine effektive adresse ist also meine offsetadresse ?
hää
-
und wenn du schon dabei bist, kannst du dich auch gleich mal versuchen, was du über rip-relative Addressierung herausfinden kannst z.B. auf der Seite:
-
"Bei RIP-relativer Adressierung werden Adressen als Offsets zum Instruktionszeiger (rip) angegeben. Dies ist sinnvoll für relative Sprünge, aber auch, um positionsunabhängigen Code zu erzeugen: Wird auf Symbole RIP-relativ zugegriffen, kann der Linker den Code in einen beliebigen Speicherbereich verschieben, ohne die Adressen anpassen zu müssen. Beispiel: movl xvar(%rip), %eax.
ModR/M-Adressierung dient dem indirekten Zugriff auf Speicherbereiche, deren Adressen zur Laufzeit berechnet werden. Dabei wird die effektive Adresse aus einer Basisadresse und einem Index, die aus General-Purpose-Registern ausgelesen werden, sowie einem Skalierungsfaktor (1, 2, 4 oder
und einem Displacement, die direkt im Code angegeben sind, berechnet. Die Formel für die Adressberechnung lautet: Base + Index*Scale + Displacement, das Ergebnis wird wie eine absolute Adresse behandelt. "
wenn ich sowas sehe denke ich mir manchmal ich möchte wieder ein kind sein und mit meinen barbies spielen
xD
skalierungsfaktor :
byte = 1
word = 2
dword = 4
Qword = 8
-
Vorschlag: mit der lebensechten spielen und inspirieren lassen,
nochmal Jim Knopf und der Lokomotivführer gucken und bei Kaffe und Kuchen ein bißchen üben, mit 16 Bit Befehlen wie mov ax,[bx+si+E] ein paar fette Speicherplätzchen Gebäcke von den nachbarlichen Kaffetischen zu fischen.