· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› динамическая память

Посл.отвђт Сообщенiе


Дата: Сен 28, 2004 21:15:06

Как запросить в tasm'e память на время выполнения программы?

То бишь, что бы у меня допустим buffer db 64000 dup(0) не занимал место в .exe-шнике.

Спасибо.


Дата: Сен 28, 2004 21:36:03

А на что секция .DATA? ?


Дата: Сен 28, 2004 21:57:07

Ну так я и пишу:
.data
buffer db 64000 dup(0)
....
бла бла бла

Только вот exe-файл в результате занимает 65кб. А если убрать обьявление buffer, то 1кб.
Потому и спрашиваю.


Дата: Сен 28, 2004 22:01:29

В масме .data - инициализированные, а .data? - неинициализированные "?" в тасме тоже че нить должно быть с "?"


Дата: Сен 28, 2004 22:24:18

И это вы называете ДИНАМИЧЕСКОЙ памятью??? Брысь за парты. В первый класс. Программеры, ха-ха.


Дата: Сен 28, 2004 22:40:31

Для выделения памяти на 64к целесообразно использовать функции типа VirtualAlloc. А также не лишним будет почитать Рихтера, хотя бы разделы про использование памяти. А использовать виртуальную секцию под такие объемы по меньшей мере непрактично. Я в нее обычно пишу хэндлы кусков, но никак не сами куски.


Дата: Сен 28, 2004 22:58:32

Тогда скажите как это правильно называется?
Я и так, если можно так выразится, "в первом классе". Потому и вопросы такие задаю.


Дата: Сен 28, 2004 23:41:47

Правильно называется как n0p сказал - это виртуальная секция. Но сама концепция в корне не верна. Память надо ЗАПРАШИВАТЬ у операционной системы по необходимости! Для этого служат специальные функции типа упомянутой уже VirtualAlloc.


Дата: Сен 29, 2004 01:29:52

Хорошо, а как запросить память у DOS'a?


Дата: Сен 29, 2004 01:43:34 · Поправил: infern0

mov ah,48h ;get memory
mov bx, needed_size_in_para ; 16-bytes
int 21h
jc @@error
; ax -> SEGMENT of allocated memory block ptr
mov [allocDataSeg], ax
push ax
pop es
...

push [allocDataSeg]
pop es
mov ah,49h ; free memory
int 21h
...


Дата: Сен 29, 2004 01:50:03

Вот спасибо! : )
А не подскажешь, где взять описание всех ф-ий 21го прерывания?


Дата: Сен 29, 2004 07:04:41


Дата: Сен 29, 2004 09:03:34

volodya
Ты прав, не подумал, надо дважды было прочитать :(


Дата: Сен 29, 2004 09:24:46

env0der
есть такая штука - ralf braun's interrupt list - рулез неимоверный. А на русском есть отличная штука - thelp - типа теперешних chm-ок.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072