WIN32汇编程序设计中的全局变量定义

1.全局变量的定义

全局变量的作用域这是整个程序,win32汇编的全局变量定义在.data或.data?段内,可以同时定义变量的类型和长度,格式是:

MASM中可以定义的变量类型相当多,具体如表3.2所示:

所有使用到变量类型的情况中,只有定义全局变量的时候类型才可以用缩写,具体使用实例如下:

.data

(1) wHour           dw             ?              //定义一个未初始化的word类型白能量,名称为wHour;

(2) wMinute        dw             10            //定义一个名为wMinute的word类型变量,其值为10;

(3) _hWnd          dd              ?             //定义一个未初始化的dword类型变量_hWnd;

(4) word_buffer  dw              100 dup (1, 2)      //定义一个字数组,以0x01,0x02,0x01,0x02,...的顺序循环100遍,总共200字节;

(5) szbuffer         byte            1024 dup (?)       //定义一个1024字节的字缓冲区;

(6) szText            db               'Hello,World!'      //定义一个字符串,总共占用12字节 ;

在byte类型变量的定义中,可以用引号定义字符串和数值定义的方法混用,假设要定义两个字符串"Hello,World!"和"Hello again",每个字符串后面跟回车和换行符,最后以一个0字符结尾,可以定义如下:

2.全局变量的初始化

全局变量在定义中既可以指定初值,也可以只用问号预留空间,在.data?段中,只能用问号预留空间,因为.data?不能指定初始值,这里就有一个问题:既然可以用问好预留空间,那么在实际运行的时候,这个未初始化的值是随机的还是确定的?答案是0,所以用问好指定的全局变量如果要以0为初始值的话,在程序中可以不必特意的为它赋值。

猜你喜欢

转载自blog.csdn.net/paradox_1_0/article/details/90142482