欢迎来到天天文库
浏览记录
ID:48155278
大小:150.00 KB
页数:84页
时间:2020-01-17
《汇编语言源程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§5.4汇编语言源程序掌握:汇编语言与汇编程序的概念;汇编语言程序设计过程;汇编语言源程序的结构框架;常用伪指令及基本DOS功能模块的应用。1一、80X86新增指令特点:增加对32位字长操作的指令;加强各类指令功能;增加了高级语言、控制保护、Cache管理等指令。2二、汇编语言及汇编程序计算机语言:机器语言汇编语言高级语言面向机器的语言机器语言汇编语言高级语言3汇编语言及汇编程序汇编语言源程序用助记符编写的程序源程序的编译程序汇编程序汇编语言源程序机器语言目标程序4汇编语言程序设计与执行过程输入汇编语言源程序源文件.ASM汇编(编译)目标文件.OBJ链接可
2、执行文件.EXE调试最终程序5汇编语言的程序结构一个源程序必须用其编译器能够理解的语法进行编写,这些语法是指语句和程序结构必须遵循的规则。汇编语言也是如此。首先,通过以下可在PCDOS环境下运行的汇编语言源程序实例,初步认识标准的汇编语言源程序的框架结构,并通过它来了解汇编语言的有关规定和格式。6例:打印输出字符串“THISISASAMPLEPROGRAM”;SAMPLEPROGRAMDISPLAYMESSAGE;注释行STACKSEGMENTPARASTACK’STACK’;定义堆栈段DB1024DUP(0);在存储器建立一个堆栈区STACKENDS;段
3、结束DATASEGMENT;定义数据段MESSAGEDB’THISISASAMPLEPROGRAM’;存放数据DB0DH,0AH,’$’DATAENDS;段结束CODESEGMENT;代码段开始ASSUMECS:CODE,DS:DATA,SS:STACK;将段名与段寄器联系起来7STARTPROCFAR;将过程定义为远过程PUSHDSMOVAX,0PUSHAXMOVAX,DATA;建立数据段的可寻址性MOVDS,AX;初始化DSLEABX,MESSAGELOOP1:CMPBYTEPTR[BX],’$’JELOOP2MOVAH,5标准序,以便返回DOS操作系
4、统8MOVDL,[BX]INT21HINCBXJMPLOOP1LOOP2:RETSTARTENDP;过程结束CODEENDS;代码段结束ENDSTART;整个程序汇编结束9汇编源程序的特点一、由若干逻辑段组成,各逻辑段都有一个段名,由段定义语句(伪指令)来定义和说明。通常只有代码段是必不可少的。数据段或附加段用来在内存中建立一个适当容量的工作区用以存放常量和变量。堆栈段则在内存中建立一个堆栈区,以便中断和子程序调用及各模块间传递参数时使用。某些简单的程序并不一定需要数据段和堆栈段,但对一些复杂的程序,堆栈段、数据段和代码段都可以不止一个。通常把数据段放在代
5、码段前面。10汇编源程序的特点(续)二、在代码段的起始处,用ASSUME命令说明各个段寄存器与逻辑段的关系。并由用户自己设置各段寄存器(除代码段外)初值,以建立这些逻辑段的可寻址性。三、每个逻辑段由若干行汇编语句组成,每行只有一条语句且不能超过128个字符,但一条语句允许有后续行,最后均以加车作结束。整个源程序必须以END语句来结束,它通知汇编程序停止汇编。END后面的标号START表示该程序执行时的起始地址。11汇编源程序的特点(续)四、每一条汇编语句最多由4个字段组成,它们均按照一定的规则分别写在一条语句的4个区域,各区域之间用空格或TAB键隔开。五、
6、每个源程序在代码段中都必须含有返回到DOS操作系统的指令语句,以保证程序执行完毕后能自动回到DOS状态,以便继续向计算机键入命令。12源程序与PCDOS的接口为保证用户程序执行完后自动返回DOS,应采取两项措施:一是将用程序中的主程序定义为FAR过程,其最后一条指令为RET;二是在主程序的开始处将PSP所在段的段地址DS(或ES)保存进栈,然后再将一个全0的字(PSP的段内偏移地址)压入堆栈。PUSHDSMOVAX,0PUSHAX13源程序与PCDOS的接口(续)还有一种返回DOS的非标准方法:不定义主程序为FAR过程并去掉标准序部分,只在代码段结束之前(
7、即CODEENDS之前)增加两句:MOVAH,4CHINT21H14汇编语言的语句格式语句是汇编语言源程序的基本组成单位,源程序是一个语句序列。语句序列中的每个语句规定了一个基本操作要求,而语句序列则完成某个特定的操作任务。15语句的种类在80X86/Pentium汇编语言中,有三种基本语句:指令语句、伪指令语句和宏指令语句。指令语句:对应于CPU指令系统中的一条指令,为可执行语句。汇编程序将为之产生一对应的机器目标代码。如:指令语句MOVDS,AX;机器代码为8EH和D8H16语句的种类(续)伪指令语句CPU不执行的语句,只是汇编时给汇编程序提供汇编信息
8、,如定义符号、分配存储单元、将程序分段等。它本身不产生目标代码,所
此文档下载收益归作者所有