Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выделение памяти в asm

7.3K
24 марта 2005 года
tot
25 / / 24.03.2005
Как выделить память в asm. Тоесть меня интересует сама идея. У меня есть структура, в структуре указатель на следующий элемент(тоесть список). с помощью 48h прерывания я выделяю память и начало сегмента возвращается в ax. Как быть дальше? То есть как понимаю в поле next(указывает на следующий элемент в списке) надо указать на следующий элемент в формате сегмент:смещение. Но как это сделать?
991
24 марта 2005 года
Zenhipster
157 / / 14.01.2005
...
Next dw ?
...

В поле Next вашей структуры надо записать полученный сегмент. Дело в том, что эта функция (насколько я помню) выделяет блок памяти, размер которого кратен одному параграфу (16 байт). Блоки меньшего размера система просто не способна выделить. А смещение будет отсчитываться от начала выделенного вами блока. Если создать последовательно несколько узлов списка, то поля Next примут примерно следующие значения:
2b3ah, 2b4ah, 2b5ah,2b6ah... (если размер узла <= 16 байт).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог