资源描述:
《南邮微机原理教学教案第5课时.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章宏汇编语言5.1宏汇编语言的开发过程5.2宏汇编语言基本语句编辑程序.ASM文件汇编程序.OBJ文件连接程序.EXE文件Edit等TMASMTLINK5.1宏汇编语言的开发过程5.2.1源程序的结构一个完整的源程序在结构上必须做到:用方式选择伪指令说明执行该程序的微处理器类型;用段定义语句定义每一个逻辑段;用过程定义语句定义每一个子程序;用ASSUME语句说明段约定;用汇编结束语句说明源程序结束;程序在完成预定功能之后,应能安全返回DOS。5.2宏汇编语言基本语句.486;方式定义DATASEGMENTUSE16;定义数据段MESGDB‘HELLO’,0D
2、H,0AH,’$’DATAENDSCODESEGMENTUSE16;定义代码段ASSUMECS:CODE,DS:DATA;说明段约定BEG:MOVAX,DATA;BEG为启动地址MOVDS,AXMOVCX,10LAST:MOVAH,9MOVDX,OFFSETMESGINT21HLOOPLASTMOVAH,4CHINT21H;返回DOSCODEENDSENDBEG;汇编结束‘H’‘E’‘L’‘L’‘O’0D0A‘$’MESGDSCS1.方式选择伪指令2.段定义语句3.段约定语句4.过程定义语句5.汇编结束语句6.返回DOS语句这类语句是与程序结构密切相关的基本语句
3、,用来说明MPU类型、段结构与寻址方式的段约定、目标块的定位和源程序结束。1.方式选择伪指令功能:通知汇编程序,当前的源程序指令是哪一种CPU指令,经过汇编链接之后生成的目标程序在哪一种CPU机型上运行。不属于选定CPU的指令均为非法指令。80486指令集是在8086、8088、80286、80386基础上逐步发展起来的,很显然,80486的某些指令在早期的80X86系列是没有的,为了使汇编程序能够识别,在高版本的汇编程序中,对应于每一种CPU的指令系统,都有一个目标指令的集合。指令以句号开头,格式和功能如下:·8086;只汇编8086、8088指令。·286或
4、·286C;只汇编8086、8088及80286实模式指令·286P;只汇编8086、8088及80286全部指令·386或·386C;同·286,且汇编80386实模式指令·386P;同·286P,且汇编80386全部指令·486或·486C;同·386,且汇编80486实模式指令·486P;同·386P,且汇编80486全部指令通常,方式选择伪指令放在程序的头部,做为源程序的第一条语句。不设置方式选择伪指令与设置·8086是等价的。2.段定义语句功能:是逻辑段的定界语句,源程序中每一个逻辑段都必须用段定义语句定界。段定义语句格式如下:段名SEGMENT定位参
5、数链接参数‘分类名’段长度段体段名ENDSSEGMENT/ENDS是一对段定义语句,一个逻辑段从SEGMENT语句开始,到ENDS语句结束。段名命名规则和变量名及标号名一样,它不能代表段体的性质,但为了阅读方便,习惯上总是根据段体的性质起一个适当的段名。通常用DATA做为数据段的段名,用STACK做为堆栈段的段名,CODE为代码段的段名。定位参数,链接参数,‘分类名’为段定义语句的3个属性参数,可以选用1~3个,也可以全部省略。属性参数的功能:为源程序的汇编、链接提供必要的信息。(1)定位参数定位参数通知链接程序,逻辑段的目标代码在存储器中如何存放。①BYTE字
6、节地址:表明该逻辑段的目标代码可以从任意地址开始依次存放;②WORD字地址:表示该逻辑段的目标代码,从偶地址开始依次存放;③PARA(或者缺省)节地址:表示该逻辑段的目标代码,从一个能被16整除的地址开始依次存放;④PAGE页地址:表示该逻辑段的目标代码,从一个能被256整除的地址开始依次存放。注意:链接程序对于不同模块中的同名段进行链接时,对于有BYTE属性的段,总是紧接着前一段存放,不留空闲单元。对于有WORD属性的段,也是紧接前一段存放,最多留出一个空闲单元。(2)链接参数链接又称组合,链接参数通知链接程序如何将不同模块中的同名逻辑段组合成一个段①PUBL
7、IC:通知链接程序,把不同模块中具有PUBLIC属性的同名段,在满足定位方式前提下,按照指定的链接顺序进行链接,组成一个逻辑段;②MEMORY:实验证明MEMORY属性和PUBLIC属性是等价的;③COMMON:通知链接程序,把不同模块中,具有COMMON属性的同名段,根据指定的链接顺序,按照“覆盖”方式组合成一个逻辑段。组合之后的逻辑段体积,等于链接之前具有COMMON属性同名段中最大的段体;④STACK:具有STACK属性的逻辑段是堆栈段,链接程序将把不同模块中具有STACK属性的同名段链接成一个大的堆栈段。链接后的堆栈空间是链接前各模块预留的堆栈空间之和。
8、程序装入后,DOS自动给