- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章_汇编语言程序设计
第4章汇编语言程序设计 主要内容 汇编语言源程序的结构 汇编语言语句格式 伪指令 功能调用 汇编语言程序设计 4.1 汇编语言源程序 机器语言 汇编语言 高级语言 机器语言:用二进制来表示指令和数据的语言,是计算机硬件系统唯一能够直接理解和执行的语言,具有执行速度快、占用内存少等优点。 汇编语言:用指令助记符、符号地址标号和伪指令等来书写的程序。 汇编语言源程序:用汇编语言编写的程序。 汇编:将汇编语言源程序翻译成能够在计算机上执行的机器语言(称为目标代码),该翻译过程称为汇编。 汇编程序:完成汇编过程的系统程序。 汇编语言是利用指令的助记符、符号地址、标号来编写的语言,它是机器语言的符号表示,是低级语言。 汇编语言是面向机器的,是和机器的硬件密切相关的。 汇编语言编写的程序效率高,节省内存,运算速度快。 汇编语言源程序与汇编程序 汇编语言源程序 汇编程序 汇编语言程序设计与执行过程 输入汇编语言源程序(EDIT) 汇编(MASM) 链接(LINK) 调试(TD) 4.1.1 汇编语言源程序结构 完整的汇编语言源程序通常由若干个逻辑段组成,包括数据段、 附加段、堆栈段和代码段,它们分别映射到存储器中的物 理端上。每个逻辑段以SEGMENT开始,以ENDS语句结 束,整个源程序用END语句结尾。 代码段存放源程序的所有指令码。 数据、变量等房子数据段和附加段。 一个源程序可以有多个代码段,也可以由多个数据段、附加段 及堆栈段。 一个源程序模块只能有一个代码段、一个数据段、一个附加段 和一个堆栈段。 程序分段的目的是为了在程序汇编后,能将指令码和数据分别 装入存储器的相应物理段中。 数据段名 SEGMENT … 数据段名 ENDS 附加段名 SEGMENT … 附加段名 ENDS 1. 汇编语言语句类型 指令性语句 指示性语句 指令和伪指令 指令——使CPU产生动作、并在程序执行时才处理的语句,生成目标码。 伪指令——不产生CPU动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等,不生成 目标码。 伪指令语句与指令性语句的区别 伪指令与指令性语句的最大区别是: 首先伪指令语句经汇编后不产生任何机器代码,而指令性语句经汇编后会产生相应的机器代码; 其次伪指令语句所指示的操作是在程序汇编时就完成了的,而指令性语句的操作必须在程序运行时才能完成 。 2. 汇编语言语句格式 [标号:] [前缀] 操作码 [操作数 [,操作数]] [;注释] 指示性语句格式 [名字] 伪指令 操作数 [,操作数,…] [ ;注释] 1. 标号、名字 标号表示指令的符号地址,其后有冒号,标号在指令性语句前。 名字通常表示变量名、段名和过程名等,多数情况下用来表示吃存储器中的一个数据区的地址。名字后不加冒号,在指示性语句前。 组成:由英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令)。 2. 操作码 指令码 伪指令助记符 指示汇编程序要完成的操作 作用: 定义变量 分配存储单元 指示程序开始和结束等 3. 注 释 4. 数据项及表达式 寄存器 存储器单元 常量 变量或标号 表达式 常 量 数字常量 十进制常量 二进制常量 十六进制常量 字符串常量 用单引号引起的字符或字符串 例:‘A’ MOV AL,’A’ 例:’ABCD’ 标号 标号:代表存放一条指令的存储单元的符号地 址,其后需加冒号(指令性语句)。 作用:标号可作为转移、过程调用及循环控制 等指令的操作数。 三种属性 段值属性:标号所在段的段地址。 偏移量属性:偏移地址(16位) 类型属性:近标号(只能段内被引用,2字节) 远标号(可在其他段被引用,4字节) 变 量 变量的属性: 段值:变量所在段的段地址 偏移量:变量单元地址与段首地址之间的位 移量。 类型:字节型、字型和双字型等 表达式 算术运算符 逻辑运算符 关系运算符 取值运算符和属性运算符 其它运算符 算术运算和逻辑运算符 算术运算符 +,-,*,/,MOD 逻辑运算符 AND,OR,NOT,XOR 例: MOV AL,OADH AND 0CCH MOV AL,8+4-1 关系运算符 表示关系是否成立的运算符 参与关系运算的必须是两个数值,或是同一段中的两个存储单元地址。 运算结果
文档评论(0)