- 1、本文档共152页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微型计算机原理与接口技术》
第4章汇编语言程序设计
本章主要内容:§4.1 汇编语言程序格式和伪指令§4.2 DOS系统功能调用和BIOS
中断调用§4.3 汇编语言程序设计方法与实例
什么是汇编语言(Assembly Language)?
使用指令的助记符、符号地址和标号等编写的程序设计语言。
每条指令都有对应的机器码,不同的CPU使用不同的汇编语言。
用汇编语言编程的优点
汇编程序运行速度快,实时性好,占用内存空间小,能最大限度地发挥硬件的作用。
汇编语言的适用场合
绝大部分系统软件都用汇编语言编写,大多数涉及快速处理、位处理和访问硬件设备的高效程序都是汇编程序。如:实时数据处理程序、实时控制程序、高级绘图程序、游戏程序等。
汇编语言编程的缺点和难点
编程效率低,程序设计的技巧性强,要求编程人员熟悉计算机的硬件结构和指令系统;
编程和调试程序周期长,在一种机器上编写的程序,不能移植到别的类型机器上。
学会一种汇编语言,就能举一反三,触类旁通。学会8086汇编语言编程,就打好了学习32位高档机程序设计的基础,也便于从事单片机和嵌入式系统的设计开发。
汇编语言的汇编处理过程
1)按语法规则编写源程序PROG.ASM;
2)用汇编程序将源程序翻译成目标文件PROG.OBJ;
3)用连接程序对1个或几个.OBJ模块连接后,生成能在机器上执行的程序PROG.EXE。
如果汇编过程中出错,要在纠错后重新汇编;
连接过程也会出现新的错误,需要反复修改。
§4.1 汇编语言程序格式和伪指令
4.1.1 汇编语言程序格式
4.1.2 伪指令语句
4.1.3 完整的汇编语言程序框架
4.1.1 汇编语言程序格式
汇编语言程序由指令语句和伪指令语句组成。
1. 指令语句
指令语句由4部分组成,格式:
标号:指令助记符 操作数 ;注释
1)标号
标号是指令的符号地址,后面须加冒号“:”。
可作标号的字符:英文字母、数字或某些特殊字符,如@ * _ ? · 等。
标号以英文字母或特殊字符打头,系统保留字不能做标号, 如:4AB、MOV、DW、LOOP、M-D等都不是合法的标号。
标号具有段基址、偏移量及类型三种属性。
指令语句
2)指令助记符
它是指令语句中不可缺少的部分,表示指令的操作码。
3)操作数
1条指令可包含1个或2个操作数,也可没有操作数。
操作数的组成:
常数 二进制数,加B;
10进制数,可加D或省略;
16进制数,加H,A?F前要加0;
2-10进制BCD数,加H,要用调整指令
字符或字符串 用单引号‘ ’ 括起来
变量 程序运行期间可修改,数值可由DB、DW、DD等来定义
标号 如JMP NEXT
存储器 指令系统中已介绍
表达式 将专门介绍
指令语句
4)注释
说明指令或程序的功能,增强程序可读性,可省略。
注释前必须加分号“;”。
2. 伪指令语句
伪指令语句的格式如下:
名字 伪指令指示符 操作数 ;注释
1)名字
是给伪指令语句起的名称,格式要求与标号类似,名字后不能跟冒号“:”。
2)伪指令指示符
是伪指令语句中不可缺少部分,常用伪指令语句:
段定义语句 SEGMENT和ENDS
段分配语句 ASSUME
过程定义语句 PROC和ENDP
变量定义语句 DB、DW、DD、DQ、DT
程序结束语句 END
伪指令语句
3)操作数
有的伪指令不允许带操作数,有的可带1个或多个操作数。
?
4)注释
注释部分与指令语句的要求类似。
3. 表达式和运算符
将常数、符号、寄存器等通过运算符连接起来的式子叫做表达式。
不论是常数、变量还是标号,都可用表达式的形式给出。
表4.1给出了常用表达式的运算符,还给出了一些简单的例子。
常用表达式的运算符
常用表达式的运算符(续)
常用表达式的运算符(续)
如果一个表达式中有多个运算符,则要根据优先级别从高到低的顺序进行运算,优先级别相同的运算符,则按从左到右的顺序进行运算。
运算符的优先级
运算符
1)算术运算符
例4.1 利用现行地址符“$”和减法运算符“-”求数组的长度。程序段:
DATA SEGMENT ;数据段
LIST DB 12,38,5,29,74 ;LIST数组(变量)
COUNT EQU $-LIST ;COUNT=现行地址-
;LIST的偏移地址
您可能关注的文档
- 第1章繁殖方式与品种类型试编.pptx
- 第1章数据库基础试编.pptx
- 第2章电子商务系统与模式试编.pptx
- 第2章化学热力学基础试编.pptx
- 第2章塑料的组成与工艺特性试编.pptx
- 第2章小信号放大试编.pptx
- 第2专题:公共部门经济行为及功能试编.pptx
- 第03章第16-18节胆道疾病病人的护理试编.pptx
- 第3章高频功率放大器试编.pptx
- 第3章软件工程基础试编.pptx
- 小专题(广东省历史中考专题研究).ppt
- 【聚力前行 乐活Fighting】企业水上趣味运动会团建活动策划方案.pptx
- 第五部分 世界近代史 第四单元 殖民地人民的反抗与资本主义制度的扩展(广东省历史中考考点研究).ppt
- 专题三 中华民族的伟大复兴(广东省历史中考专题研究).ppt
- 第四部分 世界古代史 第三单元 封建时代的欧洲(广东省历史中考考点研究).ppt
- 第二部分 中国近代史 第七单元 人民解放战争(广东省历史中考考点研究).ppt
- 第六部分 世界现代史 第四单元 走向和平发展的世界(广东省历史中考考点研究).ppt
- 第二部分 中国近代史 第二单元 近代化的早期探索与民族危机的加剧(广东省历史中考考点研究).ppt
- 第一部分 中国古代史 第六单元 辽宋夏金元时期:民族关系发展和社会变化(广东省历史中考考点研究).ppt
- 第四部分 世界古代史 第四单元 封建时代的亚洲国家(广东省历史中考考点研究).ppt
文档评论(0)