天天看點

nasm預處理器(4)

nasm定義了一套标準宏,當開始處理源檔案時,這些宏都已經被定義了,如果希望程式在執行前沒有預定義的宏存在,可以使用%clear清空預處理器的一切宏。

__nasm_major__ 主版本号

__nasm_minor__ 次版本号

__nasm_subminor__ 子次版本号

__nasm_patchlevel__ 更新檔号

__nasm_version_id__ nasm版本id

__nasm_ver__ nasm版本字元串

__file__ 檔案名

__line__ 行号

struc 和 endstruc 聲明一個結構資料類型:

如果要在多個結構體中定義相同的元素可以這樣定義:

由于nasm沒有内部結構體支援,是以不支援以句點形式引用結構體中的成員,是以mov ax,[type_val.word]是非法的;.word是一個常數,正确文法為:

下面是如何定義一個結構的變量:

資料對齊align和alignb

%line操作符用來通知nasm,輸入行與另一個檔案中指定的行号相關

%! 讀取一個環境變量