灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1679回复:0

局部变量的定义

楼主#
更多 发布于:2012-09-10 18:56

局部变量的定义格式:

LOCAL 变量名[[数量]] [:数据类型] [,变量名[[数量]] [:数据类型]]...

伪指令LOCAL的作用是说明一个或多个临时的局部变量(位于堆栈中)。局部变量必须在任何指令之前加以说明,并可用多个LOCAL伪指令来说明其局部变量。

在子程序中,若说明了某个局部变量,则子程序体中的指令就可使用该局部变量。汇编程序会把对它的转换成用指针寄存器BP来访问其在堆栈中的实际存储单元。

在局部变量的作用域与高级语言中局部变量的作用域相一致,即:局部变量只能在当前子程序中使用,离开该子程序,它们就不能再被。但在局部变量的命名规则上有所不同,高级语言中的局部变量可与外层变量同名,而汇编语言中的局部变量不能与其它任何变量同名,否则,在汇编时,将会给出“重定义”(Symbol redefinition)的错误信息。

“数量”用来说明该变量所具有的元素个数。象高级语言的数组定义一样,该数量必须写在括号“[ ]”之中。“数量”说明项是可选项。

局部变量的类型说明符可以是任何合法的数据类型说明符。在16位段环境下,该缺省的数据类型是word,而在32位段环境下,该缺省的数据类型是Dword

此处伪指令LOCAL的作用与9.3.1节中伪指令LOCAL的作用是完全不同的,具体的差异请见9.3.1节中的比较。

例如:

LOCAL data[20]:BYTE, num:word

在上例的说明中,定义了二个局部变量:data和num。前者是字节类型,并有20个元素,后者是字类型,只有其自身1个元素。

喜欢0 评分0
游客

返回顶部