汇编中的变量也可以用LABEL或EQU来定义吗?(可以)

EQU

汇编语言中equ(equal) 定义一个常量

a equ 12
相当于C语言中的#define a 12;
相当于C++中的const int a=12;

EQU定义的是常量

LABEL

LABEL的功能是定义“变量或标号的类型”,而变量或标号的段属性和偏移属性由该语句所处的位置确定。(当然,在label这一条语句的同时,也定义了一个变量或者标号)
例如:
  Buffer1 LABEL WORD
  Buffer2 DB 20 DUP (0)
  通常(注意仅仅是通常),紧接着的下一条语句定义的类型与LABEL指定的类型不同。而实际上,Buffer1是Buffer2的别名(相当于Buffer1 LABEL WORD这一条语句定义了一个标号Buffer1),两者指向内存中的同一个存储地址。换言之,同一组数据定义了两种不同的类型,在接受不同数据类型的访问时,可以指定相应的标号。如接受一个字类型数据访问时,使用Buffer1;接受字节类型数据访问时,使用Buffer2。否则因为数据类型不匹配,编译器编译时将出现异常。

tos LABEL WORD 这一个单独的语句就定义了一个字类型的变量:tos(tos是top of stack)

发布了149 篇原创文章 · 获赞 22 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/deniece1/article/details/103333359