MASM的命名规则,以问号开头?

问题描述 投票:2回答:1

BNF grammar for MASM,标识符可以如下命名:

标识符的第一个字符可以是大写或小写字母字符([A–Za-z])或以下四个字符中的任何一个:@ _ $?其余字符可以是任何相同字符或十进制数字([0–9])。最大长度为247个字符。

是否存在任何以?(问号)开头的标识符的MASM(或程序集)命名约定?

assembly naming-conventions masm
1个回答
3
投票

我不知道任何有关前导?的书面约定。但是,在扩展包含LOCAL标签的宏时,MASM似乎使用了两个前导问号。

没有清楚地记录为约定AFAIK,但是《 MASM程序员指南》在名为“在宏中定义本地符号”]的一节中提到了这一点。


我们也可以通过编写简单的代码来自己测试:

.686
.model flat,stdcall
option casemap:none

FOO MACRO
LOCAL local_to_foo
local_to_foo:
ENDM

.code

start:

FOO
FOO

END start

如果我们告诉MASM为此生成列表文件(使用/Fl选项,则代码部分的列表将如下所示:

 00000000           .code

 00000000           start:

                FOO
 00000000            1  ??0000:
                FOO
 00000000            1  ??0001:

                END start

最重要的是,对于程序员来说,最好不要在标识符中使用前导问号,就像《 MASM程序员指南》建议您不要使用前导@字符一样,因为MASM将其用于某些预定义的特殊符号。

© www.soinside.com 2019 - 2024. All rights reserved.