《汇编语言程序设计 第5章基本程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计 第5章基本程序设计.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学8086/80888086/8088和和ARMARM核核汇编语言程序设计汇编语言程序设计第第5 5章章 基本程序设计基本程序设计 4/25/20231第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计4
2、/25/20232第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 汇编语言同汇编语言同BASICBASIC或或C C等高级语言一样,都是一些语句和等高级语言一样,都是一些语句和指令的集合,这些语句决定计算机将做什么,它们的不同之处指令的集合,这些语句决定计算机将做什么,它们的不同之处在于如何指示计算机完成相应的任务。在于如何指示计算机完成相应的任务。高级语言给出一般性命高级语言给出一般性命高级语言给出一般性命高级语言给出一般性命令,而汇编语言给出具体的命令。令,而汇编语言给出具体的命令。令,而汇编语言给出
3、具体的命令。令,而汇编语言给出具体的命令。汇编语言指令集中的语句直汇编语言指令集中的语句直汇编语言指令集中的语句直汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接对硬件进行操作,接对硬件进行操作,接对硬件进行操作,接对硬件进行操作,如如“置置3232于于AXAX寄存器中寄存器中”,“将将CLCL寄存寄存器的内容传送到器的内容传送到DLDL寄存器中寄存器中”,“存储存储DLDL寄存器中数到内存寄存器中数到
4、内存34563456地址处地址处”等。等。5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 使用汇编语言是在计算机能够理解的基础上编写程序,但使用汇编语言是在计算机能够理解的基础上编写程序,但又不必死记机器代码。采用像英文缩写一样的指令,然后运又不必死记机器代码。采用像英文缩写一样的指令,然后运行汇编程序(将汇编语言编写的程序翻译成机器代码)将它行汇编程序(将汇编语言编写的程序翻译成机器代码)将它们转化为机器代码。们转化为机器代码。用汇编指令写的程序称为汇编语言源程用汇编指令写的程序称为汇编语言源程用汇编指令写的程序称为汇编语言源程用汇编指令写的
5、程序称为汇编语言源程序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。序。微处理器可执行的机器代码形式称为目标程序。4/25/20233第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学一般说来,编制一个汇编语言程序需要完成以下步骤:一般说来,编制一个汇编语言程序需要完成以下步骤:(1)(1)分析题意,建立数学模型,确定数据结构及算法。这一分析题意,建立数学模型,确定数据结构及算法。这一步是能否编制出高质量程序的关键,因此
6、不应该一拿到题目就步是能否编制出高质量程序的关键,因此不应该一拿到题目就急于写程序,而是应该仔细地分析和理解题意,找出合理的算急于写程序,而是应该仔细地分析和理解题意,找出合理的算法及适当的数据结构。法及适当的数据结构。(2)(2)根据算法画出程序流程图。这一步对初学者尤其重要,根据算法画出程序流程图。这一步对初学者尤其重要,这样做可以减少出错的可能性。画流程图时可以从粗到细把算这样做可以减少出错的可能性。画流程图时可以从粗到细把算法逐步地具体化。法逐步地具体化。(3)(3)根据算法及数据结构分配内存单元和寄存器。根据算法及数据结构分配内存单元和寄存器。(4)(4)编写汇编语言源程序。编写汇编
7、语言源程序。(5)(5)使用汇编程序调试工具上机调试程序。使用汇编程序调试工具上机调试程序。5.1.15.1.1编写汇编语言程序的步骤编写汇编语言程序的步骤5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 4/25/20234第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1.25.1.2判断程序质量的标准判断程序质量的标准5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一个良好的程序应符合以下标准:一个良
8、好的程序应符合以下标准:(1 1)程序可读性强。程序可读性强。(2 2)程序执行的时间短(效率高)。程序执行的时间短(效率高)。(3 3)程序所占用的内存少。程序所占用的内存少。(4 4)程序的语句行数少。程序的语句行数少。4/25/20235第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1.35.1.3汇编语言程序的开发过程汇编语言程序的开发过程5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一般来说,开发汇编语言程序有以下面一般来说,开发汇编语言程
9、序有以下面5 5个步骤:个步骤:(1 1)设计)设计(2 2)编辑)编辑(3 3)汇编)汇编(4 4)连接)连接(5 5)调试)调试4/25/20236第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(1 1 1 1)设计)设计)设计)设计 根据所需完成的任务要求、设计程序结构,确定应用根据所需完成的任务要求、设计程序结构,确定应用算法,算法,
10、并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定内存分配方案,内存分配方案,内存分配方案,内存分配方案,画出程序流程图。画出程序流程图。4/25/20237第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(2 2 2
11、2)编辑)编辑)编辑)编辑 根据设计方案及程序流程图创建汇编语言源程序。该根据设计方案及程序流程图创建汇编语言源程序。该源程序是按照汇编语言语法规则编写的文本文件,定义为后源程序是按照汇编语言语法规则编写的文本文件,定义为后缀是缀是.ASMASM的文件。它由程序员通过文本编辑器来完成。的文件。它由程序员通过文本编辑器来完成。文本文本文本文本编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生纯纯纯纯ASCIIASCIIASCIIASCII码
12、文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。DOSDOS下常用的有下常用的有EditEdit、PE2PE2等。等。WindowsWindows下常用的有下常用的有WordWord等,但文件存储格式必须为等,但文件存储格式必须为(.TXTTXT)文本格式,且扩展名必须为文本格式,且扩展名必须为.ASMASM。4/25/20238第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3
13、5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(3 3 3 3)汇编)汇编)汇编)汇编 汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成的目标程序的过程。的目标程序的过程。的目标程序的过程。的目标程序的过程。自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,又称为汇编器。
14、又称为汇编器。又称为汇编器。又称为汇编器。自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,它是后缀为它是后缀为它是后缀为它是后缀为.OBJOBJOBJOBJ的文件。的文件。的文件。的文件。在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以在汇编的过程中,汇编程序可以发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数发现源程序的语法诺误,如格式错误、非法指令、操作数类型
15、不匹配等。类型不匹配等。类型不匹配等。类型不匹配等。一旦发现错误,汇编程序会提示程序员对一旦发现错误,汇编程序会提示程序员对源程序加以修改,并重新汇编。源程序加以修改,并重新汇编。汇编程序主要包括以下几方面的功能:汇编程序主要包括以下几方面的功能:检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。支持地址和数据的符号变量表。支持地址和数
16、据的符号变量表。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持对内存的管理。支持对内存的管理。支持对内存的管理。支持对内存的管理。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。DOSDOS下常用的汇编程序有下常用的汇编程序有MASMMASMMASMMASM、TASMTASMTASMTASM等。等。4/25/20239第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工
17、业大学 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(4 4 4 4)连接)连接)连接)连接 DOSDOS运行一个可执行程序时,先要在内存中为该程序开辟一运行一个可执行程序时,先要在内存中为该程序开辟一块或几块存储空间,然后在此加载并运行该程序。块或几块存储空间,然后在此加载并运行该程序。该存储空间是该存储空间是该存储空间是该存储空间是由系统当时的运行状态决定的,是不固定的,这就要求可执行程由系统当时的运行状态决定的,是不固定的,这就要求可执行程由系统当时的运行状态决定的,是
18、不固定的,这就要求可执行程由系统当时的运行状态决定的,是不固定的,这就要求可执行程序是可重定位的,即它可以在内存的不同位置运行。序是可重定位的,即它可以在内存的不同位置运行。序是可重定位的,即它可以在内存的不同位置运行。序是可重定位的,即它可以在内存的不同位置运行。汇编后生成汇编后生成的目标程序虽然加载了的目标程序虽然加载了CPUCPU可识别的机器代码,但它缺少系统所可识别的机器代码,但它缺少系统所需要的重定位信息,所以并不能直接运行。需要的重定位信息,所以并不能直接运行。目标程序必须经过连目标程序必须经过连目标程序必须经过连目标程序必须经过连接程序的连接,生成附带重定位信息的可执行程序接程序
19、的连接,生成附带重定位信息的可执行程序接程序的连接,生成附带重定位信息的可执行程序接程序的连接,生成附带重定位信息的可执行程序(后缀为后缀为后缀为后缀为.COMCOMCOMCOM或或或或.EXEEXEEXEEXE的文件的文件的文件的文件)才能运行。才能运行。才能运行。才能运行。连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几
20、个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。这这样就可以将样就可以将一一个程序的几部分分别编写,汇编成几个目标模块,个程序的几部分分别编写,汇编成几个目标模块,再通过连接程序将几个目标模块连接,生成一个完整的运行模块。再通过连接程序将几个目标模块连接,生成一个完整的运行模块。连接程序可以发现源程序中的连接错误
21、,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。DOSDOSDOSDOS下常用的连接程序有下常用的连接程序有下常用的连接程序有下常用的连接程序有LinkLinkLinkLink、TlinkTlinkTlinkTlink等。等。等。等。4/25/202310第第5章章 基本程序设计基本程序设计 网络
22、工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(5 5 5 5)调试)调试)调试)调试 完成设计、编辑、汇编、连接后得到的可执行目标程完成设计、编辑、汇编、连接后得到的可执行目标程序中可能存在一些错误,这些错误可能是设计缺陷或编辑序中可能存在一些错误,这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至时的笔误,它们可能使程序运行出现结果错误、死机甚至其他无
23、法预测的后果。这类错误被称为其他无法预测的后果。这类错误被称为逻辑错误,它们是逻辑错误,它们是汇编程序和连接程序都无法发现的。汇编程序和连接程序都无法发现的。这类错误只能靠程序这类错误只能靠程序这类错误只能靠程序这类错误只能靠程序员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,才能逐一排除。试,才能逐一排除。试,才能逐一排除。试,才能逐一排除。DOSDOS下常用的调试程序有下常用的调试程序有DebugDebug、TdebugTdebug等。
24、等。4/25/202311第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 源程序的一般格式为:源程序的一般格式为:NAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 ;标号指示程序入口;标号指示程序入口 NAME1 ENDSNAME1 ENDSNAM
25、E1 ENDSNAME1 ENDS NAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 NAME2 ENDSNAME2 ENDSNAME2 ENDSNAME2 ENDS END END END END 程序起始地址标号程序起始地址标号程序起始地址标号程序起始地址标号4/25/202312第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.
26、1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK STACK SEGMENT PARA STACK STACK ;定义堆;定义堆;定义堆;定义堆栈段栈段栈段栈段 DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)STACK ENDSSTACK ENDSSTACK ENDSSTACK ENDSDATA SEGMENT
27、 PARA DATA DATA SEGMENT PARA DATA DATA SEGMENT PARA DATA DATA SEGMENT PARA DATA ;定义数据定义数据定义数据定义数据段段段段HELLO DB Welcome to BEIJING!,0dhHELLO DB Welcome to BEIJING!,0dhHELLO DB Welcome to BEIJING!,0dhHELLO DB Welcome to BEIJING!,0dh,0ah0ah0ah0ah,$DATA ENDSDATA ENDSDATA ENDSDATA ENDSCODE SEGMENT PARA CO
28、DE CODE SEGMENT PARA CODE CODE SEGMENT PARA CODE CODE SEGMENT PARA CODE ;定义代码定义代码定义代码定义代码段段段段 ASSUME CSASSUME CSASSUME CSASSUME CS:CODE,DSCODE,DSCODE,DSCODE,DS:DATADATADATADATA,ESESESES:DATADATADATADATA,SS:STACKSS:STACKSS:STACKSS:STACKMAIN PROC FARMAIN PROC FARMAIN PROC FARMAIN PROC FARSTART:START:S
29、TART:START:PUSH DSPUSH DSPUSH DSPUSH DS XOR AX,AX XOR AX,AX XOR AX,AX XOR AX,AX PUSH AX PUSH AX PUSH AX PUSH AX MOV AX,DATAMOV AX,DATAMOV AX,DATAMOV 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 IN
30、T 21H INT 21H RET RET RET RETMAIN ENDPMAIN ENDPMAIN ENDPMAIN ENDPCODE ENDSCODE ENDSCODE ENDSCODE ENDS END STARTEND STARTEND STARTEND START 以下是一个例子,说明以下是一个例子,说明8086/80888086/8088汇编语言的基本框架结构。该程序在汇编语言的基本框架结构。该程序在屏幕上显示一句问候语:屏幕上显示一句问候语:“Welcome to BEIJING!”Welcome to BEIJING!”。4/25/202313第第5章章 基本程序设计基本程序
31、设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图4/25/202314第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.2.15.2.1流程图的功能及意义流程图的功能及意义5.25.25.25.2流程图流程图流程图流程图 流程图是程序员进行程
32、序设计的工具。流程图是程序员进行程序设计的工具。画流程图是在确定算法之后编写程序之前、其目的画流程图是在确定算法之后编写程序之前、其目的是准确地表示算法,因此是准确地表示算法,因此流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是物理的。物理的。物理的。物理的。无论在哪种机器上使用哪种语言,同一个问题无论在哪种机器上使用哪种语言,同一个问题的同一个算法的流程图应当是唯一的。的同一个算法的流程图应当是唯一的。4/25/202315第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语
33、言程序设计安徽工业大学5.2.25.2.2流程图的画法规定流程图的画法规定 5.25.25.25.2流程图流程图流程图流程图开始开始处处 理理判断判断?1端点框端点框端点框端点框:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、“开始开始开始开始”、“结束结束结束结束”、“返回返回返回返回”等。等。等。等。处理框处理框处理框处理框:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完:表示
34、除判断以外的所有操作。要完:表示除判断以外的所有操作。要完成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。判断框判断框判断框判断框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。衔接框衔接框衔
35、接框衔接框:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。流向线流向线流向线流向线:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各框代表的工作的
36、执行次序。框代表的工作的执行次序。框代表的工作的执行次序。框代表的工作的执行次序。4/25/202316第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计4/25/202317第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安
37、徽工业大学5.3 5.3 5.3 5.3 结构化程序设计结构化程序设计结构化程序设计结构化程序设计(1 1 1 1)三种程序构件)三种程序构件)三种程序构件)三种程序构件 4/25/202318第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学(2 2 2 2)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法5.35.35.35.3结构化程序设计结构化程序设计结构化程序设计结构化程序设计 简言之,这是一种先全局后局部、先整体后细节、先抽象简言之,这是一种先全局后局部、先整体后细节
38、、先抽象后具体的自顶向下的设计方法。对于复杂的问题,我们不可后具体的自顶向下的设计方法。对于复杂的问题,我们不可能立刻精确地给出求解的详细步骤,但是可以从问题的描述能立刻精确地给出求解的详细步骤,但是可以从问题的描述开始,首先得到求解的大致步骤,并表示成三种基本结构之开始,首先得到求解的大致步骤,并表示成三种基本结构之一,然后再将上一结构中的处理框进一步分解、加细,仍然一,然后再将上一结构中的处理框进一步分解、加细,仍然代之以三种基本结构之一,如此继续直到最后的流程图已经代之以三种基本结构之一,如此继续直到最后的流程图已经细致到可以编程的程度为止。细致到可以编程的程度为止。4/25/20231
39、9第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.35.35.35.3结构化程序设计结构化程序设计结构化程序设计结构化程序设计(3 3 3 3)模块化设计方法)模块化设计方法)模块化设计方法)模块化设计方法 问题规模愈大,求解程序的尺寸也愈大,编写和排错问题规模愈大,求解程序的尺寸也愈大,编写和排错也就愈加困难。模块化设计主张,在解决一个规模较大的也就愈加困难。模块化设计主张,在解决一个规模较大的问题时,把求解程序按功能分成若干模块、每个模块有自问题时,把求解程序按功能分成若干模块、每个模块有自己的相对
40、独立的功能,尺寸较小,通常不超过一页(己的相对独立的功能,尺寸较小,通常不超过一页(6060多多行)。这里的行)。这里的模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。4/25/202320第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计5.4 5.4 顺序结构的程序设计顺序结构
41、的程序设计4/25/202321第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构顺序结构顺序结构顺序结构的程序从开始执行到结束,一的程序从开始执行到结束,一直是按指令序列在存储器中的存放顺序直是按指令序列在存储器中的存放顺序来执行指令的,来执行指令的,这个执行顺序由这个执行顺序由这个执行顺序由这个执行顺序由CSCSCSCS:IPIPIPIP提供的指令地址来控制。提供的指令地址来控制。提供的指令地址来控制。
42、提供的指令地址来控制。在程序执行前,在程序执行前,系统将要执行的第一条指令的地址装入系统将要执行的第一条指令的地址装入CSCS和和IPIP中,然后中,然后CPUCPU按按CSCS:IPIP中的地址中的地址从存储器取指令到指令队列准备执行,从存储器取指令到指令队列准备执行,同时修改同时修改IPIP内容指向下一条指令,本条内容指向下一条指令,本条指令执行结束,就接着执行下一条指令指令执行结束,就接着执行下一条指令这样逐条执行指令直到程序结束。这样逐条执行指令直到程序结束。顺序程序顺序程序顺序程序顺序程序的流程图除了起止框外,就是的流程图除了起止框外,就是一个接一个的处理框、无判断框一个接一个的处理
43、框、无判断框一个接一个的处理框、无判断框一个接一个的处理框、无判断框,如图,如图5252所示。顺序程序一般为简单程序,所示。顺序程序一般为简单程序,如计算表达式程序、查表程序。如计算表达式程序、查表程序。4/25/202322第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计设设X X、Y Y的值存放在字变量的值存放在字变量VARXVARX、VARYVARY中,结果存放在中,结果存放在VARZVARZ中。程序的流中
44、。程序的流程图如图程图如图5252所示。源程序编写如下:所示。源程序编写如下:TITLE EQUATIONTITLE EQUATIONTITLE EQUATIONTITLE EQUATION COMPUTECOMPUTECOMPUTECOMPUTEDATA SEGMENTDATA SEGMENT VARX DW 15 VARX DW 15 VARY DW 10 VARY DW 10 VARZ DW?VARZ DW?DATA ENDSDATA ENDSSTACKl STACKl SEGMENT PARA STACKSEGMENT PARA STACK DW 20H DUP(0)DW 20H DU
45、P(0)STACK1 ENDSSTACK1 ENDS例例例例5.15.15.15.1 试编写一程序计算以下表达式:试编写一程序计算以下表达式:试编写一程序计算以下表达式:试编写一程序计算以下表达式:Z Z Z Z(3X(3X(3X(3X十十十十Y Y Y Y5)5)5)5)2 2 2 24/25/202323第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计CODE SEGMENTCODE SEGMENTCODE
46、SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 ASSUME CS:CODE,DS:DATA,SS:STACK1COMP PROC FARCOMP PROC FARCOMP PROC FARCOMP PROC FAR PUSH DS PUSH DS ;保护返回保护返回DOSDOS地址地址 MOV AX,0MOV 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 A
47、X,1 SHL AX,1 ;AX2XAX2X ADD AX,VARX ADD AX,VARX ;AX3XAX3X ADD AX,VARY ADD AX,VARY ;AX3X+YAX3X+Y SUB 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 ENDSEND E
48、ND COMPCOMPCOMPCOMP4/25/202324第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学5.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计查表的结果放在变量查表的结果放在变量MATHMATH中。编写的源程序如下:中。编写的源程序如下:TITLE TABLE LOOKUPTITLE TABLE LOOKUPDATA SEGMENTDATA SEGMENTDATA SEGMENTDATA SEGMENTTABLE DB TABLE DB 81 8
49、1,7878,9090,6464,8585,7676,9393,8282,5757,8080 DB 73 DB 73,6262,8787,7777,74748686,9595,9191,8282,7171NUM NUM DB 8 DB 8MATH DB?MATH DB?DATA ENDSDATA ENDSDATA ENDSDATA ENDSSTACKl STACKl STACKl STACKl SEGMENT PARA STACKSEGMENT PARA STACKSEGMENT PARA STACKSEGMENT PARA STACK DW 20H DW 20H DUP(0)DUP(0)ST
50、ACK1 ENDSSTACK1 ENDSSTACK1 ENDSSTACK1 ENDS例例例例5.25.25.25.2 利用学号查该学生的数学成绩。首先在数据段中建立一利用学号查该学生的数学成绩。首先在数据段中建立一个成绩表个成绩表TABLETABLE,在表中按学号从小到大的顺序存放分数。要在表中按学号从小到大的顺序存放分数。要查的学号存放在变量查的学号存放在变量NUMNUM中。中。4/25/202325第第5章章 基本程序设计基本程序设计 网络工程系网络工程系 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学CODE SEGMENTCODE SEGMENTCODE