微机原理与接口技术--李云强 第5章 汇编语言程序设计

微机原理与接口技术--李云强 第5章 汇编语言程序设计

ID:40246066

大小:1.75 MB

页数:191页

时间:2019-07-28

微机原理与接口技术--李云强 第5章 汇编语言程序设计_第1页
微机原理与接口技术--李云强 第5章 汇编语言程序设计_第2页
微机原理与接口技术--李云强 第5章 汇编语言程序设计_第3页
微机原理与接口技术--李云强 第5章 汇编语言程序设计_第4页
微机原理与接口技术--李云强 第5章 汇编语言程序设计_第5页
资源描述:

《微机原理与接口技术--李云强 第5章 汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微机原理与接口技术主编李云强中国水利水电出版社第5章汇编语言程序设计5.1汇编语言的特点1汇编语言:汇编语言(ASSEMBLYLANGUAGE)是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符来表示操作码,用标识符号来表示操作数地址码。2汇编语言程序特点:(1)与机器相关(2)执行效率高(3)编程复杂5.2汇编语言程序结构和基本语法5.2.1示例程序例5-1:这是一个完整的汇编语言程序,功能:求C=A+B(A、B、C均为字节数据)。DATASEGMENT;定义段DATA ADB12H;定义变量A,其值为12H BDB34H;定义变量B,其值为34H CDB?;定义变量C,但没有赋值

2、DATAENDS;DATA段定义结束CODESEGMENT;定义段CODE ASSUMECS:CODE,DS:DATA;规定DATA、CODE分别为数据段和代码段START:MOVAX,DATA;用标号START指明程序执行的起始点MOVDS,AX;给数据段寄存器DS赋值MOVAL,A;将变量A的值送入寄存器AL ADDAL,B;将AL的值与变量B的值相加,并将其和存入AL MOVC,AL;将AL的值送给变量C MOVAH,4CH INT21H;调用DOS中断,退出程序并返回DOS状态CODEENDS;CODE段定义结束ENDSTART;整个源程序结束从上例中可看出汇编语言源程序具有以下特点:

3、1.汇编语言源程序由若干个段组成(完整的汇编语言源程序由数据段、代码段、附加段、堆栈段组成,其中代码段是不可缺少的),在代码段中用ASSUME伪指令将段地址与段寄存器的对应关系告诉汇编程序,每个段以SEGMENT语句开始,以ENDS语句结束,整个源程序以END结束。2.段由若干语句组成,一条语句一般写在一行上,书写时语句的各部分应尽量对齐。3.汇编语言程序中至少要有一个启动标号,作为程序开始执行时目标代码的入口地址。启动标号常用START、BEGIN等命名。4.为增加程序的可读性,可在汇编语言语句“;”后加上注释。5.为保证在执行过程中数据段地址的正确性,在源程序中需要对DS寄存器进行初始化。

4、6.为了在程序结束时返回DOS,一般通过调用DOS中断的4CH子功能来实现。5.2.2基本概念1.汇编语言中的语句汇编语言源程序由语句序列构成,其语句序列可分为指令语句、伪指令语句、宏指令语句3种类型。⑴指令语句:即可执行语句(即第4章中介绍的处理器指令系统),在汇编后要产生对应的目标代码,CPU根据这些代码执行相应的操作。格式:[标号:]<指令助记符>[操作数][;注释]如:START:MOVAX,DATA;用标号START指明程序执行的起始点⑵伪指令语句即不可执行语句,在汇编中不产生目标代码,用于指示汇编程序如何汇编源程序,利用它定义和说明常量和变量的属性及存储器单元的分配等。格式:[名字

5、]<伪指令助记符>[操作数][;注释]如:ADB12H;定义变量A,其值为12H⑶宏指令语句即以一个宏名定义的一段指令序列,在汇编中凡是出现宏指令语句的地方,都会有相应的指令语句序列的目标代码插入。格式:[标号:]<宏名>[实参表][;注释]2.汇编语句使用说明⑴标号和名字称为标识符,汇编语言中标识符的组成规则如下:1)标识符由字母、数字及规定的特殊符号(如_、$、?、@)组成;2)标识符必须以字母打头;3)标识符字符长度不得超过31;4)默认情况下,汇编程序不区别标识符中字母的大小写;5)用户定义标识符必须是唯一的,且不能与汇编语言专用的保留字重名。⑵标号用来指向一条指令或宏指令,表示后面的

6、指令第一个字节存放的内存地址,标号常作为转移指令的操作数,确定程序转移的目标地址;名字用来指向一条伪指令,用作变量名时,表示变量存放在内存中首字节的地址。⑶名字和标号都具有3种属性:1)段属性:表示标号或变量所在段基址,标号的段基址在CS段寄存器中,变量的段基址在DS或ES中;2)偏移属性:表示标号或变量所在的段内偏移地址,它代表从段的起始地址到定义标号或变量的位置之间的字节数,段基址和偏移地址组成标号或变量的逻辑地址;3)类型属性:当标号作为转移类指令的操作数时,可在段内或段间转移,其属性有NEAR(段内转移)和FAR(段间转移)2种,若没有对标号进行类型说明,就默认为NEAR属性;对于变量

7、,类型属性说明变量在内存中占多少个字节,其属性有BYTE(字节)、WORD(字)、DOUBLEWORD(双字)3种。⑷指令的操作数可以是立即数、寄存器和存储单元;伪指令的操作数可以是常数、变量名、表达式等;若有多个操作数时,操作数之间用逗号间隔。⑸由分号“;”后的部分为注释内容,用以增加源程序的可读性,汇编程序在翻译源程序时将跳过该部分,对它们不做任何处理。3.汇编语言中的常量与变量⑴常量:汇编中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。