RxDOS 中的函数命名约定
Function naming convention in RxDOS
在 RxDOS 源代码中,同名函数用数字后缀区分,如下所示:
RxDOS_WRITESTUB:
...
RxDOS_WRITESTUB_06:
...
RxDOS_WRITESTUB_10:
...
为什么会这样?
这似乎是实现作用域标签的粗略方式。源代码是用 MASM 5.1 编译的,它不支持默认标记的函数作用域。函数中定义的所有标签(例如 PROC/ENDP 块)在函数外部都是可见的,因此需要注意不要在两个不同的函数中定义具有相同名称的标签。
这里使用的约定是不使用MASM的PROC/ENDP块来定义函数,而只是使用一个普通的标签来标记函数的开始。函数内的标签是通过在函数名称后附加一个数字形成的。所以 RxDOS_WRITESTUB
是一个函数的名称,而 RxDOS_WRITESTUB_06
是该函数中标签的名称。后面的标签仅供函数内的代码引用。
我不建议在您自己的代码中遵循约定。自 1991 年发布的 MASM 6.0 以来,MASM 默认支持函数作用域标签。更好的约定是编写如下代码:
RxDOS_WRITESTUB PROC
...
loop_args:
...
found_switchchar:
...
RxDOS_WRITESTUB ENDP
请注意,我如何为函数局部标签赋予更具描述性的名称而不是数字。
在 RxDOS 源代码中,同名函数用数字后缀区分,如下所示:
RxDOS_WRITESTUB:
...
RxDOS_WRITESTUB_06:
...
RxDOS_WRITESTUB_10:
...
为什么会这样?
这似乎是实现作用域标签的粗略方式。源代码是用 MASM 5.1 编译的,它不支持默认标记的函数作用域。函数中定义的所有标签(例如 PROC/ENDP 块)在函数外部都是可见的,因此需要注意不要在两个不同的函数中定义具有相同名称的标签。
这里使用的约定是不使用MASM的PROC/ENDP块来定义函数,而只是使用一个普通的标签来标记函数的开始。函数内的标签是通过在函数名称后附加一个数字形成的。所以 RxDOS_WRITESTUB
是一个函数的名称,而 RxDOS_WRITESTUB_06
是该函数中标签的名称。后面的标签仅供函数内的代码引用。
我不建议在您自己的代码中遵循约定。自 1991 年发布的 MASM 6.0 以来,MASM 默认支持函数作用域标签。更好的约定是编写如下代码:
RxDOS_WRITESTUB PROC
...
loop_args:
...
found_switchchar:
...
RxDOS_WRITESTUB ENDP
请注意,我如何为函数局部标签赋予更具描述性的名称而不是数字。