局部变量的定义格式:
LOCAL变量名[[数量]] [:数据类型] [,变量名[[数量]] [:数据类型]]...
伪指令LOCAL的作用是说明一个或多个临时的局部变量(位于堆栈中)。局部变量必须在任何指令之前加以说明,并可用多个LOCAL伪指令来说明其局部变量。
在子程序中,若说明了某个局部变量,则子程序体中的指令就可使用该局部变量。汇编程序会把对它的引用转换成用指针寄存器BP来访问其在堆栈中的实际存储单元。
在局部变量的作用域与高级语言中局部变量的作用域相一致,即:局部变量只能在当前子程序中使用,离开该子程序,它们就不能再被引用。但在局部变量的命名规则上有所不同,高级语言中的局部变量可与外层变量同名,而汇编语言中的局部变量不能与其它任何变量同名,否则,在汇编时,将会给出“重定义”(Symbol Redefinition)的错误信息。
“数量”用来说明该变量所具有的元素个数。象高级语言的数组定义一样,该数量必须写在括号“[ ]”之中。“数量”说明项是可选项。
局部变量的类型说明符可以是任何合法的数据类型说明符。在16位段环境下,该缺省的数据类型是WORD,而在32位段环境下,该缺省的数据类型是DWORD。
此处伪指令LOCAL的作用与9.3.1节中伪指令LOCAL的作用是完全不同的,具体的差异请见9.3.1节中的比较。
例如:
LOCALdata[20]:BYTE, Num:WORD
在上例的说明中,定义了二个局部变量:Data和Num。前者是字节类型,并有20个元素,后者是字类型,只有其自身1个元素。 |