汇编语言程序设计第5章基本程序设计备课讲稿

上传人:youn****329 文档编号:238787586 上传时间:2022-01-12 格式:PPT 页数:29 大小:559KB
返回 下载 相关 举报
汇编语言程序设计第5章基本程序设计备课讲稿_第1页
第1页 / 共29页
汇编语言程序设计第5章基本程序设计备课讲稿_第2页
第2页 / 共29页
汇编语言程序设计第5章基本程序设计备课讲稿_第3页
第3页 / 共29页
汇编语言程序设计第5章基本程序设计备课讲稿_第4页
第4页 / 共29页
汇编语言程序设计第5章基本程序设计备课讲稿_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《汇编语言程序设计第5章基本程序设计备课讲稿》由会员分享,可在线阅读,更多相关《汇编语言程序设计第5章基本程序设计备课讲稿(29页珍藏版)》请在金锄头文库上搜索。

1、 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学8086/8088和ARM核汇编语言程序设计第第5 5章章 基本程序设计基本程序设计 第十三讲第十三讲Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计第第5 5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学 掌握基本的顺序程序设计方法 熟悉查表法程序设计教学要求Date 网络工程系 汇编语言程序设

2、计汇编语言程序设计安徽工业大学 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学一般说来,编制一个汇编语言程序需要完成以下步骤:(1) 分析题意,建立数学模型,确定数据结构及算法。这一步是能否编制出高质量程序的关键,因此不应该一拿到题目就急于写程序,而是应该仔细地分析和理解题意,找出合理的算法及适当的数据结构。(2) 根据算法画出程序流程图。这一步对初学者尤其重要,这样做可以减少出错的可能性。画流程图时可以从粗到细把算法逐步地具体化。(3) 根据算法及数据结构分配内存单元和寄存器。(4) 根据程序流程图,编写汇编语言源程序。(5) 使用汇编程序调试工具上机调试程序。 5.1.1编写汇编

3、语言程序的步骤5.1 5.1 程序设计方法概述程序设计方法概述 Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1.2判断程序质量的标准5.1 5.1 程序设计方法概述程序设计方法概述 一个良好的程序应符合以下标准:(1)程序可读性强。(2)程序执行的时间短(效率高)。(3)程序所占用的内存少。(4)程序的语句行数少。Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1.3汇编语言程序的开发过程5.1 5.1 程序设计方法概述程序设计方法概述 一般来说,开发汇编语言程序有以下面5个步骤:(1)设计(2)编辑(3)汇编(4)连接(5)调试Date 网络工

4、程系 汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3汇编语言程序的开发过程 5.1 5.1 程序设计方法概述程序设计方法概述 (1 1)设计)设计 根据所需完成的任务要求、设计程序结构,确定应用算法,并按使用的寄存器从程序段、数据段和堆栈段制定内并按使用的寄存器从程序段、数据段和堆栈段制定内存分配方案,存分配方案,画出程序流程图。 Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3汇编语言程序的开发过程 5.1 5.1 程序设计方法概述程序设计方法概述 (2 2)编辑)编辑 根据设计方案及程序流程图创建汇编语言源程序。该源程序是按照汇编语言语法规则编写的文

5、本文件,定义为后缀是.ASM的文件。它由程序员通过文本编辑器来完成。文本编文本编辑器是任何流行的字处理器或编辑器,只要它们可以产生纯辑器是任何流行的字处理器或编辑器,只要它们可以产生纯ASCIIASCII码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。 DOS下常用的有Edit、PE2等。 Windows下常用的有Word等,但文件存储格式必须为(.TXT)文本格式,且扩展名必须为.ASM。Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3汇编语言程序的开发过程 5.1 5.1 程序设计方法概述程序设计方法概述 (3 3)汇编)汇

6、编 汇编是指将汇编语言编写的程序翻译成机器代码组成的汇编是指将汇编语言编写的程序翻译成机器代码组成的目标程序的过程。目标程序的过程。自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,又称为汇编器。又称为汇编器。自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,它是后缀为它是后缀为.OBJ.OBJ的文件。的文件。在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数类型不匹配等。类型不匹配等。一旦发现错误,汇编程序会提示程序员对源程序加以修改,并重新汇编。

7、 汇编程序主要包括以下几方面的功能: 检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。 产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。 支持地址和数据的符号变量表。支持地址和数据的符号变量表。 支持对内存的管理。支持对内存的管理。 支持多种类型的数据表示。支持多种类型的数据表示。 支持程序的模块化组织。支持程序的模块化组织。 DOS下常用的汇编程序有MASMMASM、TASMTASM等。 。 Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3汇编语言程序的开发过程 5.1 5.1 程序设计方法概述程序设计

8、方法概述 (4 4)连接)连接 DOS运行一个可执行程序时,先要在内存中为该程序开辟一块或几块存储空间,然后在此加载并运行该程序。该存储空间是由该存储空间是由系统当时的运行状态决定的,是不固定的,这就要求可执行程序系统当时的运行状态决定的,是不固定的,这就要求可执行程序是可重定位的,即它可以在内存的不同位置运行。是可重定位的,即它可以在内存的不同位置运行。汇编后生成的目标程序虽然加载了CPU可识别的机器代码,但它缺少系统所需要的重定位信息,所以并不能直接运行。目标程序必须经过连接目标程序必须经过连接程序的连接,生成附带重定位信息的可执行程序程序的连接,生成附带重定位信息的可执行程序( (后缀为

9、后缀为.COM.COM或或.EXE.EXE的文件的文件) )才能运行。才能运行。 连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。这样就可以将一个程序的几部分分别编写,汇编成几个目标模块,再通过连接程序将几个目标模块连接,生成一个完整的运行模块。 连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源

10、程序中的连接错误,如段的溢出或覆盖、匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。 DOS DOS下常用的连接程序有下常用的连接程序有LinkLink、TlinkTlink等。等。 Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3汇编语言程序的开发过程 5.1 5.1 程序设计方法概述程序设计方法概述 (5 5)调试)调试 完成设计、编辑、汇编、连接后得到的可执行目标程序中可能存在一些错误,这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至其他无法预测的后果。这类错误被称为逻辑错误,它们是汇编程序和

11、连接程序都无法发现的。这类错误只能靠程序员这类错误只能靠程序员凭借调试程序和经验对可执行程序进耐心细致的跟踪调试凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,才能逐一排除。,才能逐一排除。 DOS下常用的调试程序有Debug、Tdebug等。Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1.4完整的汇编语言程序框架5.1 5.1 程序设计方法概述程序设计方法概述 源程序的一般格式为: NAME1 SEGMENTNAME1 SEGMENT标号: 汇编语言语句序列 ;标号指示程序入口 NAME1 ENDSNAME1 ENDS NAME2 SEGMENTNAME2 SE

12、GMENT标号: 汇编语言语句序列 NAME2 ENDSNAME2 ENDS END END 程序起始地址标号程序起始地址标号Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1.4完整的汇编语言程序框架5.1 5.1 程序设计方法概述程序设计方法概述 STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK ;定义堆栈段;定义堆栈段 DB 1024 DUP (?) DB 1024 DUP (?)STACK ENDSSTACK ENDSDATA SEGMENT PARA DATA DATA SEGMENT P

13、ARA DATA ;定义数据段;定义数据段 HELLO DB Welcome to BEIJING! , 0dh HELLO DB Welcome to BEIJING! , 0dh,0ah0ah,$DATA ENDSDATA ENDSCODE SEGMENT PARA CODE CODE SEGMENT PARA CODE ;定义代码段;定义代码段 ASSUME CS ASSUME CS:CODE, DSCODE, DS:DATADATA,ESES:DATADATA,SS: STACKSS: STACK MAIN PROC FAR MAIN PROC FAR START: START: PU

14、SH DS PUSH DS XOR AX, AX XOR AX, AX PUSH AX PUSH AX MOV AX, DATA MOV AX, DATA MOV DS, AXMOV DS, AX LEA DX, HELLO LEA DX, HELLO MOV AH, 9 MOV AH, 9 INT 21H INT 21H RET RET MAIN ENDP MAIN ENDPCODE ENDSCODE ENDS END STARTEND START 以下是一个例子,说明8086/8088汇编语言的基本框架结构。该程序在屏幕上显示一句问候语:“Welcome to BEIJING!”。Date

15、 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.3 5.3 结构化程序设计结构化程序设计第第5 5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.2.1流程图的功能及意义5.25.2流程图流程图流程图是程序员进行程序设计的工具。 画流程图是在确定算法之后编写程序之前、其目的是准确地表示算法,因此流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是物理的。物理的。无论在哪种机器上使用哪种语言,同一个问

16、题的同一个算法的流程图应当是唯一的。 Date 网络工程系 汇编语言程序设计汇编语言程序设计安徽工业大学5.2.2流程图的画法规定 5.25.2流程图流程图开始处 理判断?端点框端点框:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、“开始开始”、“结束结束”、“返回返回”等。等。处理框处理框:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。 判断框判断框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,分别执行不同的处理。分别执行不同的处理。衔接框衔接框:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。流向线流向线:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各框

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号