J.F.
Guest
Wed Feb 10, 2016 9:25 pm
Użytkownik "janusz_k" napisał w wiadomości grup
dyskusyjnych:n9g5du$12te$2@gioia.aioe.org...
W dniu 2016-02-09 o 00:53, J.F. pisze:
Quote:
Intel x86 też ma oddzielnie segmenty kodu i danych. I co? I
jakoś z tym
żyjemy.
To kompilator ma a nie procek, x86 od zawsze miały wspólną
przestrzeń
danych i programu.
Przestrzen wspolna, adresacja jedna, ale i tu moze segmentacja
namieszac. Ktos jeszcze pamieta te modele pamieci w C - tiny,
small,
huge .. 6 ich bylo
Pewnie, pisałem na nie. Co nie zmienia faktu że można było wpisać
dowolny adres i pobrać dane czy zapisać z całej pamięci RAM,
W modelu small byl jednak segment kodu, segment danych, a
adres/wskaznik tylko 16 bitow liczyl.
Ale segment mogłes zmienić, oczywiście nie było to atomatyczne,
trzeba było załadować rejestr segmentu ale się dało.
W assemblerze sie dalo, bo w C/model small to nie bardzo.
Owszem, wskaznik mogles zadeklarowac huge czy jakos tak, ale funkcje
biblioteczne przyjmowaly parametry small.
J.
janusz_k
Guest
Sat Feb 13, 2016 4:46 pm
W dniu 2016-02-10 o 21:25, J.F. pisze:
Quote:
Użytkownik "janusz_k" napisał w wiadomości grup
dyskusyjnych:n9g5du$12te$2@gioia.aioe.org...
W dniu 2016-02-09 o 00:53, J.F. pisze:
Intel x86 też ma oddzielnie segmenty kodu i danych. I co? I jakoś
z tym
żyjemy.
To kompilator ma a nie procek, x86 od zawsze miały wspólną przestrzeń
danych i programu.
Przestrzen wspolna, adresacja jedna, ale i tu moze segmentacja
namieszac. Ktos jeszcze pamieta te modele pamieci w C - tiny, small,
huge .. 6 ich bylo
Pewnie, pisałem na nie. Co nie zmienia faktu że można było wpisać
dowolny adres i pobrać dane czy zapisać z całej pamięci RAM,
W modelu small byl jednak segment kodu, segment danych, a
adres/wskaznik tylko 16 bitow liczyl.
Ale segment mogłes zmienić, oczywiście nie było to atomatyczne, trzeba
było załadować rejestr segmentu ale się dało.
W assemblerze sie dalo, bo w C/model small to nie bardzo.
Owszem, wskaznik mogles zadeklarowac huge czy jakos tak, ale funkcje
biblioteczne przyjmowaly parametry small.
Ja akurat pisałem w asemblerze więc nie był to problem

--
Pozdr
Janusz_K