资源描述:
《变量定义伪指令》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、变量定义伪指令 1.[]{DB
2、DW
3、DD
4、DQ
5、DT},; 2.表达式为数据项分配存储单元的,用来留预存单元.TEMPDB? 3.带DUP的表达式重复数据定义操作符 DUPTAB1DB10HDUP保留10H个字节单元 变量定义(Define)伪指令为变量申请固定长度的存储空间,并可同时将相应的存储单元初始化 变量名伪指令助记符初值表 变量定义伪指令最常使用变量名 变量名为用户自定义标识符,表示初值表首元素的逻辑地址;用这个符号表示地址,常称为符号地址 变量名可以没有,这种情况,汇编程序将直接
6、为初值表分配空间,无符号地址 设置变量名是为了方便存取它指示的存储单元 初值表 初值表是用逗号分隔的参数 主要由数值常数、表达式或?、DUP组成 ?——表示初值不确定,即未赋初值; DUP——表示重复初值 DUP的格式为: 重复次数DUP(重复初值参数) 变量定义伪指令助记符 变量定义伪指令根据申请的主存空间单位分类 DB——定义字节伪指令 DW——定义字伪指令 DD——定义双字伪指令 DF——定义3字伪指令 DQ——定义4字伪指令 DT——定义10字节伪指令 还有定位伪指令
7、 定义字节单元伪指令DB DB伪指令用于分配一个或多个字节单元,并可以将它们初始化为指定值 初值表中每个数据一定是字节量(Byte),存放一个8位数据: 可以是0~255的无符号数 或是-128~+127带符号数 也可以是字符串常数 datasegment;数据段 Xdb‘a’,-5 db2dup(100),? Ydb‘ABC’ dataends 字节单元定义实例 moval,X ;此处X表示它的第1个数据, 故AL←‘a’ incX+1 ;对X为始的第2个数据减1, 故成为-
8、4 movY,al ;现在Y这个字符串成为 ’aBC’ 字节变量的应用 定义字单元伪指令DW DW伪指令用于分配一个或多个字单元,并可以将它们初始化为指定值 初值表中每个数据一定是字量(Word),一个字单元可用于存放任何16位数据: 一个段地址 一个偏移地址 两个字符 0~65535之间的无符号数 -32768~+32767之间的带符号数 datasegment;数据段 countdw8000h,?,’AB’ maxintequ64h numberdwmaxint array
9、dwmaxintdup(0) dataends 字单元定义实例 字变量和字常量的定义: WNUMEQU5678H ;定义WNUM为常量 COUNTDW20H ;定义COUNT变量,假设在数据段的偏移地址为10H 字变量和字常量的应用: MOVAX,[BX+SI+WNUM];MOVAX,[BX+SI+5678H] MOVAX,COUNT;MOVAX,[0010H] MOVAX,[SI+COUNT];MOVAX,COUNT[SI] ;MOVAX,[SI+10H] LEABX,COUNT;L
10、EABX,[0010H] MOVBX,OFFSETCOUNT;MOVBX,0010H 字变量和字常量 定义双字单元伪指令DD DD伪指令用于分配一个或多个双字单元,并可以将它们初始化为指定值 初值表中每个数据是一个32位的双字量(DoubleWord): 可以是有符号或无符号的32位整数 也可以用来表达16位段地址(高位字)和16位的偏移地址(低位字)的远指针 varddDD0,?,12345678h farpointDD00400078h 其他数据单元定义伪指令 定义3字伪指令DF——用
11、于为一个或多个6字节变量分配空间及初始化 6字节常用在32位CPU中表示一个48位远指针(16位段选择器:32位偏移地址) 定义4字伪指令DQ——用于为一个或多个8字节变量分配空间及初始化 8字节变量可以表达一个64位整数 定义10字节伪指令DT——用于为一个或多个10字节变量分配空间及初始化 10字节变量可以表达扩展精度浮点数 例:数据定义综合应用 .modelsmall .stack .data bvarDB16 wvarDW4*3 dvarDD4294967295;=232-1
12、qvarDQ? DB1,2,3,4,5 tvarDT2345;定义了BCD码2345H abcDB‘a’,’b’,’c’ msgDB‘Hello’,13,10,’$’ bbufDB12DUP(‘month’) dbufDD25DUP(?) CALLDOSEQU .code .startup movbl,bvar movax,wordptrdvar[0] movd