- 1、本文档共111页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 微型计算机汇编语言及汇编程序 汤世平 北京理工大学 目 录 7.1 宏汇编语言的基本语法 7.2 伪指令 7.3 宏指令 7.4 系统功能调用 7.5 汇编程序的功能及汇编过程 7.6 汇编语言程序设计 汇编语言 Vs.机器语言 汇编语言可以使用符号 用助记符来表示指令的操作码和操作数 用标号和符号来代替地址、常量和变量 用汇编语言编写的程序不能由机器直接执行,而必须翻译成由机器代码组成的目标程序,这个翻译过程称为汇编。 汇编程序:用来把汇编语言编写的程序自动翻译成目的程序的软件。 汇编过程 汇编语言的优点 充分利用机器的硬件功能和结构特点,有效地加快程序的执行速度,减小目标程序所占用的存储空间。 直接控制目标代码,可以对输入/输出端口进行控制,实时性能好,执行速度快和节省存储空间。 汇编语言大量用于编写计算机系统程序、实时通信程序、实时控制程序等。 80X86的汇编 8086和80286,80386,80486系统的汇编程序完全相同,简称作ASM-86。 在此基础上进一步扩展其功能,成为广泛使用的8086宏汇编程序,简称作MASM-86。 7.1 宏汇编语言的基本语法 伪指令语句格式 常数、变量和标号 表达式与运算符 7.1.1 伪指令语句格式 与指令语句不同,伪指令语句(又叫命令语句)中的伪指令本身不产生对应的机器目标代码。 它仅仅是告诉汇编程序,对后面的指令语句和伪指令语句的操作数应该如何产生机器目标代码。 每一条伪指令语句共分4个字段,它的指令格式如图7.2所示。 1. 标号名字段 这是一个任选字段。 标号名后面不能用冒号“:”,这是它与指令语句的突出区别。 不同的伪指令,标号名可以是常量名、变量名、过程名、结构名、记录名等。 可以作为指令语句和伪指令语句的操作数,这时,标号名就表示一个常量或存储器地址。 2. 伪指令字段 不可省略的主要成分。 伪指令种类很多 定义数据伪指令DB,DW,DD; 段定义伪指令SEGMENT; 定义过程伪指令PROC; …… 是伪指令语句要求汇编程序完成的具体操作命令。 3. 操作数字段 本字段是否需要,需要几个,需要什么样的操作数等都由伪指令字段中伪指令来确定。 操作数可以是一个常数(二进制、十进制、十六进制等)、字符串、常量名、变量名、标号、一些专用的符号(如BYTE,FAR,PARA等)。 4. 注释字段 这是一个任选字段,它必须以分号为开始,它的作用与指令语句的注释字段相同。 7.1.2 常数、变量和标号 常数、变量和标号是汇编语言能识别的数据项,它是指令和伪指令语句中操作数的基本组成部分。 一个数据项包含有它的数值和属性两部分,这两部分对一条语句汇编成机器目标代码都有直接关系。 1. 常数 常数是没有任何属性的纯数值。 在汇编期间,它的值已能完全确定,且在程序运行中,它也不会发生变化。 常数的类型(1) 二进制数:以字母B结尾的,由0和1组成的数字序列,。 八进制数:以字母O或Q结尾的0~7数字序列,如723Q,35O。 十进制数:0~9数字序列,可以用字母D结尾,也可以没有结尾字母,如129,129D。 常数类型(2) 十六进制数:以字母H结尾,由数字0~9和字母A~F(或a~f)组成的序列,如3A5BH,0FH。 为了区别由A~F组成的是一个十六进制数还是一个标识符,凡以字母A~F为起始的一个十六进制数,必须在前面冠以数字“0”,否则汇编程序认作标识符。 实数:它由整数、小数和指数3部分组成,这是计算机中的浮点表示法。 实数一般用十进制数形式给出,实数的格式如下: ±整数部分.小数部分E±指数部分 其中,整数和小数部分形成这个数的值,称作尾数,它可以是带符号的数。指数部分由指数标识符E开始,它表示了值的大小,如5.213E-4。 常数类型(3) 字符串常数:用引号括起来的一个或多个字符。 这些字符以ASCII码形式存储在内存中。如“AB”,在内存中就是41H,42H。 常数的用途 指令语句中源操作数中作立即数,它应与目的操作数的位数相一致,可以是8位或16位,例如: MOV AX,0A5F1H 在指令语句的基址加变址的寻址方式中作位移量,例如: MOV BX,[SI+32H] 在数据定义伪指令中,例如: DB 12H ; 定义一个字节数据 DW 1234H ; 定义一个字数据 DD ; 定义一个双字数据 DB ‘ABCD’ ; 定义4个字节的字符串数据 2. 变量 变量是代表存放在某些存储单元的数据,这些数据在程序运行期间随时可以修改。 为了便于对变量的访问,常常以变量名的形式出现在程序中,可以认为是存放数据存储单元的符号地址。 变量的
文档评论(0)