на masm сначала нужно укзать тип процессора, модель памяти, чувствительность к регистру. В NASM этих директив писать в начале программы не нужно. Как тогда компилятор догадывается о процессоре и модели памяти ?
Для современных процессоров ты одним словом тип не укажешь, у тебя много опциональных наборов инструкций. Не знаю насчёт nasm, для gas можно кое-что перечислить в командной строке. Но в целом это пережиток древних 16-битных времён. Разрядность можешь указать в коде (bits 16/32/64) или nasm сам решит, исходя из формата выходного файла (если сказал ему -felf32, будет 32-битный режим). Смешивать разрядности в пределах одного исходника требуется очень редко. С моделью памяти ещё проще: если ты пишешь под современные ОС и процессоры, у тебя model flat.
А, ну вон кстати в насме есть директива CPU, если очень хочется.
Многие параметры можно задать при компиляции
Держался до конца, чтобы не сказать про FASM, в котором можно подключать библиотеки в исходнике, при этом не надо линковать вообще, и который есть на Линукс.
Обсуждают сегодня