欢迎来到天天文库
浏览记录
ID:46314663
大小:76.00 KB
页数:11页
时间:2019-11-22
《第4.1章 汇编语言源程序的格式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章汇编语言程序设计p64返回目录4.1汇编语言功能4.2伪(操作)指令4.3汇编语言程序格式4.4汇编语言程序的上机过程4.5DOS系统功能调用习题第一节汇编语言源程序的格式p641机器语言与目标程序计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。用机器语言编写的程序是计算机唯一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。2汇编语言为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量、标号等
2、代替操作数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。3汇编语言源程序与汇编程序用汇编语言编写的程序称为汇编语言源程序。汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序(ASM86汇编程序)。4汇编程序(ASM86汇编程序)的功能1)检查源程序,测出源程序的语法错误,并给出出错信息。2)产生源程序的目标文件,并可给出列
3、表文件.LST。3)展开宏指令。5汇编语言源程序生成目标程序的处理过程返回本章首页编辑:生成.ASM文件(用TC.EXE)汇编:生成.OBJ文件(用ASM86.EXE)连接:生成.EXE文件(用LINK.EXE)执行(调试)(用DEBUG)STACKSEGMENTPARASTACK’STACK’;定义堆栈段STADB256DUP(0)TOPEQULENGTHSTASTACKENDSDATASEGMENTPARAPUBLIC’DATA’;定义数据段SUMDB?DATAENDSCODESEGMENTPARAPUBLIC‘CODE’;定义代码段ASSUMECS:COD
4、E,DS:DATA,SS:STACKPORT1EQU3:给端口符号名PORT2EQU5GO:MOVAX,DATAMOVDS,AX;初始化DSMOVAX,STACKMOVSS,AX;初始化SSMOVAX,TOPMOVSP,AX;初始化SPMOVSUM,0;清零CYCLE:CMPSUM,100;[SUM]单元与100比较JNADONE;[SUM]≤100,转DONEMOVAL,SUM;[SUM]>100时OUTPORT1,AL;[SUM]单元内容输出HLTDONE:INAL,PORT2;输入一个字节ADDSUM,AL;累加JMPCYCLE;无条件转CYCLECODE
5、ENDSENDGO段的结构由上述例子可以看到,8086汇编语言源程序是分段的,是由若干个段组成的。从性质上看,可分成代码段、数据段、堆栈段、附加段四种。在源程序中各段的顺序可以任意,段的数目可根据需要确定,原则上不受限制。段的结构是:段名SEGMENT语句行┇语句行段名ENDS而且每一个段要有一个名子,以SEGMENT开始,ENDS结束,SEGMENT和ENDS要有相同的名子。8086汇编语言源程序的两种类型语句:(1)伪指令语句(指示性语句)名子定义符操作数;注释(2)指令性语句标号:助记符操作数;注释两种类型语句书写上不同,名子后面不能有冒号,标号后面有冒号
6、(:)。另外,这两种语句性质完全不同,指令性语句对应着机器的一种操作,汇编时产生目标代码,而伪指令语句只为汇编程序提供汇编信息,本身不产生目标代码。END语句整个汇编语言源程序必须有END语句来结束,汇编到此停止。END后面的标号,表示该程序执行时的启动地址。上述源程序是一个独立的汇编单位,称为一个模块,有些程序由几个不同功能的模块组成,把它门分别汇编后,再用链接程序组成在一起,形成一个可执行程序。这时只允许主模块后带启动地址,其他模块不允许带启动地址。
此文档下载收益归作者所有