Да, у ассемблеров NASM и GAS есть существенные отличия. 14
Одно из основных различий — синтаксис. 24 В GAS используется относительно старый синтаксис AT&T, а в NASM — синтаксис Intel. 4
Ещё несколько отличий:
- Поддержка 16-битного кода. 1 GAS ограничен созданием простых односегментных 16-битных бинарных образов, в то время как NASM поддерживает сегменты и файлы в формате OMF, что позволяет создавать сегментированные 16-битные исполняемые файлы. 1
- Форматы файлов. 1 NASM поддерживает больше форматов файлов, чем GAS: обычно GAS поддерживает нативный формат для машины, на которой он работает (ELF, PE-COFF или MACH-O), а для поддержки другого формата нужно создать версию GAS для этого формата. 1
- Поддержка создания DWARF и информации для 64-битной отладки Windows. 1 GAS поддерживает это, в то время как в NASM нужно самостоятельно создавать разделы и заполнять данные. 1
Выбор между NASM и GAS зависит от конкретных задач и предпочтений разработчика.