- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课次13_第5章_ASM_Base课件
本章教学内容 ;学习要求 ;第5章 汇编语言程序设计 ;5.1 汇编语言的基本概念;2. 汇编语言
汇编语言(Assembly Language)是使用指令的助记符、符号地址、标号等书写的程序的语言,简称符号语言。它的特点相对于 “机器语言” 易读、易写、易记。其缺点是不能为机器所直接识别。
3. 高级语言
高级语言(High Level Language 高层次抽象语言),脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。
;;为什么要用汇编语言编写程序;⑵ 现在的微机系统中,底层的一些基础功能仍然靠汇编语言程序来实现。例如机器的自检、系统初始化、实际的输入输出操作,至今仍然是用汇编语言编制的程序来完成。
⑶ 汇编语言程序的效率通常高于高级语言程序。所以在节省内存空间和提高程序运行速度的重要场合,如实时控制,常常使用汇编语言来编制的。
因此,现在许多高级语言都设置有与汇编语言程序接口的功能,以便于提高高级语言程序的效率。;例 5.1 两个5字节十六进制数相加。
DATA1 ←(DATA1)+(DATA2);START: MOV AX , DATA
MOV DS , AX ;初始化数据段
MOV CX , 5 ;初始化计数器
MOV SI , 0 ;初始化表内指针
CLC
LOPER: MOV AL , DATA2[SI]
ADC DATA1[SI] ,AL ;与被加数相加
INC SI
DEC CX
JNZ LOPER ; if (CX=0) then goto loper
MOV AH , 4CH
INT 21H ;非标准返回DOS
CODE ENDS
END START ;源程序结束 ; 由上面的例子可以看出,汇编语言源程序的结构是分段结构形式,一个汇编语言源程序由若干段 ( SEGMENT ) 组成,每个段以 SEGMENT 语句开始,以 ENDS 语句结束。整个源程序的结尾是 END 语句。
这里所说的汇编语言源程序中的段(逻辑段)与前面讨论的 CPU 管理的存储器的段(物理段),既有联系,在概念上又有所区别。我们已经知道,微处理器对存储器的管理是分段的,因此,在汇编语言程序中也要求分段组织指令、数据和堆栈,以便将源程序汇编成为目标程序后,可以分别装入存储器的相应段中。 ; 在上面的简单源程序中只有两个逻辑段,一个逻辑段的名字是 DATA,其中存放着与程序有关的数据,称为逻辑数据段;另一个逻辑段的名字是 CODE ,其中包含着程序的指令,称为逻辑代码段。每个段内均有若干行语句。
汇编源程序:是由若干个逻辑段组成;
逻辑段:又由一行一行的语句组成的。;X86 汇编源程序模板;1.语句的类型
汇编语言源程序中的两种类型语句:指令语句,伪指令语句。
(1) 指令语句:它是能生成 CPU 可以执行的目标代码,完成特定CPU 操作的语句。(能生成机器指令的汇编语句 )
(2) 伪指令语句:它是一种不产生目标代码的语句,它仅仅在汇编过程中告诉 “汇编程序” 应如何汇编。例如,①告诉汇编程序已写出的汇编语言源程序有几个段,段的名字是什么;②定义变量,定义过程,③给变量分配存储单元,给数字或表达式命名等。显然,伪指令语句是 “汇编程序” 在汇编时使用的。
(3)宏指令语句:用户自己定义的指令。; 指令语句与伪指令语句的格式类似。一般情况下,汇编语言的语句可以由1~4部分构成:
[名字:] 助记符 [操作数] [;注释]
其中带方括号的部分表示任选项。前例中有如下语句:
LOPER: MOV AL,DATA2[SI] ;取一个字节加数
DATA1 DB 0F8H,60H,0ACH,74H,3BH ;被加数
第一条语句是指令语句,其中 “LOPER”是名字,“MOV”是指令助记符,“AL,DATA2[SI]”是操作数,“;”后面是注释部分;第二条语句是伪指令语句,其中 “DATA1” 是名字,“DB” 是伪指令定义符,“0F8H,60H,0ACH,74H,3BH”是操作数,“;”后面是注释部分。;由字母数字串组成。
在指令语句中,名字就是一个标号。
指令语句中的标号实质上是指令的符号地址。
指令语
文档评论(0)