我是靠谱客的博主 碧蓝月光,最近开发中收集的这篇文章主要介绍汇编中的LABEL详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

LABEL 伪指令可以插入一个标号,并定义它的大小属性,但是不为这个标号分配存储空间。LABEL 中可以使用所有的标准大小属性,如 BYTE、WORD、DWORD(双字)、QWORD(四字) 或 TBYTE。

LABEL 常见的用法是,为数据段中定义的下一个变量提供不同的名称和大小属性。如下例所示,在变量 val32 前定义了一个变量,名称为 val16 属性为 WORD:
.data
val16 LABEL WORD
val32 DWORD 12345678h
.code
mov ax,val16 ; AX = 5678h
mov dx,[val16+2] ; DX = 1234h
val16 与 val32 共享同一个内存位置。LABEL 伪指令自身不分配内存。

有时需要用两个较小的整数组成一个较大的整数,如下例所示,两个 16 位变量组成一个 32 位变量并加载到 EAX 中:
.data
LongValue LABEL DWORD
val1 WORD 5678h
val2 WORD 1234h
.code
mov eax,LongValue ; EAX = 12345678h

LABEL的功能是定义变量或标号的类型,而变量或标号的段属性和偏移属性由该语句所处的位置确定。

外文名
LABEL
格式
变量/标号
变量的类型:BYTE、WORD、DWORD、DQ、DT
标号的类型:NEAR、FAR
汇编语言
符号定义伪指令——LABEL伪指令
格式:变量/标号 LABEL 类型
变量的类型有:BYTE、WORD、DWORD、DQ、DT;
标号的类型有:NEAR、FAR;
例如:
  Buffer1 LABEL WORD
  Buffer2 DB 20 DUP (0)
  通常,紧接着的下一条语句定义的类型与LABEL指定的类型不同。而实际上,Buffer1是Buffer2的别名,两者指向内存中的同一个存储地址。换言之,同一组数据定义了两种不同的类型,在接受不同数据类型的访问时,可以指定相应的标号。如接受一个字类型数据访问时,使用Buffer1;接受字节类型数据访问时,使用Buffer2。否则因为数据类型不匹配,编译器编译时将出现异常。

来源:https://wapbaike.baidu.com/item/LABEL/2259659?fr=aladdin&ms=1&rid=9431757271298324024

最后

以上就是碧蓝月光为你收集整理的汇编中的LABEL详解的全部内容,希望文章能够帮你解决汇编中的LABEL详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部