nasm提供一個限定符.nolist,可以包含它到一個宏定義中,這樣該宏就不會在清單檔案中被展開;限定符 .nolist直接放到參數後面:
條件彙編
和c預處理器類似,nasm允許對一段源代碼隻在某特定條件滿足時進行彙編:
%ifdef和 %ifndef 測試單行宏是否存在,在分支測試中也有類似的%elifdef和%elifndef
%ifmacro測試多行宏是否存在,同樣存在和判斷單行宏類似的%ifnmacro、%elifmacro和%elifnmacro
%ifctx ctxname 測試上下文棧,當與處理器上下文棧中頂部的上下文為ctxname時條件成立。
%ifidn和%ifidni當且僅當文本相同時才會使代碼彙編,2段文本在空格個數的不同會被忽略。後者是前者的大小寫不敏感版本。
%ifid 當參數為記号時條件成立
%ifnum 當參數為數字時條件成立
%ifstr當參數為字元串時條件成立
%error産生一個錯誤
雖然nasm的times字首很有用,但不能用來作用于一個多行宏,在nasm展開宏之後times才被處理,是以nasm提供另外一種在預處理器級别的循環:%rep
%rep可以帶一個數值表達式,表示rep代碼重複的次數:
可以使用%exitrep跳出%rep循環
使用%include包含其它源檔案,被包含檔案在運作nasm所在目錄查找,可以通過在nasm指令行中使用-i增加搜尋路徑。也可以在指令行中使用-p包含一個檔案。