@Shackled вы невнимательны. 64-битное ядро предоставляет 32-бинтному юзерспейсу интерфейс который он ожидает, и при этом не имеет проблем из-за маленького физического адресного пространства. Либы -- это юзерспейс. Ставьте полностью 32-битный юзерспейс и будьте счастливы своим странным счастьем. PAE на x86_64 -- это плохой совет.
@zmeykas вы не выделили кадр стека с которым работаете в my_asm_function, а именно, я вижу, вы там собираетесь разместить примерно 512 байт данных. Стандартный способ создать кадр стека такой: