经典汇编语言教程:4.5 标号、属性

4.5 标号、属性

标号是一种特殊的标识符,它代表代码段中的某个具体位置,它主要用于表明转移的目标位置。其说明形式如下:

标号: 汇编语言指令 ;注释

解释:标号必须是一个合法的标识符,在其后面紧跟一个冒号":",冒号与汇编语言指令之间要有分隔符。通常用若干个空格、TAB来作分隔符,一般用分隔符使有关内容对齐为宜。

4.6内存变量和标号的属性

变量是一个符号地质,其值会根据其数据类型来对应从该地址以后的若干个存储单元中所存的数值。标号也是一个符号地址,它所对应的存储单元中存放的是指令代码。虽然它们在某些性质上有所不同,但它们都是一个符号地址,代表一个存储单元的地址,所以,它们都具有存储单元的属性。除此之外,它们还有各自特殊的属性。

下面介绍内存变量和标号的属性及其有关操作符。

4.6.1段属性操作符

段属性操作符(SEG)返回该标识符所在段的段地址。我们一般只会取内存变量所在段的段地址,而很少取标号所在段的段地址。

假设有下面变量定义:
SCORE DW ?
NAME DB 10 DUP(10) ;数据段的变量定义
MOV AX, SEG SCORE;代码段的指令
MOV BX, SEG NAME

由于SCORE和NAME在同一段中定义,所以,寄存器AX和BX的值是相等的。

4.6.2偏移量属性操作符

偏移量属性操作符(OFFSET)返回该标识符离它所在段的段地址有多少字节。一般情况,程序员只会取内存变量的偏移量,而不太关心标号的偏移量。

假设有下面变量定义:

FIRST DD 12345678H, 0 ;数据段的变量定义
SCORE DW ?, 12H
NAME DB 10 DUP(10)
MOV AX, OFFSET SCORE;代码段的指令
MOV BX, OFFSET NAME

假设FIRST是数据段的第一个被定义的变量名,它的偏移量为0,SCORE的偏移量为8,因为它要跳过二个双字,其它如此类推。

由于NAME在SCORE之后,且SCORE之后有二个字,占四个字节,所以,BX的值要比AX的值大4。

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号