зависит от асма в первую очередь, если он не может собирать под мою ОС супер-пупер хитрозакрученного режима то он и не соберет, так как нет у него директив/параметров ком строки для моей ОС
Есть другая сущность: "исполняемая программа". Её можно воспринимать как пакет, в котором лежит модуль исполняемых инструкций, модуль данных, различная служебная информация. ОС считывает этот пакет, распределяет в памяти эти фрагменты, делает определённые настройки и только после этого передаёт управление исполняемой части программы. Вот этот "пакет" для разных ОС собирается по-разному. Как раз ключи при вызове nasm определяют, как nasm будет это делать.
а этим распределением линковщик же занимается?
Верно, но nasm тоже кое-что делает. Линковщик собирает пакет из большого количества составляющих.
Обсуждают сегодня