微型计机原理及应用第7章.ppt

  1. 1、本文档共148页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计机原理及应用第7章

第7章 微型计算机汇编语言及汇编程序 7.1 宏汇编语言的基本语法 7.2 伪指令 7.3 宏指令 7.4 系统功能调用 7.5 汇编程序的功能及汇编过程 7.6 汇编语言程序设计 习题 汇编语言和机器语言相比,使用汇编语言来编写程序的突出优点就是可以使用符号;具体地说,就是可以用助记符来表示指令的操作码和操作数,可以用标号和符号来代替地址、常量和变量。助记符一般都是表示一个操作的英文字母的缩写,很便于识别和记忆。不过,用汇编语言编写的程序不能由机器直接执行,而必须翻译成由机器代码组成的目标程序,这个翻译过程称为汇编。在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的。用来把汇编语言编写的程序自动翻译成目的程序的软件叫汇编程序。汇编过程的含义如图7.1所示。 用汇编语言编写的程序叫源程序。前面讲的指令系统中的每条指令都是构成源程序的基本语句。汇编语言的指令和机器语言的指令之间有一一对应的关系。 所以,汇编语言是和机器密切相关的,是面向机器的语言,CPU不同的机器有不同的汇编语言。采用汇编语言进行程序设计时,我们可以充分利用机器的硬件功能和结构特点,从而可有效地加快程序的执行速度,减小目标程序所占用的存储空间。因此,与高级语言相比,汇编语言为我们提供了直接控制目标代码的手段,而且可以对输入/输出端口进行控制,实时性能好,执行速度快和节省存储空间等明显优点。所以,汇编语言大量被用于编写计算机系统程序、实时通信程序、实时控制程序等。 8086和80286,80386,80486系统的汇编程序完全相同,简称作ASM-86。在此基础上进一步扩展其功能,成为当前广泛使用的8086宏汇编程序,简称作MASM-86。 7.1 宏汇编语言的基本语法 7.1.1 伪指令语句格式 1. 标号名字段 这是一个任选字段。标号名后面不能用冒号“:”,这是它与指令语句的突出区别。不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等。它们可以作为指令语句和伪指令语句的操作数,这时,标号名就表示一个常量或存储器地址。 2. 伪指令字段 这是伪指令语句不可省略的主要成分。伪指令种类很多,如定义数据伪指令DB,DW,DD;段定义伪指令SEGMENT;定义过程伪指令PROC;…。它们是伪指令语句要求汇编程序完成的具体操作命令。 3. 操作数字段 本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。操作数可以是一个常数(二进制、十进制、十六进制等)、字符串、常量名、变量名、标号、一些专用的符号(如BYTE,FAR,PARA等)。 4. 注释字段 这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。 7.1.2 常数、变量和标号 常数、变量和标号是汇编语言能识别的数据项,它是指令和伪指令语句中操作数的基本组成部分。一个数据项包含有它的数值和属性两部分,这两部分对一条语句汇编成机器目标代码都有直接关系。 1. 常数 常数是没有任何属性的纯数值。在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。它可以有以下几种类型: (1) 二进制数:以字母B结尾的,由0和1组成的数字序列,。 (2) 八进制数:以字母O或Q结尾的0~7数字序列,如723Q,35O。 (3) 十进制数:0~9数字序列,可以用字母D结尾,也可以没有结尾字母,如129,129D。 (4) 十六进制数:以字母H结尾,由数字0~9和字母A~F(或a~f)组成的序列,如3A5BH,0FH。为了区别由A~F组成的是一个十六进制数还是一个标识符,凡以字母A~F为起始的一个十六进制数,必须在前面冠以数字“0”,否则汇编程序认作标识符。 (5) 实数:它由整数、小数和指数3部分组成,这是计算机中的浮点表示法。实数一般用十进制数形式给出,实数的格式如下:    ±整数部分小数部分E±指数部分 其中,整数和小数部分形成这个数的值,称作尾数,它可以是带符号的数。指数部分由指数标识符E开始,它表示了值的大小,如5.213E-4。 (6) 字符串常数:用引号括起来的一个或多个字符。这些字符以ASCII码形式存储在内存中。如“AB”,在内存中就是41H,42H。 在程序中,常数主要出现在: (1) 指令语句中源操作数中作立即数,它应与目的操作数的位数相一致,可以是8位或16位,例如:   MOV AX,0A5F1H (2) 在指令语句的基址加变址的寻址方式中作位移量,例如:   MOV BX,[SI+32H] (3) 在数据定义伪指令中,例如: DB 12H ; 定义一个字节数据 DW 1234H ; 定义一个字数据 DD ; 定义一个双字数据 DB ′A B C D′ ;

文档评论(0)

317960162 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档