汇编中LABLE和EQU THIS的用法

来源:百度知道 编辑:UC知道 时间:2024/07/08 10:13:49
1.我从《微型计算机原理及应用》知道LABLE操作符可以为当前存储单元定义一个指定类型的标号或变量。
使用的格式是: 标号或变量名 LABLE 类型
问题1:假设有这段应用了LABLE操作符的语句:
DBYTE LABLE DWORD
WBYTE LABLE WORD
ARRAY DB 1,2,3,4
MOV AL,ARRAY
MOV AX,WBYTE
请问DBYTE和WBYTE是不是都和ARRAY指向同一数据块,还是只有WBYTE和ARRAY这两个变量指向同一数据块。

问题2:上例是为当前存储单元定义了一个指定类型的变量,那么如何用LABLE来为当前存储单元定义一个指定类型的标号呢,如果是为存储单元定义一个标号,该标号和指令语句中放在指令语句前面带冒号‘:’的标号有何区别,如果按照《微型计算机原理及应用》中所说可以为当前存储单元定义一个指定类型的标号,那么这个标号的类型应该是什么(难道是NEAR和FAR吗,还是其他的什么类型),更进一步,确定了这个标号的类型是什么后,这个标号如何使用,和‘为当前存储单元定义一个指定类型的变量’有什么区别?

2.我从《微型计算机原理及应用》中知道THIS操作符与EQU配合使用,具有LABLE操作符的同样作用
使用格式为:标号或变量名 EQU THIS 类型
问题:类似最上面的第一个问题,假如有语句:
DWORD EQU THIS DWORD
BWORD EQU THIS BYTE
ARRAY DW 100 DUP(?)
上面的语句是否表明100个字的缓冲区ARRAY按50个双字的缓冲区DWORD来使用,或者说上面的语句是否表明DWORD,BWORD和ARRAY指向同一数据块,还是只有BWORD和ARRAY指向同一数据块,而DWORD不和他们指向同一数据块。

1、是的,它们都是对应于同一个存储区域。
2、没错,定义标号时的类型就是NEAR和FAR,定义完以后用法也完全相同。
3、与问题1的回答相同。

佛了 是label 学过汇编没