Microsoft operators reference for MASM在其他部分显示了::
运算符。
此项目的链接会打开;;
operator的页面。
我不是这是表中的错误名称还是项目上的错误链接。还有其他几个项目有错误的链接。
MASM是否有::
运营商?它有什么作用?
答案 0 :(得分:6)
是的,确实如此。
我在旧TASM 4 manual中找到了对它的引用(打印文档的第124页,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)。
答案 1 :(得分:5)
1996年的Microsoft书籍MASM程序员指南6.1揭示了一些额外的语义。
双冒号::
可用于将寄存器值生成的far指针作为过程调用中的参数传递。第157页描述了它:
您可以在 segment :: offset 对中传递 FAR 指针,如下所示。注意使用双冒号来分隔寄存器对 ..
INVOKE SomeProc, ES::BX, arg1, arg2