预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共103页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

说明:①在EQU语句的表达式中,如果有标号名或变量名,则该语句必须放在它们的定义语句之后。例如ABEQUDATA+2必须放在标识符DATA的定义之后,否则汇编程序将指示以下错误:Symbolnotdefined:DATA②后面的EQU伪操作可以利用前面的EQU伪操作已经定义的符号名。例如:ALPHAEQU7;给数值7赋以符号名ALPHABETAEQUALPHA-2;给7-2=5赋以符号名BETAADDREQUVAR+BETA;给VAR+5赋以符号名ADDR二、数据定义伪指令语句数据定义语句用于定义变量,该语句指定变量的名称和变量的类型,并为该变量分配存储单元。(1)数据定义语句的格式[变量名]数据定义符操作数[,操作数]…[,操作数]其中,①变量名:可选项。②操作数:赋给变量的初值,多个相同类型的变量可在一条语句中定义。③数据定义符常用数据定义符有以下三种。•DB:定义字节变量,每个变量占有1个字节的存储单元。•DW:定义字变量,每个变量占有2个字节的存储单元。•DD:定义双字变量,每个变量占有4个字节的存储单元。此外,还有DQ、DF和DT等类型。对于多字节变量,其变量值的内存存放规则是,低位字节占低地址单元,高位字节占高地址单元。说明:经过定义的变量必然具有以下三个属性。•数据类型字节、字、双字等等。•偏移地址分配给该变量的存储单元的偏移地址。•段基址分配给该变量的存储单元的段基址,也就是定义该变量的逻辑段的段基址。(2)数据定义语句的具体形式和功能根据操作数的不同表达形式,常见的数据定义语句有以下几种具体形式。①操作数是一个数值常量例如:XDB25H;定义一个名为X、初值为25H的字节变量YDW4142H;定义一个名为Y、初值为4142H的字变量ZDD12345678H;定义一个名为Z、初值为12345678H的双字变量②操作数是一个数值表达式例如:PORTEQU80HOUT_PORTDWPORT+1汇编程序将定义一个名为OUT_PORT的字类型变量,并为其分配一个字单元,然后计算数值表达式(PORT+1)的数值,并把计算结果0081H装入该单元中。③操作数部分使用问号?例如:ADB?;定义字节变量A,并为其分配一个字节单元BDW?;定义字变量B,并为其分配一个字单元汇编程序只为变量分配存储单元,并不赋予其具体的初值,该变量的初值不确定。④操作数部分是用逗号分隔的若干个操作数例如:TABLEDW1,2,3这个数据定义语句定义了三个变量,第一变量的变量名为TABLE,其它两个变量没有变量名。但是由于这三个变量的存储单元依次排列,具有线性存储特性,因此我们可以将这种数据定义语句看成是数组变量的定义语句,并将第一个变量的变量名TABLE看成是数组变量名,将这三个变量看成是该数组的数组元素。于是各数组元素的访问地址可以用下式来确定。数组元素地址=数组变量名+数组元素下标值*数组元素字节大小在定义数组变量时,可以使用重复操作符DUP来定义各个数组元素,其定义格式如下。重复次数DUP(操作数1,…,操作数N)这个表达形式的含义是,将括号中的N个操作数,以指定的次序,重复指定次数。其中,重复次数字段是值为正整数的数值表达式。例如:TABLEDB2DUP(0,1),2<=>TABLEDB0,1,0,1,2注意:DUP重复操作符可以嵌套使用,例如以下两式是等价的。TABLEDB2DUP(2DUP(1,2),3)TABLEDB1,2,1,2,3,1,2,1,2,3CSTRING2X⑦操作数是如下形式的地址表达式标号或变量名±结果为整数的数值表达式这个地址表达式的运算结果仍然表示一个标号或变量,其类型属性和段基址属性与原来的标号或变量相同,只有其偏移量属性产生相应的增减。因此,汇编程序对这个表达式的处理完全等同于处理一个存储器地址。数据定义符只能使用DW或DD,汇编程序将使用这个新存储器地址(地址表达式的运算结果)的偏移地址(DW)或全地址(DD)来初始化变量。例如:XDB10HADDR1DWX+1ADDR2DDX+1汇编第2条语句时,汇编程序将存储器地址X+1的偏移地址装入到分配给变量ADDR1的双字节存储单元内。汇编第3条语句时,汇编程序将存储器地址X+1的全地址装入到分配给变量ADDR2的双字存储单元内。其中16位偏移地址被存放在低字单元内,16位段地址被存放在高字单元内。⑧操作数是如下形式的数值表达式变量名1-变量名2或者标号1-标号2其中,变量名1和变量名2:同一逻辑段内定义的两个变量名。标号1和标号2:同一代码段内定义的两个标号。同一逻辑段内的两个标号或变量名的相减结果是一个数值,它表示两者之间相距的字节数。TABLE2说明:数据定义语句定义了变量的数据类型,汇编程序可以利用这种隐含的类型属性来确定某些指令是字指令、还是字节指令。例