数据定义伪指令

数据定义伪指令格式:

[存储单元名]     DBDW,DD等)    操作数

 

1)存储单元可以起名也可以不要名字

2)数据定义伪指令

DB

字节单元

DW

字单元

DD

双字单元

扫描二维码关注公众号,回复: 1939220 查看本文章

DQ

四字单元

DT

十字节单元

3)操作数用于指出存储单元的内容(该单元的值)


1、操作数是常数或表达式

例:定义字节单元X=56,字单元E_1=2030H,双字单元CARRY=12345678H

 

DATAS SEGMENT

  X        DB        56

  E_1        DW        2030h

   CARRY DD 12345678H

DATAS ENDS

如果反汇编查看数据段中的数据时是下面的结果:


原因:程序开始运行前,DS不指向你的DATA段。

在程序开始运行,对DS赋过值以后,DS才指向你的DATA段。

此后,在程序运行中,只要不重新给DS赋值,它就不会变。

当程序执行了4CH功能调用,结束运行后,DS也不再指向你的DATA段。

所以:


例:一次定义多个存储单元。“?”代表空单元

    xx DB 12,0,0E4H

    YY DW 5,?,6*3


例:用DUP()子句重复定义相同的操作数

 AVE DB 8,3 DUP(2),-6

 MSN DB 5DUP(?)                  ;定义5个字节空单位

 SCOUNT DW 100 DUP(1)   ;定义100个字单位,初始值为1



例:DUP()子句可以嵌套

BUF DB 2 DUP(96,2DUP(1,4),8)


2、操作数是字符串

例:定义字符及字符串,字符串要用括号括起来

   MES1 DB 'A','B'

   MES2 DW 'AB'

   MES3 DB 'HELLO'


如果用DW定义字符串,只能是两个字以内,并且DW将两个字符看成一个字


例:分别用DBDW定义单个字符。

   CHAR DB 'X','+','Y'

   SYMB DW 'X','+','Y'

对于字符而言,用DB定义。



猜你喜欢

转载自blog.csdn.net/qq_30300695/article/details/53000703