第4章汇编语言程序设计.ppt
《第4章汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章汇编语言程序设计.ppt(51页珍藏版)》请在三一文库上搜索。
1、第4章 汇编语言程序设计,本章要点: 汇编语言程序设计基础 源程序的汇编、连接与调试 分支程序设计技术 循环程序设计技术 子程序设计技术 综合程序设计示例,本教案内容,第4章 汇编语言程序设计 汇编语言程序设计基础 源程序的汇编、连接与调试 分支程序设计技术 循环程序设计技术 子程序设计技术 综合程序设计示例,汇编语言程序设计,算法,所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。,若题目涉及到某种运算,则必须写出适合程序设计的正确算法,若题目要完成的功能未涉及到运
2、算,也要写出编程思想。,汇编语言程序设计,设计流程,将提出的算法或编程思想用流程图的方式画出来。图4.1给出了流程图中较为通用的几种符号。,汇编语言程序设计,起始和终止框,执行框,判断框,连接框,汇编语言程序设计,图4.1 流程图符号,根据流程图编写程序,编写程序是采用程序设计语言来实现上面已确定的算法,此过程有些书上称为编码。本书所介绍的是采用汇编语言编写程序。采用汇编语言编写程序应注意以下几个问题:,汇编语言程序设计,(1)必须详细了解CPU的编程模型、指令系统、寻址方式及相关伪指令;,(2)必须进行存储空间和工作单元的合理分配;,(3)多次使用的程序段可采用子程序或宏指令;,(4)尽可能
3、用标号或变量来代替绝对地址和常数;,汇编语言程序设计,程序的检验,程序编写好以后,必须经过书面检查和上机调试,以便说明程序是否正确。检验时,应预先选择典型数据,检查是否可以得到预期结果。,汇编语言程序设计,编写说明文件,一个完整的软件应有相应的说明文件,这不仅便于用户使用,也便于对程序的维护和扩充。说明文件主要应包括程序的功能和使用方法,程序的基本结构和所采用的主要算法以及程序必要说明和注意事项等。,汇编语言程序设计,我们知道,8086/8088 CPU的地址空间是分段结构的,程序中出现的数据与代码以及程序中用到的堆栈都必须纳入某个段中。那么,如何告诉汇编程序,源程序中的哪些内容属于数据段,哪
4、些属于代码段呢?这自然是由汇编系统中提供的伪指令来实现的。下面我们首先介绍构成完整程序的有关伪指令。,汇编语言程序设计基础,汇编语言源程序的完整结构,STACK SEGMENT STACK DB 256 DUP(?) TOP LABEL WORD STACK ENDS DATA1 SEGMENT DATA1 ENDS,用DB、DW等伪指令定义的段的实体,汇编语言程序设计基础,DATA2 SEGMENT DATA2 ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA1 ASSUME ES:DATA2 , SS:STACK START: MOV AX , DATA
5、1 MOV DS , AX ;DS初始化 MOV AX , DATA2 MOV ES , AX ;ES初始化,用DB、DW等伪指令定义的段的实体,汇编语言程序设计基础,MOV AX , STACK MOV SS , AX ;SS初始化 MOV SP , OFFSET TOP MOV AH,4CH INT 21H ;程序结束,返回DOS操作系统 CODE ENDS ;代码段定义结束 END START ;整个程序结束,.,用指令语句编写的完成某一功能的程序体。,汇编语言程序设计基础,1.段定义伪指令,格式: 段名 SEGMENT 定位类型组合类型类型 ;段定义开始伪指令 指令语句或伪指令语句组成
6、的段的实体 段名 ENDS ;段定义结束伪指令,汇编语言程序设计基础,段名: 段名是所定义的段的名称,其构 成规则与语句的名称一样。,段名一但定义,就具备了以下5个属性。,汇编语言程序设计基础,其中,格式中的定位类型、组合类型和类别外面的方括号不是语法符号,它表示该项是可以省略的。,汇编语言程序设计基础,在段定义时,SEGMENT与ENDS必 须成对出现。,SEGMENT与ENDS左边的段名必须一致。,汇编语言程序设计基础,定位类型: 告诉汇编程序(MASM.EXE)对 该段汇编时,该段的起始边界的要 求。其类型有PAGE、PARA、WORD、 BYTE四种。这四种类型的边界地址 的要求如下:
7、,汇编语言程序设计基础,PAGE=XXXX XXXX XXXX 0000 0000 PARA=XXXX XXXX XXXX XXXX 0000 (缺省型) WORD=XXXX XXXX XXXX XXXX XXX0 BYTE=XXXX XXXX XXXX XXXX XXXX,即它们的边界地址(20位地址)应分别可以被256、16、2、1除尽,分别称为以页、节、字、字节为边界。,汇编语言程序设计基础,在实际应用中,每个段的定位类型常选PARA(节)型。因为若选PAGE(页)型,将会使相邻的段间有较大空间的浪费;而选WORD或BYTE型,又很难做到使一个段的偏移地址从0000H开始。,汇编语言程序
8、设计基础,组合类型: 告诉连接程序(LINK.EXE)在进行多模块目标程序连接时,该段与其它段连接的有关信息,如本段与其它段是否组合为同一段;组合后,本段信息与其他段信息的关系如何等。组合类型有以下6种不同的类型:,汇编语言程序设计基础,NONE型:表示本段与不同模块中的其它段在逻辑上不发生关系。连接后各模块中的各段都有自己的段地址(也称基地址)。,STACK型:组合后的这个段用作堆栈。当段定义中指明了STACK类型后,说明堆栈段已经确定,所以,在可执行文件装入内存后段寄存器SS中已是该段的段地址,堆栈指针SP已指向堆栈底。,汇编语言程序设计基础,PUBLIC型,COMMON型,AT表达式型,
9、MEMORY型,汇编语言程序设计基础,类别: 类别可以使任何一个合法的名称,但必须用单引号括起来。在多模块程序设计中,连接时,将把不同模块中相同类别的各段在物理上相邻地连接在一起,其顺序亦与LINK时提供的各模块顺序一致。当类别相同的各段的段名不同时,它们连接后虽在同一物理段内,但,汇编语言程序设计基础,它们仍不属于同一段,也就是它们的段基址不相同。这样做的一个好处是便于程序的固化。在编程时,它们都是独立的代码段,各段有各自的段基址,但连接后,他们却在同一物理段,从而可以固化在一起。,在单模块程序设计中,类别可有可无。若有,它只是告知程序阅读者本段信息的含义。,汇编语言程序设计基础,2.汇编语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 语言程序设计
链接地址:https://www.31doc.com/p-3025439.html