rady

lieberzeit at cs.felk.cvut.cz lieberzeit at cs.felk.cvut.cz
Thu Mar 24 08:04:54 CET 1994


> > Jabych jen pripojil svou malickost.Jaky je rozdil mezi programem v pascalu
> > pro real a pro protect mod (Teda co se tyka zdrojaku).
> >                         Petr Snajdr
> >                         Snajdr at student.vszbr.cz
>
> Zadny, pouze musite kompilatoru rict, jake instrukce ma pri prekladu
> generovat. A samozrejme pokud mate nastaveny kompilator na 'protect',
> muzete vyuzivat odpovidajici rozsirene pametove modely pri
> deklaracich, volanich atp.
>
>                                           Ales Horak
> _________________________________________________________________
>                             Palacky University Computer Centre
>                             Olomouc, Czech (Made:)
>                             Internet: ales at risc.upol.cz

Dovolim si drobne upresneni: Skoro zadny. Hlavni rozdil je ve zpusobu
prace s ukazateli - zatimco v realnem rezimu se ukazatel sklada
ze segmentu a offsetu, v chranenem rezimu ze selektoru a segmentu.
To v praxi znamena, ze naprosta vetsina slusne napsanych programu
pracuje bez nejmensi zmeny; to ale neplati pro programy, ktere pouzivaji
ukazatelovou aritmetiku, oblibeny zvyk z "C" (presneji: ktere pri
ukazatelove aritmetice pouzivaji i segmentovou cast ukazatele).

Dalsi speciality (opet se netyka vetsiny "normalnich" programu):
- Nelze "jen tak" primo zapisovat do pameti - napr. do oblasti
  obrazovky, promennych BIOSu atd. (totez plati i pro cteni). Je
  nutne nejprve alokovat a nastavit selektor - jde to snadno, jsou
  na to knihovni funkce. Nektere standardni selektory jsou
  preddefinovany - pro segmenty $0040, $B000, $B800...
- Pro uzivatele in-line assembleru: Je nutne dat zvyseny pozor
  pri adresaci, zejmena nepouzivat CS: segmentovy registr pro zapis.

Chraneny rezim v BP 7.0 doporucuji vrele vsem tvurcum rozsahlejsich
nebo pametove narocnejsich aplikaci. Jak bylo uvedeno vyse, ve vetsine
programu neni potreba zmenit ani radek.

Bohuzel, hranice segmentu (64 kB) nebyla v teto implementaci
prekonana - i nadale musi byt kazda jednotliva promenna mensi nez 64kB
(kdypak asi bude 32-bitova verze?), muzete mit ale promennych, co vam
jen rozsirena pamet staci.

Rovnez zoufalci, kteri byli nuceni v predchozich verzich svych
aplikaci pouzivat prekryvne soubory (overlays), si mohou vydechnout -
do rozsirene pameti v chranenem rezimu se obvykle vejde jejich aplikace
cela.

Zdravi vas

Vladimir Lieberzeit
lieberzeit at vax.felk.cvut.cz
Katedra pocitacu FEL CVUT Praha


P.S. V jednom z dalsich mailu jsem zachytil dotaz na rozdil mezi TPU
pro realny a chraneny rezim. Rozdil je prosty: .TPU je "stary dobry"
format pro realny rezim. Pro chraneny rezim ale byl potreba jiny,
rozsireny format; navic nektere standardni systemove jednotky
maji jiny kod pro chraneny a realny rezim - proto vzniknul
format .TPP. Obdobne pro Windows jednotky existuje format .TPW.
Tyto tri formaty jsou navzajem nekompatibilni a nelze je michat.

V.L.



More information about the net mailing list