欢迎来到天天文库
浏览记录
ID:45063215
大小:295.00 KB
页数:22页
时间:2019-11-09
《MASM伪指令系统42汇编语言语句种类与格式421汇编语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章MASM伪指令系统4.2 汇编语言语句种类与格式4.2.1 汇编语言语句的种类汇编语言源程序可以使用如下三类语句:1.指令性语句2.伪指令语句3.宏指令语句4.2.2 汇编语言语句的格式由于宏指令实质上不是一类语句,故我们主要分析指令性语句和伪指令语句的格式。指令性语句的格式为:[标号:]指令助记符[操作数[,操作数]][;注释]伪指令语句的格式为:[名字] 伪指令定义符 [参数,…,参数] [;注释]1.标号、名字指令或数据的符号地址。2.助记符、定义符规定指令或伪指令的功能。3.
2、参数参数可分为三类,如下:(1).数值表达式⊙常数宏汇编中允许使用如下几种常数:①二进制常数、②十进制常数、③十六进制常数、④八进制常数、⑤串常数、⑤十进制科学计数法、⑦十六进制实数⊙算术运算符算术运算符有+、-、*、/、MOD。(2)⊙逻辑运算符逻辑运算符有NOT、AND、OR、XOR、SHR和SHL。⊙关系运算符关系运算符有:EQ、NE、LT、LE、GT、GE。(2).寄存器操作数寄存器操作数就是寄存器的名字,常用于指令性语句中。(3).存储器操作数存储器操作数即存储器的地址,常以一个
3、表达式的形式给出,称为地址表达式。单个的变量、标号或有方括号的基址或变址寄存器是地址表达式的特例。4.注释注释项必须以分号开头。4.3 常用伪指令4.3.1 符号定义伪指令1.等值语句EQU格式:变量名EQU表达式功能:EQU伪指令告知汇编程序,指令左右的二个量相等,并且用右边表达式的值定义左边的符号。表达式可以是常数、变量、标号、指令助记符、数值表达式、地址表达式。2.等号伪指令格式:变量名=表达式功能:“=”伪指令用来为右边的表达式定义一个替代符号,且只能是数值表达式,不能为字符串或地址表达式,“
4、=”伪指令定义的符号允许重复定义。4.3.2 数据定义伪指令与变量1.数据定义语句数据定义语句有5条,其格式相同,如下:变量名DB初值表达式变量名DW初值表达式变量名DD初值表达式变量名DQ初值表达式变量名DT初值表达式功能:让汇编程序在内存中划出指定个数的存储单元,然后将这些存储单元与变量名联系起来,并在存储单元中预置初值。DB伪指令定义字节类型变量,其每个初值都占一个字节的存储空间。DW伪指令用来定义字类型变量,其每个初值都占一个字的存储空间。DD伪指令用来定义双字类型变量,其每个初值都占二个字
5、的存储空间。DQ伪指令用来定义四字类型变量,其每个初值都占四个字的存储空间。DT伪指令用来定义十字节类型变量,其每个初值都占五个字的存储空间。初值表达式:初值表达式决定变量初值的个数,定义变量时可以指定多个初值,从而占据较多的存储空间。多个初值时各个初值间用逗号隔开。初值表达式中可以有常数或常数表达式、字符串、?和带DUP的表达式。例如:B0DB2B1DB3,5,?,9B2DW10H,2 DUP(1234H,?)B3DD1,2B4DB0,2 DUP(?,1,2 DUP(7)这5个变量分配内存情况如
6、图4-1(a)~(f)所示(见下页)。图4-1DBDWDD初值示意图说明:(1)表达式中也可以有用引号引起来的字符串,它表示将字符的ASCII码作为初值。例如:C1DB‘ABCD’C2DW‘AB’,‘B’C3DD‘AB’这三个变量在内存中的存放情况如图4-2(a)~(c)所示.图4-2DBDWDD初值示意图(2)对于DW和DD,表达式中也允许是一个变量名或者标号.DW伪指令将变量或标号的偏移量作为初值置入存储区,而DD伪指令则把变量或标号的段基址与偏移量作为初值置入存储区。例:S1DB5S2DWS1S3D
7、DS1内存情况如图4-3所示。2.变量的访问(1)当变量只代表一个数据时,用变量名可直接对其代表的单元进行操作。(2)当变量对应着多个数据时,变量名仅代表其第一个数据项,对其后数据项的存取可用变量名加一偏移量来实现。3.变量的属性一个变量一经定义就具备了如下三个属性:图4-3变量/标号名作初值(1).段属性表示变量对应数据区所在段的段基址。变量在哪个段内定义,其段属性就是哪个段的段基址。(2).偏移属性表示变量对应数据区的段内的偏移量,即从段的起始地址开始到变量对应数据区的第一个存
8、储单元之间的字节数,用16位无符号数表示。变量的段属性与偏移属性构成了变量的逻辑地址。(3).类型属性指变量对应数据项的存取单位,它与变量定义时使用的伪指令有关。如:DB定义的变量,类型为BYTE(字节);DW定义的变量,类型为WORD(字);DD定义的变量,类型为DWORD(双字)等。4.3.3 标号及其属性1.标号的概念标号是一条指令的符号地址,它常作为转移指令或子程序调用
此文档下载收益归作者所有