🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
8 messages
8 total messages Started by Johnny Wed, 13 Dec 2006 12:56
Model pamięci
#881
Author: Johnny
Date: Wed, 13 Dec 2006 12:56
20 lines
1202 bytes
Fragment kodu:

.model huge
(...)
ILOSC_CYFR = 0FFFFh
(...)
.data
liczby	dw	ILOSC_CYFR dup(1)

No i dostaję: "segment exceeds 64K limit: _DATA"

Czy w tym modelu (huge) nie powinno nie być takiego limitu, nawet na
pojedynczą zmienną?

-- 
Pozdrawiam
Johnny

"Zauważyłem że ci wszyscy, którzy opowiadają się za aborcją, zdążyli się
urodzić". R. Reagan
Re: Model pamięci
#882
Author: Bernard
Date: Wed, 13 Dec 2006 18:10
24 lines
1338 bytes
Johnny wrote:
> Fragment kodu:
> 
> .model huge
> (...)
> ILOSC_CYFR = 0FFFFh

Raczej LICZBA cyfr, a nie ilość...

> (...)
> .data
> liczby	dw	ILOSC_CYFR dup(1)
> 
> No i dostaję: "segment exceeds 64K limit: _DATA"

To znaczy, że asembler działa poprawnie.

> Czy w tym modelu (huge) nie powinno nie być takiego limitu, nawet na
> pojedynczą zmienną?

Nie powinno. Segment może mieć do 64K.

A tak z ciekawości: w jakim celu piszesz tak dziwaczne programy pod 
DOSa, którego od 10 lat już nie ma?
Re: Model pamięci
#883
Author: johnny
Date: Wed, 13 Dec 2006 21:15
28 lines
1676 bytes
Bernard napisał(a):
> Johnny wrote:
>> Fragment kodu:
>>
>> .model huge
>> (...)
>> ILOSC_CYFR = 0FFFFh
> 
> Raczej LICZBA cyfr, a nie ilość...

Kwestia nomenklatury.

>> Czy w tym modelu (huge) nie powinno nie być takiego limitu, nawet na
>> pojedynczą zmienną?
> 
> Nie powinno. Segment może mieć do 64K.
> 
> A tak z ciekawości: w jakim celu piszesz tak dziwaczne programy pod
> DOSa, którego od 10 lat już nie ma?

Przerabiam książkę i przerabiam wybrane ćwiczenia. A tam jest DOS i MASM
lub TASM.

Wiesz jak rozwiązać mój problem, czy tylko tak dla podtrzymania
razgawora... ?

--
Johnny
Re: Model pamięci
#884
Author: Bernard
Date: Wed, 13 Dec 2006 22:51
35 lines
2060 bytes
johnny wrote:
> Bernard napisał(a):
>> Johnny wrote:
>>> Fragment kodu:
>>>
>>> .model huge
>>> (...)
>>> ILOSC_CYFR = 0FFFFh
>> Raczej LICZBA cyfr, a nie ilość...
> 
> Kwestia nomenklatury.

Nie. Kwestia stosowania poprawnych określeń.

>>> Czy w tym modelu (huge) nie powinno nie być takiego limitu, nawet na
>>> pojedynczą zmienną?
>> Nie powinno. Segment może mieć do 64K.
>>
>> A tak z ciekawości: w jakim celu piszesz tak dziwaczne programy pod
>> DOSa, którego od 10 lat już nie ma?
> 
> Przerabiam książkę i przerabiam wybrane ćwiczenia. A tam jest DOS i MASM
> lub TASM.

Tak starej książki nie warto "przerabiać". Zapomnij o modelach pamięci, 
bo dzisiaj to już nieaktualne. Wprawki pod DOSa pisze się w postaci .COM 
(czyli model tiny), a we współczesnych systemach mamy 32-bitowe 
adresowanie. W obu przypadkach aplikacja "nie widzi" segmentów i nie 
musi się z nimi zmagać.

> Wiesz jak rozwiązać mój problem, czy tylko tak dla podtrzymania
> razgawora... ?

A jaki masz problem? Jeśli problemem jest duża struktura danych, to pisz 
płaski, 32-bitowy kod pod Windows lub Linuxa.
Re: Model pamięci
#886
Author: Bartek Dajewski
Date: Thu, 14 Dec 2006 00:29
39 lines
2064 bytes
Cześć.

Użytkownik "johnny" <johnny_pozbadzsietego_@klub.chip.pl> napisał w
wiadomości news:elpqi0$s8o$1@atlantis.news.tpi.pl...
> Bernard napisał(a):
> > Johnny wrote:
[...]
> >> ILOSC_CYFR = 0FFFFh
> >
> > Raczej LICZBA cyfr, a nie ilość...
>
> Kwestia nomenklatury.

Niezupełnie. Bernard tylko zwraca uwagę, że słowo ilość stosujemy poprawnie
tylko dla rzeczowników niepoliczalnych, a dla policzalnych - liczba.

> >> Czy w tym modelu (huge) nie powinno nie być takiego limitu, nawet na
> >> pojedynczą zmienną?

W segmencie niezależnie od modelu obowiązuje limit 64K, ale w grupie
segmentów już nie. Na przykład tak:

duzy1 segment 'MOJA_GRUPA'
abc label
 db 32768 dup (?)
duzy1 ends
duzy2 segment 'MOJA_GRUPA'
 db 32768 dup (?)
duzy2 ends
duzy3 segment 'MOJA_GRUPA'
 db 32768 dup (?)
duzy3 ends
itd...

Jest przy tym trochę ręcznej dłubaniny, bo trzeba w źródle dzielić duże
obszary na segmenty, ale da się.
-- 
Pozdrawiam :-)
Bartek
Re: Model pamięci
#887
Author: Johnny
Date: Thu, 14 Dec 2006 07:12
11 lines
1228 bytes
Dzięki za obie odpowiedzi.

Ilość niepoliczalne, liczba policzalne, ilość niepoliczalne, liczba ... ;-)


-- 
Pozdrawiam
Johnny

"Zauważyłem że ci wszyscy, którzy opowiadają się za aborcją, zdążyli się
urodzić". R. Reagan
Re: Model pamięci
#888
Author: Wiktor S.
Date: Thu, 14 Dec 2006 22:51
10 lines
1184 bytes
Johnny wrote:
> Dzięki za obie odpowiedzi.
>
> Ilość niepoliczalne, liczba policzalne, ilość niepoliczalne, liczba

... brednie. :-P


-- 
Azarien
Re: Model pamięci
#885
Author: Wiktor S.
Date: Thu, 14 Dec 2006 22:56
21 lines
1933 bytes
> Tak starej książki nie warto "przerabiać". Zapomnij o modelach
> pamięci, bo dzisiaj to już nieaktualne. Wprawki pod DOSa pisze się w
> postaci .COM (czyli model tiny), a we współczesnych systemach mamy
> 32-bitowe adresowanie. W obu przypadkach aplikacja "nie widzi"
> segmentów i nie musi się z nimi zmagać.

>> Wiesz jak rozwiązać mój problem, czy tylko tak dla podtrzymania
>> razgawora... ?

> A jaki masz problem? Jeśli problemem jest duża struktura danych, to
> pisz płaski, 32-bitowy kod pod Windows lub Linuxa.

Hmm.. czyżby więc pisanie dużych programów 16-bitowych (a więc z 
segmentacją) można było zakwalifikować jako "lost art"? ;-)

Heh, bo nawet jak trzeba pod DOS-em coś napisać, to się używa DPMI, 32 
bitów, problemy znikają (kosztem paru nowych co prawda).


-- 
Azarien
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