- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
伪指令语句格式常数
* * 第7章 微型计算机汇编语言及汇编程序 主要内容 宏汇编语言的基本语法 伪指令 宏指令 系统功能调用 汇编语言源程序的基本结构 汇编语言源程序从编辑到执行所经历的过程 7.1 宏汇编语言的基本语法 伪指令的概念: 伪指令本身不产生对应的机器目标代码,其作用是向汇编程序提供汇编所需要的某些信息,为汇编语言源程序设计提供方便。 伪指令语句格式: 常数、变量和标号: 常数、变量和标号是汇编语言能识别的数据项,它是指令和伪指令语句中操作数的基本组成部分。一个数据项往往包含数值和属性两部分,这两部分对于一条语句汇编成机器目标代码都有直接关系。 常数: 常数是没有任何属性的纯数值,在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。它有以下几种类型: (1)二进制数:以B结尾,由0、1组成的数字序列,。 (2)八进制数:以O或Q结尾,由0~7组成的数字序列,如723Q,35O。 (3)十进制数:以D结尾(可以省略),由0~9组成的数字序列,如129,129D。 (4)十六进制数:以H结尾,由0~9、A~F(a~f)组成的序列,如3A5BH,0A5FDH,0FB12H。 (5)实数:由整数、小数和指数3部分组成,一般用十进制数给出,其格式如下: ±整数部分.小数部分E±指数部分, 如:5.213E-4。 7.1 宏汇编语言的基本语法 (6)字符串常数:用引号扩起来的一个或多个字符,这些字符以ASCII码形式存储在内存中。如“AB”,在内存中就是41H、42H。 变量: 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间可以随时修改。为了便于对变量的访问,它常常以变量名的形式出现在程序中,它可以认为是存放数据的存储单元的符号地址。 经过定义的变量具有3个属性:段属性、偏移量属性、类型属性。 标号: 标号是一条指令目标代码的符号地址,它常作为转移指令和子程序调用指令的操作数。每个标号具有3个属性:段属性、偏移量属性、距离属性。 7.1 宏汇编语言的基本语法 表达式与运算符: 表达式由操作数和运算符组成,在汇编时一个表达式得到一个值。 (1)算术运算符:+,-,*,/,MOD,SHL,SHR。 (2)逻辑运算符:AND,OR,XOR,NOT。 (3)关系运算符:EQ,NE,LT,LE,GT,GE。当关系成立时,结果为0FFFFH,当关系不成立时,结果为0。 (4)分析运算符:SEG,OFFSET,TYPE,SIZE,LENGTH。 (5)组合运算符:PTR,THIS。 (6)分离运算符:LOW,HIGH。 汇编运算符的优先级: 见表7.2(见书第160页)所示。 7.1 宏汇编语言的基本语法 1.符号定义伪指令(赋值语句): (1)名字 EQU 表达式 (2)名字 = 表达式 该语句把表达式的值赋给符号名,在同一程序中,用EQU语句赋值的符号名不能被重新赋值,但被“=”赋值的符号名可以被重新赋值。 2.内存数据定义伪指令 (1)字节定义伪指令 [名字]DB〈表达式或数据项表〉 表达式值或项表中的每一项是一个字节数,它们从符号名地址开始按字节连续存放,直到表中数据项结束(地址递增)。例如: DATA1 DB 50H,50 DATA2 DB ?,? 7.2 伪指令 STRING1 DB ‘ABCDEF’ DATA3 DB 20H DUP(?) (2) 字定义伪指令 [名字]DW〈表达式或数据项表〉 除表达式值或项表中的每一项是两个字节数之外,其它与DB伪指令相同。 例如: DA_WORD DW 0A3F1H,4981H DA_W DW ?,? D_W1 DW 10H DUP(4) (3) 4字节定义伪指令 [名字]DD〈表达式或数据项表〉 表达式值或项表的每一项是4个字节数。 (4) 8字节定义伪指令 [名字]DQ〈表达式或数据项表〉 7.2 伪指令 (5) 10字节定义伪指令 [名字]DT〈表达式或数据项表〉 3.段定义伪指令 存储器在逻辑上是分段的,各段的定义由伪指令实现。 格式:〈段名〉SEGMENT[定位方式][连接方式][‘类别名’] … 〈段名〉ENDS 段定义伪指令为程序的汇编和连接说明了段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB。SEGMENT后面的参数是可选项。 7.2 伪指令 4.段寄存器说明伪指令 格式:ASSUME 段寄存器:段定义名1[,段寄存器:段定义名2,…] 该伪指令告
文档评论(0)