Veröffentlicht 18. Mai 200124 j 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
18. Mai 200124 j 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
27. Mai 200124 j 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 ]
1. Juni 200124 j 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
1. Juni 200124 j 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
1. Juni 200124 j Original erstellt von toosten: <STRONG>DOS16 !!! </STRONG> Wollt ihr jetzt ein Forum fuer Computernostalgie aufmachen? Uli
6. Juni 200124 j 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?!!?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.