Выделение памяти в asm
Как выделить память в asm. Тоесть меня интересует сама идея. У меня есть структура, в структуре указатель на следующий элемент(тоесть список). с помощью 48h прерывания я выделяю память и начало сегмента возвращается в ax. Как быть дальше? То есть как понимаю в поле next(указывает на следующий элемент в списке) надо указать на следующий элемент в формате сегмент:смещение. Но как это сделать?
Next dw ?
...
В поле Next вашей структуры надо записать полученный сегмент. Дело в том, что эта функция (насколько я помню) выделяет блок памяти, размер которого кратен одному параграфу (16 байт). Блоки меньшего размера система просто не способна выделить. А смещение будет отсчитываться от начала выделенного вами блока. Если создать последовательно несколько узлов списка, то поля Next примут примерно следующие значения:
2b3ah, 2b4ah, 2b5ah,2b6ah... (если размер узла <= 16 байт).