Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ein Freund von mir hat da so ein Problem und zwar möchte er gerne wissen in welcher Beziehung der Offset und die Speicheradresse stehen und wie man den Offset verändern kann. Vielleicht kann mir ja jemand helfen :)

Tschoe

Curlie

Geschrieben
Original erstellt von Curlie:

<STRONG> und wie man den Offset verändern kann. </STRONG>

Speicher verwaltet man mit Pointern. Arbeite ein Kapitel darueber durch, und Du wirst Bescheid wissen.

Uli

  • 2 Wochen später...
Geschrieben

Das war mal bei DOS16 !!!

Adresse = segment*10h + offset

;-)

Ergänzung:

zu Doszeiten war nur 1 MB Ram adressierbar (000f:ffffh)

da aber eine 16Bit zahl nur 65536 Bytes (0ffffh) adressieren kann mußte man sich was einfallen lassen

also hat man die adressierung in segment und offset aufgeteilt

die adresse 000d:0000h kann mit

segment offset

000d 0000

000c 1000

000b 2000

angesprochen werden

alle 3 beispiele ergeben die adresse 000d:0000h

Alles klar ???

[ 29. Mai 2001: Beitrag editiert von: toosten ]

Geschrieben

Hi,

also bei Win32 OS'en wird eigendlich immer (?) mit 32bit pointern gearbeitet.

==> 4GByte adressierbarer Speicher.

==> man braucht dieses Offsetgeschleuder endlich nicht mehr... (lasset die Toten ruhen ;)

Grüße Ketzer

Geschrieben

Thx für die Hilfe.

Und ich bin froh, dass man den Offset nicht mehr verwenden muss, da ich die ganzen Rechnungen eh nicht so ganz verstanden hatte ;)

Tschoe

Curlie

Geschrieben

Offsets sind nichts weiter als Werte die relativ zu einem Startpunkt eine neue Adresse liefern. Bei einem Array kann bedeutet der Offset 2 der dritte Eintrag!

Array[0] = 1. Eintrag

Array[1] = 2.

Array[2] = 3.

Das mit DOS16 ist sehr wohl noch ein Thema nur merkt keiner was davon weil die Compiler alles automatisch versuchen soviel wie möglich im gleichen Speicher-Segment zu Compilieren. Dadurch verringert sich die Adressierungs-Bandbreite und damit erhöht sich die gesagmt-Geschwindigkeit aller Speicherzugriffe im selben Segment weil die neuen Segmente erst adressiert werden müssen, was Zeit benötigt. Das hat nichts mit Nostalgie zu tun sondern mit der technischen optimierung bei der Code-Generierung. Übrigens wäre ohne diese Optimierungen wohl so etwas wie die Playstation-, N64-Emulatoren und auch die JIT-UAE-Amiga-Emus nicht dermaßen mit solcher Geschwindigkeit auf unseren Kisten möglich. Außerdem wenn jemand mal direkte Hardware-Programmierung machen muß (Steuerungen, etc.) kommt er um das Thema wohl kaum drum herum. Solange unsere Computer Page-orientiert arbeiten ist das sehr wohl ein Thema. Das Thema Bandbreite ist ja nicht nur beim Computer selbst sondern gerade auch bei Grafikkarten in aller Munde, nicht wahr?!!?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...