欢迎来到天天文库
浏览记录
ID:40246066
大小:1.75 MB
页数:191页
时间:2019-07-28
《微机原理与接口技术--李云强 第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;定义段DATAADB12H;定义变量A,其值为12HBDB34H;定义变量B,其值为34HCDB?;定义变量C,但没有赋值
2、DATAENDS;DATA段定义结束CODESEGMENT;定义段CODEASSUMECS:CODE,DS:DATA;规定DATA、CODE分别为数据段和代码段START:MOVAX,DATA;用标号START指明程序执行的起始点MOVDS,AX;给数据段寄存器DS赋值MOVAL,A;将变量A的值送入寄存器ALADDAL,B;将AL的值与变量B的值相加,并将其和存入ALMOVC,AL;将AL的值送给变量CMOVAH,4CHINT21H;调用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.汇编语言中的常量与变量⑴常量:汇编中
此文档下载收益归作者所有