9.1引言
本章描述文件控製偽指令,這些偽指令可以對源文件、目標文件和清單文件進行控製,這些文件是MASM在彙編期間建立與讀取的。
9.2INCLUDE偽指令
句法INCLUDEfilenameINCLUDE偽指令在彙編期間插入源代碼到當前源文件中,源代碼來自由f/Zename指定的源文件。f//ename必須是一個已存在的文件。若該文件不在當前工作目錄中,則須給出路徑名。
若該文件沒有找到,則MASM顯示錯誤信息並停止工作。
當MASM遇到INCLUDE偽指令時,它打開該文件然後立即開始彙編這些源語句。所有語句讀完後,MASM繼續處理在INCLUDE偽指令後麵的語句。
允許使用嵌套的INCLUDE偽指令。在清單中MASM用字母C標誌包含的語句。這意味著由INCLUDE偽指令指定的文件可以含有自己的INCLUDE偽指令。
9.3.RADIX偽指令
RADIX偽指令設置源文件中數的缺省輸入基數。expression定義數是二進製的√\進製的、十進製的、十六進製的或是其它基數的。所確定的數目必須在2到16之間。下麵的表列出某些通常的數值。
expression總是十進製而不考慮當前缺省基數。缺省輸入基數是十進製。
在下列例子中,第一個.RADIX偽指令把輸入基數置成十六進製,而第二個.RADIX偽指令把輸入基數置成二進製。RADIX偽指令並不影響DD、DQ和DT偽指令。除非數值後綴附加在該值後麵,否則進入這些偽指令的表達式中的數目總是按十進製求值。
RADIX偽指令不影響與整數一起使用的可選基數區分符B和D。即使當前輸入基數是16,當8或D出現在任意整數的末尾時,它也總是看成是基數區分符。
如果輸入基數是16,那麼數0ABCD將被解釋成OABC十進製(這是一個不合法的數),而不是想象的那樣為0ABCD十六進製。打入OABCDh來規定OABCD為十六進製。類似地,數118將被看成ll--進製(這是一個合法的數),而不是想象的那樣為llB十六進製。打入11Bh來規定llB為十六進製。
9.4%OUT偽指令
%OUT偽指令指示MASM在彙編時碰到包含規定的text的行時,在用戶的終端顯示text。
這個偽指令對於一個長時間的彙編過程經過某些指定點時顯示信息是很有用的。
%OUT偽指令在兩遍彙編中都產生輸出。在處理該偽指令時可用IFl和IF2偽指令實施控製。
在下麵例子中,在彙編程序第一遍的末尾0AOUT偽指令顯示消息“FirstPass—Okay”,但在第二遍後卻忽略%0UT偽指令及消息。
9.5NAME偽指令
NAME偽指令置當前模塊的名字為module一職僦。此模塊名是連接程序在顯示錯誤信息時使用的。
module一伽僦可是任何字母數字的組合。雖然名字的長度是任意的,但僅前6個字符有用。此名字必須是唯一的,不能是保留字。
如果沒有使用NAME偽指令,則MASM用TITLE偽指令的前64-字建立缺省模塊名。如果沒有找到TITLE偽指令,則缺省名字取為“A”。
9.6TITLE偽指令
TITLE偽指令定義程序清單標題。它指示MASM複製泐£到程序清單中每一新的頁的第一行。細£可以是任何字符的組合,最長可達60個字符。
每個模塊最多隻能有一個TITLE偽指令。
9.7SUBTTL偽指令
SUBTTL偽指令定義清單子標題。它指示MASM把text複製到程序清單中每個新頁的標題的下麵一行。text可以是任何字符的組合,但隻用到前60個字符。若沒有給字字符,則子標題行留空。