Microsoft operators reference for MASM顯示雜項部分中的::
運算符。MASM是否有::運算符?
該商品的鏈接將打開一個頁面;;
operator。
我不是這是表中的錯誤名稱還是錯誤鏈接的項目。還有其他一些項目確實有錯誤的聯繫。
MASM是否有::
運算符?它是做什麼的?
Microsoft operators reference for MASM顯示雜項部分中的::
運算符。MASM是否有::運算符?
該商品的鏈接將打開一個頁面;;
operator。
我不是這是表中的錯誤名稱還是錯誤鏈接的項目。還有其他一些項目確實有錯誤的聯繫。
MASM是否有::
運算符?它是做什麼的?
是的,它的確如此。
我在舊的TASM 4 manual(PDF的打印文檔的135頁)中找到了對它的引用。
它被用來以比它們在所定義的過程更寬的範圍定義標籤
考慮:
foo PROC
lbl:
ret
foo ENDP
bar PROC
jmp lbl ;Undefined symbol lbl
bar ENDP
這不會在組裝MASM因爲lbl
是在另一個步驟。
然而,這樣的:
foo PROC
lbl::
ret
foo ENDP
bar PROC
jmp lbl ;Fine
bar ENDP
一樣。
至於我還記得,在TASM/NASM標籤的行爲不同,他們沒有一個範圍(TASM可以製成雖然模仿MASM)。
謝謝。愛讀你的材料順便說一句。真的滿足你的命令。 – Lycan
在NASM中,'lbl:'具有文件範圍。本地標籤以'.'開始(所以你會寫'.lbl:'),但它們實際上只是'foo.lbl'的語法糖。所以在'bar:'之後,你仍然可以寫'jmp foo.lbl'。 (NASM沒有任何東西PROC,你只寫'全球foo'如果你想'foo'標籤的符號表導出。) –
@PeterCordes這就是爲什麼我喜歡它! ;) –
1996年的微軟書MASM程序員指南6.1揭示了一些額外的語義。
雙冒號::
可以用於傳遞從寄存器值製作在過程調用自變量的遠指針。第157頁所描述的那樣:
可以在一個段傳遞FAR指針::偏移對,如示於以下。請注意使用雙冒號分隔寄存器對。
..
INVOKE SomeProc, ES::BX, arg1, arg2
[這裏](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/masm-numbers-and-operators#symbols_in_masm_expressions)'SA提到它的masm鏈接。 –
比在MASM docs正確的@DavidWohlferd中有更好的材質。好的。 – Lycan
@DavidWohlferd該鏈接適用於Microsoft的調試工具,MASM本身不支持使用'::'運算符來「指示類的成員」。 –