0
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
任何人都知道這個宏在做什麼?宏在MASM32中做什麼?
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
任何人都知道這個宏在做什麼?宏在MASM32中做什麼?
它看起來像創建一個零終止的字符串(因此,sz)。字符串的符號是你傳遞給宏的任何參數,並且它包含你作爲Text參數傳遞的任何內容,加上終止0.
它輸出跳轉指令跳過字符串,然後是字符串本身的字節。跳轉的標籤被聲明爲宏的本地,所以它不污染全局名稱空間。
我已經完成了x86彙編語言已經有一段時間了,但我想這會將字符串數據放在代碼段中,而不是放在數據段中,這似乎有點奇怪。
但似乎'Name db Text,0'永遠不會運行,因爲它總是被跳出來,對吧? – assem 2011-03-13 10:04:42
這只是數據。它不需要'運行'。事實上,它無法運行。彙編程序在源代碼中看到它,並在obj文件中包含字節,並在obj文件中包含該符號。 – 2011-03-14 02:05:08
對不起,你能否詳細說明'Name db Text,0'如何在從未運行時生效? – assem 2011-03-14 06:53:42