Речь идет о полностью 64-битной ОС, которой не нужна совместимость с 32-битным ПО, т.е. lib32 версии библиотек отсутствуют. Также стоит забыть о том, что 64-битные инструкции длиннее. Препод говорил, что я разберусь с этим, прочитав о команде ассемблера call. Читал:
Команда call передает управление ближней или дальней процедуре с запоминанием в стеке адреса точки возврата. Команда ret возвращает управление из процедуры вызывающей программе, адрес возврата получает из стека. Пример:
..code.. call 0455659 ..more code.. Код с адреса 455659: add eax, 500 mul eax, edx ret
Когда выполняется команда call, процессор передает управление на код с адреса 455659, и выполняет его до команды ret, а затем возвращает управление команде следующей за call. Код который вызывается командой call называется процедурой. Вы можете поместить код, который вы часто используете в процедуру и каждый раз когда он вам нужен вызывать его командой call.
Подробнее: команда call помещает регистр EIP (указатель на следующюю команду, которая должна быть выполнена) в стек, а команда ret извлекает его и передаёт управление этому адресу.
http://www.codenet.ru/progr/asm/newbee/lesson3.php
Разбирался и с другими источниками, но ничего связанного с выделением памяти не обнаружил.