汇编语言变量三属性
1、段属性
变量的段属性也就是变量所在段的段地址。变量定义必须写在一个段的起止标志之间。
在程序被调入内存时,每个段被操作系统安排一个确定的段地址,在编写程序时可以用段的名字指出某处要使用段地址,面这个段中的所有变量都统一地以这个段地址作为逻辑地址中的段地址部分。
如果在编写程序时需要使用某个变量的段地址,一种方法是用该变量所在段的段名。取段地址的另一种方法是在变量名的前面加上保留字SEG。保留字SEC是伪指令,用于告诉汇编程序上述指令的源操作数是变量OPRDI所在段的段地址,而不是变量中存放的数据。保留字SEG后面加变量名构成立即寻址方式。
2、偏移属性
变量的偏移属性也就是变量所在的段内偏移地址。偏移地址表示段内某一位置到段起始地址的距离,偏移地址为0表示就在段的起始处。一个段中可以定义多个变量,每个变量在段内不同位置占据一定的内存空间,到段起点的距离也就不一样,所以一个段内的各个变量都具有不同的偏移地址。在编写程序时,指令中使用某变量就是按照它的偏移地址到所在段中取出数据,或把数据存到相应内存中。如果在编写程序时需要使用变量的偏移地址,一种方法是在变量名的前面加上保留字OFFSET。
取偏移地址的另一种方法是在汇编语言中用一条专用指令。
3、类型属性
变量的类型属性也就是变量的类型,变量在定义时必须用DB、DW等伪指令说明类型。
说明变量的类型,一方面告诉汇编程序在翻译时把该变量定义中的每个数据项用几个字节存放。另一方面说明该变量的使用方法。MOV等双操作数指令中的两个操作数必须是同一种类型,汇编程序在翻译时要进行类型检查。当一个操作数是寄存器,另一个是变量时,两者类型一致是正常情况。当两者类型不同时,汇编程序将以寄存器的类型为准进行翻译,并提出警告(Waming);当的操作数是变量,源操作数是立即数时,以变量定义时的类型为准。
如果有必要,使用变量时可以临时改变类型。