Thread View: pl.comp.pecet
4 messages
4 total messages
Started by Gregorio Kus
Wed, 30 Oct 1996 04:09
Re: Dlaczego 64 kB ?
Author: Gregorio Kus
Date: Wed, 30 Oct 1996 04:09
Date: Wed, 30 Oct 1996 04:09
66 lines
2925 bytes
2925 bytes
On Tue, 29 Oct 1996 13:36:25 +0100, Piotr Bernatowicz wrote: >Dlaczego programy exe pisane np. w Turbo Pascalu 6.0 >moga miec jedynie do 64 kB objetosci? tak bylo do wersj 3. Potem weszly unit's, z ktorych kazda ma wlasny segment kodu mogacy miec do 64kB. Nawet i w v.3.0 mozna to bylo obejsc stosujac nakladki (overlays) >Dlaczego ewentualne dane przetwarzane przez takie programy >moga miec tez tylko 64 kB? 1 segment danych moze miec najwyzej 64kB, czyli suma rozmiarow zmiennych globalnych danej unit albo suma zmiennych lokalnych wszystkich "otwartych" procedur (otwartych w sensie zagniezdzenia procedury aktualnie wykonywanej) wraz z adresami powrotow (segment stosu), lub "pojedyncza dana" na stercie (heap). >I pytanie najwazniejsze. Jak obejsc to 64 kB >ograniczenie dotyczace danych? zwyczajnie: umiescic je na stercie, ktora moze miec rozmiary teoretycznie dowolne, tzn. teoretycznie 1MB, tzn. teoretycznie 640kB, :-)))) to znaczy praktycznie pamiec ktora Ci pokaze mem lub chkdsk - pamiec zajeta przez kod programu - pamiec zajeta stos. ^ to nalezy rozumiec jako minus >Potrzebuje >aby moj program przetwarzal dane o >objetosci do 400 kB. wystarczy nauczyc sie poslugiwac wskaznikami. umiejetnosc niezbedna i wlasciwie dosc elementarna dla programisty pracujacego w Pascalu czy w C. Grego P.S. Rada praktyczna: jesli do danych potrzebujesz miec dostep typu random (nie sekwencyjny), umiesc w pamieci "normalnej" tablice wskaznikow do wlasciwych danych znajdujacych sie na stercie. P.S.2. Na to aby odpowiedziec na pytanie "dlaczego" (te ograniczenia 64kB) trzebaby sie zapedzic za bardzo w architekture procesorow intel. W ogromnym skrocie - kod wynikowy wyprodukowany przez borlandowskie kompilatory pascala (przed Delphi) pracuja w trybie 16to bitowym czyli nawet Pentium jest tylko szybkim 8086. Zas 8086 ma architekture mieszana 20bit/16bit. 20 bitowe adresowanie daje 1MB, a 16to bitowe 64kB. Instrukcje operuja na adresach 16to bitowych wiec adresuja w obszarze 64kB ktorego polozenie jest wyznaczone przez rejestry segmentowe. -- /----------------------------------------------------------------- Gregorio Kus Grego@RMnet.it Grego@cyberspace.org ROMA, Italy http://www.RMnet.it/~grego Grego@FreeNet.hut.fi Anonymous Mail Service - http://free.rmnet.it/~grego/AnonMail.html
Re: Dlaczego 64 kB ?
Author: Jerzy A.Radzimowski
Date: Wed, 30 Oct 1996 08:35
Date: Wed, 30 Oct 1996 08:35
20 lines
1346 bytes
1346 bytes
Gregorio Kus <Grego@RMnet.IT> napisaล(a) w artykule <199610300407.FAA05290@malcolm.rmnet.it>... > On Tue, 29 Oct 1996 13:36:25 +0100, Piotr Bernatowicz wrote: > > >Dlaczego programy exe pisane np. w Turbo Pascalu 6.0 > >moga miec jedynie do 64 kB objetosci? < CIACH> > P.S.2. Na to aby odpowiedziec na pytanie "dlaczego" > (te ograniczenia 64kB) trzebaby sie zapedzic za bardzo > w architekture procesorow intel. > W ogromnym skrocie - kod wynikowy wyprodukowany > przez borlandowskie kompilatory pascala (przed Delphi) > pracuja w trybie 16to bitowym czyli nawet Pentium jest <CIACH> Jako uzupielnienie ! Mowa o Delphi 1 oraz B Pascal 7 i poprzednie. Delphi 2 daje juz liniowy adres 32 bit i nie ma ograniczen na 64 kb. Jurek
Re: Dlaczego 64 kB ?
Author: Lech Szychowski
Date: Wed, 30 Oct 1996 21:36
Date: Wed, 30 Oct 1996 21:36
23 lines
1508 bytes
1508 bytes
Gregorio Kus <Grego@RMnet.IT> wrote: : >Potrzebuje : >aby moj program przetwarzal dane o : >objetosci do 400 kB. : wystarczy nauczyc sie poslugiwac wskaznikami. : umiejetnosc niezbedna i wlasciwie dosc elementarna : dla programisty pracujacego w Pascalu czy w C. Skoro juz mowisz o C, to powinienes byl raczej napsiac "wystarczy wziac djgpp"; poslugiwanie sie obiektami o wielkosci powyzej 64KB jest w rtybie real (bez machlojek z rejestrami proca 386+) mocno up***dliwe. -- Leszek. +============================================================================+ | lech7@pse.pl 2:480/33.7 - REAL programmers use INTEGERS - | | My personal opinions are just mine. | | If there is anyone I speak for, then most likely it's me. | +============================================================================+
Re: Dlaczego 64 kB ?
Author: Jarek Lis
Date: Thu, 31 Oct 1996 00:06
Date: Thu, 31 Oct 1996 00:06
10 lines
1006 bytes
1006 bytes
Lech Szychowski <lech7@lech.pse.pl> wrote: : Skoro juz mowisz o C, to powinienes byl raczej napsiac "wystarczy : wziac djgpp"; poslugiwanie sie obiektami o wielkosci powyzej : 64KB jest w rtybie real (bez machlojek z rejestrami proca 386+) : mocno up***dliwe. Malo ktory objekt ma 64KB. djgpp sie przydaje jak ich lacznie jest wiecej niz te 500KB... Jarek.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads