Dlaczego nie mogę przydzielić mallociem 64000 bajtów :\ Po wywołaniu instrukcji zawsze wyrzuca błąd. Czy muszę to robić farmalloc?? Słyszałem, że dalekie wskaźniki są wolne :\ Próbowałem także allocmem oraz setblock ale w setblock trzeba podać argument segment i nie wiem co wpisać. W asmie najpierw modyfikowałem rozmiar a potem przydzielałem pamięć. A tu widzę że to nie jest takie proste:|
sprubuj zmienic model pamieci w ustawieniach kompilatora, najlepiej na huge
zmaina modelu pamięci nie pomogła :\
a sprubuj skompilowac program i nie uruchamiac go przez F9 tylko zewnetrznie, tzn: normalnie w oknie exploratora windows go uruchom...
Segment w rmode ma 65536 bajtów.
// ale w bc zaalokować da sie ino 60572, sam jestem ciekaw skad roznica 4kB [mf]
hmm moze dlatego ze segmenty czesciowo zachodza na siebie...? :-|
segmenty czesciowo zachodza na siebie...? :-|
To nie ma nic do rzeczy... Segmenty w trybie rzeczywistym zaczynają sie co 16 bajtów (paragraf) ;]
Zobacz sam, wpisz np. cos pod ades 0xa000:0x0010 , a potem odczytaj spod 0xa001:0x0000
heh moze, ja jak pisalem czasem pod 13h i trza bylo zrobic bufor 64kb to wlasnie dzialalo tylko wtedy jak model pamieci byl huge a program byl uruchamiany normalnie a nie za posrednictwem ide
A rozwiązanie jest proste :) Przypomniałem sobie, że pod win 98 nie było taich problemów niezależnie od sposobu uruchamiania programu ;) System... xp (pro na pewno).