汇编语言程序设计第5章基本程序设计.ppt

上传人:wuy****n92 文档编号:77651981 上传时间:2023-03-16 格式:PPT 页数:29 大小:149KB
返回 下载 相关 举报
汇编语言程序设计第5章基本程序设计.ppt_第1页
第1页 / 共29页
汇编语言程序设计第5章基本程序设计.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《汇编语言程序设计第5章基本程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第5章基本程序设计.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学8086/80888086/8088和和ARMARM核核汇编语言程序设计汇编语言程序设计第第5 5章章 基本程序设计基本程序设计 第十三讲第十三讲第十三讲第十三讲10/27/20221 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计10

2、/27/20222 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学掌握基本的顺序程序设计方法掌握基本的顺序程序设计方法熟悉熟悉查表法查表法程序设计程序设计教学要求教学要求10/27/20223 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言同汇编语言同BASICBASIC或或C C等高级语言一样,都是一些语句和指等高级语言一样,都是一些语句和指令的集合,这些语句决定计算机将做什么,它们的不同之处在令的集合,这些语句决定计算机将做什么,它们的不同之处在于如何指示计算机完成相应的任务。

3、于如何指示计算机完成相应的任务。高级语言给出一般性命令,高级语言给出一般性命令,高级语言给出一般性命令,高级语言给出一般性命令,而汇编语言给出具体的命令。而汇编语言给出具体的命令。而汇编语言给出具体的命令。而汇编语言给出具体的命令。汇编语言指令集中的语句直接涉汇编语言指令集中的语句直接涉汇编语言指令集中的语句直接涉汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接对及到计算机的硬件部分,提供给计算机更详细的命令,直接对及到计算机的硬件部分,提供给计算机更详细的命令,直接对及到计算机的硬件部分,提供给计算机更详细的命令,直接对硬件进行操作,硬件进行操作,硬件进行操作

4、,硬件进行操作,如如“置置3232于于AXAX寄存器中寄存器中”,“将将CLCL寄存器的寄存器的内容传送到内容传送到DLDL寄存器中寄存器中”,“存储存储DLDL寄存器中数到内存寄存器中数到内存34563456地址处地址处”等。等。5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 使用汇编语言是在计算机能够理解的基础上编写程序,但使用汇编语言是在计算机能够理解的基础上编写程序,但又不必死记机器代码。采用像英文缩写一样的指令,然后运又不必死记机器代码。采用像英文缩写一样的指令,然后运行汇编程序(将汇编语言编写的程序翻译成机器代码)将它行汇编程序(将

5、汇编语言编写的程序翻译成机器代码)将它们转化为机器代码。们转化为机器代码。用汇编指令写的程序称为汇编语言源程用汇编指令写的程序称为汇编语言源程用汇编指令写的程序称为汇编语言源程用汇编指令写的程序称为汇编语言源程序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。10/27/20224 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学一般说来,编制一个汇编语言程序需要完成以下步骤:一般说来,编制一个汇编语言程序需要完

6、成以下步骤:(1)(1)分析题意分析题意,建立数学模型,建立数学模型,确定确定数据结构及数据结构及算法算法。这。这一步是能否编制出高质量程序的关键,因此不应该一拿到题目一步是能否编制出高质量程序的关键,因此不应该一拿到题目就急于写程序,而是应该仔细地分析和理解题意,找出合理的就急于写程序,而是应该仔细地分析和理解题意,找出合理的算法及适当的数据结构。算法及适当的数据结构。(2)(2)根据算法画出程序流程图根据算法画出程序流程图。这一步对初学者尤其重。这一步对初学者尤其重要,这样做可以减少出错的可能性。画流程图时可以从粗到细要,这样做可以减少出错的可能性。画流程图时可以从粗到细把算法逐步地具体化

7、。把算法逐步地具体化。(3)(3)根据算法及数据结构分配内存单元和寄存器。根据算法及数据结构分配内存单元和寄存器。(4)(4)根据程序流程图根据程序流程图,编写汇编语言源程序编写汇编语言源程序。(5)(5)使用汇编程序调试工具使用汇编程序调试工具上机调试程序上机调试程序。编写汇编语言程序的步骤编写汇编语言程序的步骤5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 10/27/20225 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学判断程序质量的标准判断程序质量的标准5.1 5.1 5.1 5.

8、1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一个良好的程序应符合以下标准:一个良好的程序应符合以下标准:(1 1)程序可读性强。程序可读性强。(2 2)程序执行的时间短(效率高)。程序执行的时间短(效率高)。(3 3)程序所占用的内存少。程序所占用的内存少。(4 4)程序的语句行数少。程序的语句行数少。10/27/20226 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学汇编语言程序的开发过程汇编语言程序的开发过程5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一般来

9、说,开发汇编语言程序有以下面一般来说,开发汇编语言程序有以下面5 5个步骤:个步骤:(1 1)设计)设计(2 2)编辑)编辑(3 3)汇编)汇编(4 4)连接)连接(5 5)调试)调试10/27/20227 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(1 1 1 1)设计)设计)设计)设计 根据所需完成的任务要求、设计程序结构,确定应用算根据所需完成的任务要求、设计程序结构,确定应用算法,法,并按

10、使用的寄存器从程序段、数据段和堆栈段制定内并按使用的寄存器从程序段、数据段和堆栈段制定内并按使用的寄存器从程序段、数据段和堆栈段制定内并按使用的寄存器从程序段、数据段和堆栈段制定内存分配方案,存分配方案,存分配方案,存分配方案,画出程序流程图。画出程序流程图。10/27/20228 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(2 2 2 2)编辑)编辑)编辑)编辑 根据设计方案及程序流程图创建汇编

11、语言源程序。该源程根据设计方案及程序流程图创建汇编语言源程序。该源程序是按照汇编语言语法规则编写的文本文件,定义为后缀是序是按照汇编语言语法规则编写的文本文件,定义为后缀是.ASM.ASM的文件。它由程序员通过文本编辑器来完成。的文件。它由程序员通过文本编辑器来完成。文本编辑文本编辑文本编辑文本编辑器是任何流行的字处理器或编辑器,只要它们可以产生纯器是任何流行的字处理器或编辑器,只要它们可以产生纯器是任何流行的字处理器或编辑器,只要它们可以产生纯器是任何流行的字处理器或编辑器,只要它们可以产生纯ASCIIASCIIASCIIASCII码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有

12、任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。DOS DOS下常用的有下常用的有EditEdit、PE2PE2等。等。Windows Windows下常用的有下常用的有WordWord等,但文件存储格式必须为等,但文件存储格式必须为(.TXT.TXT)文本格式,且扩展名必须为)文本格式,且扩展名必须为.ASM.ASM。10/27/20229 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述

13、程序设计方法概述程序设计方法概述程序设计方法概述(3 3 3 3)汇编)汇编)汇编)汇编 汇编是指将汇编语言编写的程序翻译成机器代码组成的汇编是指将汇编语言编写的程序翻译成机器代码组成的汇编是指将汇编语言编写的程序翻译成机器代码组成的汇编是指将汇编语言编写的程序翻译成机器代码组成的目标程序的过程。目标程序的过程。目标程序的过程。目标程序的过程。自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,又称为汇编器。又称为汇编器。又称为汇编器。又称为汇编器。自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可

14、以理解的,自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,它是后缀为它是后缀为它是后缀为它是后缀为.OBJ.OBJ.OBJ.OBJ的文件。的文件。的文件。的文件。在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数类型不匹配等。类型不匹配等。类型不匹配等。类型不匹配等。一旦发现错误,汇编程序会提示程序员对一旦发现错

15、误,汇编程序会提示程序员对源程序加以修改,并重新汇编。源程序加以修改,并重新汇编。汇编程序主要包括以下几方面的功能:汇编程序主要包括以下几方面的功能:检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持对内存的管理。支持对内

16、存的管理。支持对内存的管理。支持对内存的管理。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。DOS DOS下常用的汇编程序有下常用的汇编程序有MASMMASMMASMMASM、TASMTASMTASMTASM等。等。10/27/202210 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方

17、法概述程序设计方法概述(4 4 4 4)连接)连接)连接)连接 DOS DOS运行一个可执行程序时,先要在内存中为该程序开辟一块运行一个可执行程序时,先要在内存中为该程序开辟一块或几块存储空间,然后在此加载并运行该程序。或几块存储空间,然后在此加载并运行该程序。该存储空间是由该存储空间是由该存储空间是由该存储空间是由系统当时的运行状态决定的,是不固定的,这就要求可执行程序系统当时的运行状态决定的,是不固定的,这就要求可执行程序系统当时的运行状态决定的,是不固定的,这就要求可执行程序系统当时的运行状态决定的,是不固定的,这就要求可执行程序是可重定位的,即它可以在内存的不同位置运行。是可重定位的,

18、即它可以在内存的不同位置运行。是可重定位的,即它可以在内存的不同位置运行。是可重定位的,即它可以在内存的不同位置运行。汇编后生成的汇编后生成的目标程序虽然加载了目标程序虽然加载了CPUCPU可识别的机器代码,但它缺少系统所需可识别的机器代码,但它缺少系统所需要的重定位信息,所以并不能直接运行。要的重定位信息,所以并不能直接运行。目标程序必须经过连接目标程序必须经过连接目标程序必须经过连接目标程序必须经过连接程序的连接,生成附带重定位信息的可执行程序程序的连接,生成附带重定位信息的可执行程序程序的连接,生成附带重定位信息的可执行程序程序的连接,生成附带重定位信息的可执行程序(后缀为后缀为后缀为后

19、缀为.COM.COM.COM.COM或或或或.EXE.EXE.EXE.EXE的文件的文件的文件的文件)才能运行。才能运行。才能运行。才能运行。连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标模块连接成一个可执

20、行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。这这样就可以将样就可以将一一个程序的几部分分别编写,汇编成几个目标模块,个程序的几部分分别编写,汇编成几个目标模块,再通过连接程序将几个目标模块连接,生成一个完整的运行模块。再通过连接程序将几个目标模块连接,生成一个完整的运行模块。连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序

21、可以发现源程序中的连接错误,如段的溢出或覆盖、匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。DOS DOS DOS DOS下常用的连接程序有下常用的连接程序有下常用的连接程序有下常用的连接程序有LinkLinkLinkLink、TlinkTlinkTlinkTlink等。等。等。等。10/27/202211 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1

22、 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(5 5 5 5)调试)调试)调试)调试 完成设计、编辑、汇编、连接后得到的可执行目标程序完成设计、编辑、汇编、连接后得到的可执行目标程序中可能存在一些错误,这些错误可能是设计缺陷或编辑时中可能存在一些错误,这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至其的笔误,它们可能使程序运行出现结果错误、死机甚至其他无法预测的后果。这类错误被称为他无法预测的后果。这类错误被称为逻辑错误,它们是汇逻辑错误,它们是汇编程序和连接程序都无法发现的。编程序和连接程序都无法发现的。这类错误只能靠程序员这类错误

23、只能靠程序员这类错误只能靠程序员这类错误只能靠程序员凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,才能逐一排除。才能逐一排除。才能逐一排除。才能逐一排除。DOS DOS下常用的调试程序有下常用的调试程序有DebugDebug、TdebugTdebug等。等。10/27/202212 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.

24、1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 源程序的一般格式为:源程序的一般格式为:NAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 ;标号指示程序入口;标号指示程序入口 NAME1 ENDSNAME1 ENDSNAME1 ENDSNAME1 ENDS NAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 NAME2 ENDSNAME2 ENDSNAME2

25、 ENDSNAME2 ENDS END END END END 程序起始地址标号程序起始地址标号程序起始地址标号程序起始地址标号10/27/202213 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK STACK SEGM

26、ENT PARA STACK STACK ;定义堆栈段;定义堆栈段;定义堆栈段;定义堆栈段 DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)STACK ENDSSTACK ENDSSTACK ENDSSTACK ENDSDATA SEGMENT PARA DATA DATA SEGMENT PARA DATA DATA SEGMENT PARA DATA DATA SEGMENT PARA DATA ;定义数据段;定义数据段;定义数据段;定义数据段 HELLO DB Welcome to BEIJING!,0dh HELLO DB

27、 Welcome to BEIJING!,0dh HELLO DB Welcome to BEIJING!,0dh HELLO DB Welcome to BEIJING!,0dh,0ah0ah0ah0ah,$DATA ENDSDATA ENDSDATA ENDSDATA ENDSCODE SEGMENT PARA CODE CODE SEGMENT PARA CODE CODE SEGMENT PARA CODE CODE SEGMENT PARA CODE ;定义代码段;定义代码段;定义代码段;定义代码段 ASSUME CS ASSUME CS ASSUME CS ASSUME CS:CO

28、DE,DSCODE,DSCODE,DSCODE,DS:DATADATADATADATA,ESESESES:DATADATADATADATA,SS:STACKSS:STACKSS:STACKSS:STACK MAIN PROC FAR MAIN PROC FAR MAIN PROC FAR MAIN PROC FAR START:START:START:START:PUSH DS PUSH DS PUSH DS PUSH DS XOR AX,AX XOR AX,AX XOR AX,AX XOR AX,AX PUSH AX PUSH AX PUSH AX PUSH AX MOV AX,DATA M

29、OV AX,DATA MOV AX,DATA MOV AX,DATA MOV DS,AXMOV DS,AXMOV DS,AXMOV DS,AX LEA DX,HELLO LEA DX,HELLO LEA DX,HELLO LEA DX,HELLO MOV AH,9 MOV AH,9 MOV AH,9 MOV AH,9 INT 21H INT 21H INT 21H INT 21H RET RET RET RET MAIN ENDP MAIN ENDP MAIN ENDP MAIN ENDPCODE ENDSCODE ENDSCODE ENDSCODE ENDS END STARTEND STA

30、RTEND STARTEND START 以下是一个例子,说明以下是一个例子,说明8086/80888086/8088汇编语言的基本框架结构。该程序在屏汇编语言的基本框架结构。该程序在屏幕上显示一句问候语:幕上显示一句问候语:“Welcome to BEIJING!”“Welcome to BEIJING!”。10/27/202214 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设

31、计顺序结构的程序设计5.2 5.2 流程图流程图10/27/202215 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学流程图的功能及意义流程图的功能及意义流程图流程图流程图流程图流程图是程序员进行程序设计的工具。流程图是程序员进行程序设计的工具。画流程图是在确定算法之后编写程序之前、其目的画流程图是在确定算法之后编写程序之前、其目的是准确地表示算法,因此是准确地表示算法,因此流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是物理的。物理的。物理的。物理的。无论在哪种机器上使用哪种语言,同

32、一个问题无论在哪种机器上使用哪种语言,同一个问题的同一个算法的流程图应当是唯一的。的同一个算法的流程图应当是唯一的。10/27/202216 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学流程图的画法规定流程图的画法规定 流程图流程图流程图流程图开始开始处处 理理判断判断?端点框端点框端点框端点框:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、“

33、开始开始开始开始”、“结束结束结束结束”、“返回返回返回返回”等。等。等。等。处理框处理框处理框处理框:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。判断框判断框判断框判断框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否

34、,中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。衔接框衔接框衔接框衔接框:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一

35、起的。流向线流向线流向线流向线:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各框代表的工作的执行次序。框代表的工作的执行次序。框代表的工作的执行次序。框代表的工作的执行次序。10/27/202217 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计10/27

36、/202218 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.3 5.3 5.3 5.3 结构化程序设计结构化程序设计结构化程序设计结构化程序设计(1 1 1 1)三种程序构件)三种程序构件)三种程序构件)三种程序构件 10/27/202219 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学(2 2 2 2)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法结构化程序设计结构化程序设计结构化程序设计结构化程序设计 简言之,这是一种先全局后局部、先整体后细节、先

37、抽象简言之,这是一种先全局后局部、先整体后细节、先抽象后具体的自顶向下的设计方法。对于复杂的问题,我们不可后具体的自顶向下的设计方法。对于复杂的问题,我们不可能立刻精确地给出求解的详细步骤,但是可以从问题的描述能立刻精确地给出求解的详细步骤,但是可以从问题的描述开始,首先得到求解的大致步骤,并表示成三种基本结构之开始,首先得到求解的大致步骤,并表示成三种基本结构之一,然后再将上一结构中的处理框进一步分解、加细,仍然一,然后再将上一结构中的处理框进一步分解、加细,仍然代之以三种基本结构之一,如此继续直到最后的流程图已经代之以三种基本结构之一,如此继续直到最后的流程图已经细致到可以编程的程度为止。

38、细致到可以编程的程度为止。10/27/202220 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学结构化程序设计结构化程序设计结构化程序设计结构化程序设计(3 3 3 3)模块化设计方法)模块化设计方法)模块化设计方法)模块化设计方法 问题规模愈大,求解程序的尺寸也愈大,编写和排错问题规模愈大,求解程序的尺寸也愈大,编写和排错也就愈加困难。模块化设计主张,在解决一个规模较大的也就愈加困难。模块化设计主张,在解决一个规模较大的问题时,把求解程序按功能分成若干模块、每个模块有自问题时,把求解程序按功能分成若干模块、每个模块有自己的相对独立的功能,

39、尺寸较小,通常不超过一页(己的相对独立的功能,尺寸较小,通常不超过一页(6060多多行)。这里的行)。这里的模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。10/27/202221 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计5.4 5.4 顺序结构的程序设计顺序结构的程序设计10/27/202222 网络工程系

40、网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构顺序结构顺序结构顺序结构的程序从开始执行到结束,一的程序从开始执行到结束,一直是按指令序列在存储器中的存放顺序直是按指令序列在存储器中的存放顺序来执行指令的,来执行指令的,这个执行顺序由这个执行顺序由这个执行顺序由这个执行顺序由CSCSCSCS:IPIPIPIP提供的指令地址来控制。提供的指令地址来控制。提供的指令地址来控制。提供的指令地址来控制。在程序执行前,在程序执行前,系统将要执行的第一条指令的地址装入系统将要执行的第一条

41、指令的地址装入CSCS和和IPIP中,然后中,然后CPUCPU按按CSCS:IPIP中的地址中的地址从存储器取指令到指令队列准备执行,从存储器取指令到指令队列准备执行,同时修改同时修改IPIP内容指向下一条指令,本条内容指向下一条指令,本条指令执行结束,就接着执行下一条指令指令执行结束,就接着执行下一条指令这样逐条执行指令直到程序结束。这样逐条执行指令直到程序结束。顺序程序顺序程序顺序程序顺序程序的流程图除了起止框外,就是的流程图除了起止框外,就是一个接一个的处理框、无判断框一个接一个的处理框、无判断框一个接一个的处理框、无判断框一个接一个的处理框、无判断框,如图,如图5252所示。顺序程序一

42、般为简单程序,所示。顺序程序一般为简单程序,如计算表达式程序、查表程序。如计算表达式程序、查表程序。10/27/202223 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计设设X X、Y Y的值存放在字变量的值存放在字变量VARXVARX、VARYVARY中,结果存放在中,结果存放在VARZVARZ中。程序的流中。程序的流程图如图程图如图5252所示。源程序编写如下:所示。源程序编写如下:TITLE EQUATIONTITLE EQUATIONTITLE EQUATION

43、TITLE EQUATION COMPUTECOMPUTECOMPUTECOMPUTEDATA SEGMENTDATA SEGMENT VARX DW 15 VARX DW 15 VARY DW 10 VARY DW 10 VARZ DW?VARZ DW?DATA ENDSDATA ENDSSTACKl SEGMENT PARA STACKSTACKl SEGMENT PARA STACK DW 20H DUP(0)DW 20H DUP(0)STACK1 ENDSSTACK1 ENDS例例例例5.15.15.15.1 试编写一程序计算以下表达式:试编写一程序计算以下表达式:试编写一程序计算以下

44、表达式:试编写一程序计算以下表达式:Z Z Z Z(3X(3X(3X(3X十十十十Y Y Y Y5)5)5)5)2 2 2 210/27/202224 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计CODE SEGMENTCODE SEGMENTCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 ASSUME CS:CODE,DS:DATA,SS:STACK1COMP PROC FARCOMP PROC FA

45、RCOMP PROC FARCOMP PROC FARSTART:START:PUSH DS PUSH DS ;保护返回;保护返回DOSDOS地址地址 MOV AX,0 MOV AX,0 PUSH AX PUSH AX MOV AX,DATA MOV AX,DATA ;初始化;初始化DSDS MOV DS,AX MOV DS,AX MOV AX,VARX MOV AX,VARX ;AXXAXX SHL AX,1 SHL AX,1 ;AX2XAX2X ADD AX,VARX ADD AX,VARX ;AX3XAX3X ADD AX,VARY ADD AX,VARY ;AX3X+YAX3X+Y S

46、UB AX,5 SUB AX,5 ;AX3X+YAX3X+Y5 5 SAR AX,1 SAR AX,1 ;AX(3X+YAX(3X+Y5)/25)/2 MOV VARZ,AX MOV VARZ,AX ;存结果;存结果 RET RET ;返回;返回DOSDOSCOMP ENDPCOMP ENDPCOMP ENDPCOMP ENDPCODE ENDSCODE ENDSCODE ENDSCODE ENDS END END STARTSTARTSTARTSTART10/27/202225 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学顺序结构的程序设

47、计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计查表的结果放在变量查表的结果放在变量MATHMATH中。编写的源程序如下:中。编写的源程序如下:TITLE TABLE LOOKUPTITLE TABLE LOOKUPDATA SEGMENTDATA SEGMENTDATA SEGMENTDATA SEGMENT TABLE DB 81 TABLE DB 81,7878,9090,6464,8585,7676,9393,8282,5757,8080 DB 73 DB 73,6262,8787,7777,74748686,9595,9191,8282,7171 NUM DB 8 NUM D

48、B 8 MATH DB?MATH DB?DATA ENDSDATA ENDSDATA ENDSDATA ENDSSTACKl SEGMENT PARA STACKSTACKl SEGMENT PARA STACKSTACKl SEGMENT PARA STACKSTACKl SEGMENT PARA STACK DW 20H DUP(0)DW 20H DUP(0)STACK1 ENDSSTACK1 ENDSSTACK1 ENDSSTACK1 ENDS例例例例5.25.25.25.2 利用学号查该学生的数学成绩。首先在数据段中建立一利用学号查该学生的数学成绩。首先在数据段中建立一个成绩表个成绩表

49、TABLETABLE,在表中按学号从小到大的顺序存放分数。要,在表中按学号从小到大的顺序存放分数。要查的学号存放在变量查的学号存放在变量NUMNUM中。中。10/27/202226 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学CODE SEGMENTCODE SEGMENTCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 ASSUME CS:CODE,DS:DATA,SS:STACK1 START START START START:MOV AX,DATAMOV AX,DAT

50、A MOV DS,AX MOV DS,AX MOV BX,OFFSET TABLE MOV BX,OFFSET TABLE ;BXBX指向表首址指向表首址 XOR AH,AH XOR AH,AH顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计 MOV AL,NUM MOV AL,NUM DEC AL DEC AL ADD BX,AX ADD BX,AX ;BXBX加上学号指向要查的成绩加上学号指向要查的成绩 MOV AL,BX MOV AL,BX ;查到成绩;查到成绩 MOV MATH,AL MOV MATH,AL ;存结果;存结果 MOV AH,4CH MOV AH,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁