Пусть gcc и nasm создают объектные файлы, которые вы можете связать вместе. Вы также должны использовать правильные имена символов. В руководстве NASM вы можете найти хорошее объяснение, включая примеры. Поскольку не объясняется, как скомпилировать примеры с использованием gcc и компоновщика, вы можете найти объясненные эти вещи здесь .