[asm] alokacja pamięci

0

Już prawie wzniosłem się ponad chmurki gdy mój programik wypluł właściwe dane. Pogilgotany tym miłym faktem postanowiłem dać mu więcej danych żeby miał co robić jak będę sobie robił siorbatkę. Nie trudno się chyba domyślić jaki był efekt zważywszy na to, że piszę tu na forum Tak! Prawidłowo się domyślacie nie napiłem się herbatki A teraz już konkretniej:

Mam problem z alokacją pamięci funkcją 21h ax=4800h. Alokuje mi pamięć do bx nie większego niż 3. Gdy chcę więcej pamięci to mi po int 21h daje C=1 i ax=8 co znaczy że nie mam wolnej pamięci do alokacji.

Może ma ktoś jakiś pomysł? Będę dźwięczny!

0

zamiast korzystac z alokacji pamieci wykorzystaj wolne segmenty (do 9000h:ffffh) i uzywaj ich jako twojej pamieci, skruricsz kod a dzialanie takie same :)

0

Jeżeli jednak wolisz używać standardowy przydział pamięci muszisz najpierw zmienić rozmiar przydzielonej pamięci dla twojego programu funkcją 4Ah.

0

No to wiem ale w tej funkcji musi być rejestr es zainicjowany segmentem który ma być zmodyfikowany. Czym mam zainicjować rejest es?

0

Mały OT:
zawsze możesz też skorzystać z tego
http://4programmers.net/faq.php?id=364

0

No nie :D aż tyle nie potrzebuję. Może inaczej ujmę pytanie. Może niekoniecznie muszę tą pamięć allokować. Muszę wczytać plik i na pewno nie będzie większy niż 64kB ale jego rozmiar może być różny. Problem jest taki że nie mogę zając segmentu danych bo tam mam stosunkowo długie tablice i zajmuję prawie całe 64kB. Więc potrzebuję jeden niezależny segmencik 64kB na obróbkę pliku. Ma ktoś jakiś pomysł?

1 użytkowników online, w tym zalogowanych: 0, gości: 1