汇编语言程序设计-第5章基本程序设计.pptx
《汇编语言程序设计-第5章基本程序设计.pptx》由会员分享,可在线阅读,更多相关《汇编语言程序设计-第5章基本程序设计.pptx(28页珍藏版)》请在咨信网上搜索。
计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 18086/80888086/8088和和ARMARM核核汇编语言程序设计汇编语言程序设计第第5 5章章 基本程序设计基本程序设计 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 25.1 5.1 程序设计方法概述程序设计方法概述 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 3 汇编语言同汇编语言同BASICBASIC或或C C等高级语言不同之处在于如何指示等高级语言不同之处在于如何指示计算机完成相应的任务。计算机完成相应的任务。高级语言给出一般性命令,而汇编语言给出具体的命令。高级语言给出一般性命令,而汇编语言给出具体的命令。高级语言给出一般性命令,而汇编语言给出具体的命令。高级语言给出一般性命令,而汇编语言给出具体的命令。汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供汇编语言指令集中的语句直接涉及到计算机的硬件部分,提供给计算机更详细的命令,直接对硬件进行操作。给计算机更详细的命令,直接对硬件进行操作。给计算机更详细的命令,直接对硬件进行操作。给计算机更详细的命令,直接对硬件进行操作。5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 用汇编指令写的程序称为汇编语言源程序。微处理器可执用汇编指令写的程序称为汇编语言源程序。微处理器可执用汇编指令写的程序称为汇编语言源程序。微处理器可执用汇编指令写的程序称为汇编语言源程序。微处理器可执行的机器代码形式称为目标程序。行的机器代码形式称为目标程序。行的机器代码形式称为目标程序。行的机器代码形式称为目标程序。编制出优秀的汇编语言程序还需要使程序具有结构好、编制出优秀的汇编语言程序还需要使程序具有结构好、编制出优秀的汇编语言程序还需要使程序具有结构好、编制出优秀的汇编语言程序还需要使程序具有结构好、可读性强、运行速度快、占用内存少等优点。可读性强、运行速度快、占用内存少等优点。可读性强、运行速度快、占用内存少等优点。可读性强、运行速度快、占用内存少等优点。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 4一般说来,编制一个汇编语言程序需要完成以下步骤:一般说来,编制一个汇编语言程序需要完成以下步骤:(1)(1)分析题意,建立数学模型,确定数据结构及算法。这一分析题意,建立数学模型,确定数据结构及算法。这一步是能否编制出高质量程序的关键,因此不应该一拿到题目就步是能否编制出高质量程序的关键,因此不应该一拿到题目就急于写程序,而是应该仔细地分析和理解题意,找出合理的算急于写程序,而是应该仔细地分析和理解题意,找出合理的算法及适当的数据结构。法及适当的数据结构。(2)(2)根据算法画出程序流程图。这一步对初学者尤其重要,根据算法画出程序流程图。这一步对初学者尤其重要,这样做可以减少出错的可能性。画流程图时可以从粗到细把算这样做可以减少出错的可能性。画流程图时可以从粗到细把算法逐步地具体化。法逐步地具体化。(3)(3)根据算法及数据结构分配内存单元和寄存器。根据算法及数据结构分配内存单元和寄存器。(4)(4)编写汇编语言源程序。编写汇编语言源程序。(5)(5)使用汇编程序调试工具上机调试程序。使用汇编程序调试工具上机调试程序。5.1.15.1.1编写汇编语言程序的步骤编写汇编语言程序的步骤5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 55.1.25.1.2判断程序质量的标准判断程序质量的标准5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一个良好的程序应符合以下标准:一个良好的程序应符合以下标准:(1 1)程序可读性强。程序可读性强。(2 2)程序执行的时间短(效率高)。程序执行的时间短(效率高)。(3 3)程序所占用的内存少。程序所占用的内存少。(4 4)程序的语句行数少。程序的语句行数少。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 65.1.35.1.3汇编语言程序的开发过程汇编语言程序的开发过程5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 一般来说,开发汇编语言程序有以下面一般来说,开发汇编语言程序有以下面5 5个步骤:个步骤:(1 1)设计)设计(2 2)编辑)编辑(3 3)汇编)汇编(4 4)连接)连接(5 5)调试)调试 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 7 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(1 1 1 1)设计)设计)设计)设计 根据所需完成的任务要求、设计程序结构,确定应用根据所需完成的任务要求、设计程序结构,确定应用算法,算法,并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定并按使用的寄存器从程序段、数据段和堆栈段制定内存分配方案,内存分配方案,内存分配方案,内存分配方案,画出程序流程图。画出程序流程图。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 8 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(2 2 2 2)编辑)编辑)编辑)编辑 根据设计方案及程序流程图创建汇编语言源程序。该根据设计方案及程序流程图创建汇编语言源程序。该源程序是按照汇编语言语法规则编写的文本文件,定义为后源程序是按照汇编语言语法规则编写的文本文件,定义为后缀是缀是.ASM.ASM的文件。它由程序员通过文本编辑器来完成。的文件。它由程序员通过文本编辑器来完成。文本文本文本文本编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生编辑器是任何流行的字处理器或编辑器,只要它们可以产生纯纯纯纯ASCIIASCIIASCIIASCII码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。码文本文件,不带有任何特殊控制码和格式码。WindowsWindows下常用的有下常用的有WordWord等,但文件存储格式必须为等,但文件存储格式必须为(.TXT.TXT)文本格式,且扩展名必须为)文本格式,且扩展名必须为.ASM.ASM。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 9 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(3 3 3 3)汇编)汇编)汇编)汇编 汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成汇编是指将汇编语言编写的程序翻译成机器代码组成的目标程序的过程。的目标程序的过程。的目标程序的过程。的目标程序的过程。自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,自动完成这一任务的软件叫汇编程序,又称为汇编器。又称为汇编器。又称为汇编器。又称为汇编器。自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,自动生成的目标程序是机器可以理解的,它是后缀为它是后缀为它是后缀为它是后缀为.OBJ.OBJ.OBJ.OBJ的文件。的文件。的文件。的文件。汇编程序主要包括以下几方面的功能:汇编程序主要包括以下几方面的功能:检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。检查源程序中的语法错误,并给出出错信息。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。产生源程序的目标程序,并给出列表文件。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持地址和数据的符号变量表。支持对内存的管理。支持对内存的管理。支持对内存的管理。支持对内存的管理。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持多种类型的数据表示。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。支持程序的模块化组织。DOSDOS下常用的汇编程序有下常用的汇编程序有MASMMASMMASMMASM、TASMTASMTASMTASM等。等。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 10 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(4 4 4 4)连接)连接)连接)连接 连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,连接程序的第一个任务就是从目标模块中产生一个运行模块,并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标并使其具有可重定位性。连接程序的第二个任务是可将几个目标模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。模块连接成一个可执行的模块,并同样使其具有可重定位性。这这样就可以将样就可以将一一个程序的几部分分别编写,汇编成几个目标模块,个程序的几部分分别编写,汇编成几个目标模块,再通过连接程序将几个目标模块连接,生成一个完整的运行模块。再通过连接程序将几个目标模块连接,生成一个完整的运行模块。连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、连接程序可以发现源程序中的连接错误,如段的溢出或覆盖、匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。匹配的模块、不存在或不匹配的标号、变量等。DOSDOSDOSDOS下常用的连接程序有下常用的连接程序有下常用的连接程序有下常用的连接程序有LinkLinkLinkLink、TlinkTlinkTlinkTlink等。等。等。等。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 11 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述(5 5 5 5)调试)调试)调试)调试 完成设计、编辑、汇编、连接后得到的可执行目标程完成设计、编辑、汇编、连接后得到的可执行目标程序中可能存在一些错误,这些错误可能是设计缺陷或编辑序中可能存在一些错误,这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至时的笔误,它们可能使程序运行出现结果错误、死机甚至其他无法预测的后果。这类错误被称为其他无法预测的后果。这类错误被称为逻辑错误,它们是逻辑错误,它们是汇编程序和连接程序都无法发现的。汇编程序和连接程序都无法发现的。这类错误只能靠程序这类错误只能靠程序这类错误只能靠程序这类错误只能靠程序员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调员凭借调试程序和经验对可执行程序进耐心细致的跟踪调试,才能逐一排除。试,才能逐一排除。试,才能逐一排除。试,才能逐一排除。DOSDOS下常用的调试程序有下常用的调试程序有DebugDebug、TdebugTdebug等。等。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 125.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 源程序的一般格式为:源程序的一般格式为:NAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENTNAME1 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 ;标号指示程序入口;标号指示程序入口 NAME1 ENDSNAME1 ENDSNAME1 ENDSNAME1 ENDS NAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENTNAME2 SEGMENT 标号:标号:汇编语言语句序列汇编语言语句序列 NAME2 ENDSNAME2 ENDSNAME2 ENDSNAME2 ENDS END END END END 程序起始地址标号程序起始地址标号程序起始地址标号程序起始地址标号 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 135.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架5.1 5.1 5.1 5.1 程序设计方法概述程序设计方法概述程序设计方法概述程序设计方法概述 STACK SEGMENT PARA STACK STACK SEGMENT PARA STACK STACK SEGMENT PARA STACK STACK SEGMENT PARA STACK STACKSTACKSTACKSTACK ;定义堆栈;定义堆栈;定义堆栈;定义堆栈段段段段 DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)DB 1024 DUP(?)STACK ENDSSTACK ENDSSTACK ENDSSTACK ENDSDATA SEGMENT PARA DATA SEGMENT PARA DATA SEGMENT PARA DATA SEGMENT PARA DATADATADATADATA ;定义数据段;定义数据段;定义数据段;定义数据段HELLO DB HELLO DB HELLO DB HELLO DB Welcome to BEIJING!Welcome to BEIJING!Welcome to BEIJING!Welcome to BEIJING!,0dh,0dh,0dh,0dh,0ah0ah0ah0ah,$DATA ENDSDATA ENDSDATA ENDSDATA ENDSCODE SEGMENT PARA CODE SEGMENT PARA CODE SEGMENT PARA CODE SEGMENT PARA CODECODECODECODE ;定义代码段;定义代码段;定义代码段;定义代码段 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: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,DATAMOV AX,DATAMOV AX,DATAMOV AX,DATA 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 RETMAIN ENDPMAIN ENDPMAIN ENDPMAIN ENDPCODE ENDSCODE ENDSCODE ENDSCODE ENDS END STARTEND STARTEND STARTEND START 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 145.1 5.1 程序设计方法概述程序设计方法概述 5.3 5.3 结构化程序设计结构化程序设计第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 155.2.15.2.1流程图的功能及意义流程图的功能及意义5.25.25.25.2流程图流程图流程图流程图 流程图是程序员进行程序设计的工具。借助流程图可以流程图是程序员进行程序设计的工具。借助流程图可以清晰地把程序思路表达出来,有助于编写正确的程序。清晰地把程序思路表达出来,有助于编写正确的程序。画流程图是在确定算法之后编写程序之前、其目的画流程图是在确定算法之后编写程序之前、其目的是准确地表示算法,因此是准确地表示算法,因此流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是流程图应当是逻辑的,而不是物理的。物理的。物理的。物理的。无论在哪种机器上使用哪种语言,同一个问题无论在哪种机器上使用哪种语言,同一个问题的同一个算法的流程图应当是唯一的。的同一个算法的流程图应当是唯一的。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 165.2.25.2.2流程图的画法规定流程图的画法规定 5.25.25.25.2流程图流程图流程图流程图开始开始处处 理理判断判断?1端点框端点框端点框端点框:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束:用于表示程序或过程的开始和结束点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、点,框中可以写程序名和过程名、“开始开始开始开始”、“结束结束结束结束”、“返回返回返回返回”等。等。等。等。处理框处理框处理框处理框:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完:表示除判断以外的所有操作。要完成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。成的操作,可以很概括,也可以很细致。判断框判断框判断框判断框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框:这种框有一个入口和两个出口,框中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,中写有某种逻辑条件、根据条件成立与否,分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。分别执行不同的处理。衔接框衔接框衔接框衔接框:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分:用于将一个流程图分成几个部分分别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标别绘制的情况。框中可以标有数字。两个标有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。有相同数字的衔接框本来是接在一起的。流向线流向线流向线流向线:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各:连接在各框之间的有向线,指示各框代表的工作的执行次序。框代表的工作的执行次序。框代表的工作的执行次序。框代表的工作的执行次序。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 175.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.4 5.4 顺序结构的程序设计顺序结构的程序设计5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 185.3 5.3 5.3 5.3 结构化程序设计结构化程序设计结构化程序设计结构化程序设计(1 1 1 1)三种程序构件)三种程序构件)三种程序构件)三种程序构件 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 19(2 2 2 2)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法)逐步求精的设计方法5.35.35.35.3结构化程序设计结构化程序设计结构化程序设计结构化程序设计 简言之,这是一种先全局后局部、先整体后细节、先抽象简言之,这是一种先全局后局部、先整体后细节、先抽象后具体的自顶向下的设计方法。对于复杂的问题,我们不可后具体的自顶向下的设计方法。对于复杂的问题,我们不可能立刻精确地给出求解的详细步骤,但是可以从问题的描述能立刻精确地给出求解的详细步骤,但是可以从问题的描述开始,首先得到求解的大致步骤,并表示成三种基本结构之开始,首先得到求解的大致步骤,并表示成三种基本结构之一,然后再将上一结构中的处理框进一步分解、加细,仍然一,然后再将上一结构中的处理框进一步分解、加细,仍然代之以三种基本结构之一,如此继续直到最后的流程图已经代之以三种基本结构之一,如此继续直到最后的流程图已经细致到可以编程的程度为止。细致到可以编程的程度为止。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 205.35.35.35.3结构化程序设计结构化程序设计结构化程序设计结构化程序设计(3 3 3 3)模块化设计方法)模块化设计方法)模块化设计方法)模块化设计方法 问题规模愈大,求解程序的尺寸也愈大,编写和排错问题规模愈大,求解程序的尺寸也愈大,编写和排错也就愈加困难。模块化设计主张,在解决一个规模较大的也就愈加困难。模块化设计主张,在解决一个规模较大的问题时,把求解程序按功能分成若干模块、每个模块有自问题时,把求解程序按功能分成若干模块、每个模块有自己的相对独立的功能,尺寸较小,通常不超过一页(己的相对独立的功能,尺寸较小,通常不超过一页(6060多多行)。这里的行)。这里的模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。模块一般是作为过程和宏实现的。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 215.1 5.1 程序设计方法概述程序设计方法概述 第第5章章 基本程序设计基本程序设计 5.2 5.2 流程图流程图5.3 5.3 结构化程序设计结构化程序设计5.4 5.4 顺序结构的程序设计顺序结构的程序设计 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 225.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构顺序结构顺序结构顺序结构的程序从开始执行到结束,一的程序从开始执行到结束,一直是按指令序列在存储器中的存放顺序直是按指令序列在存储器中的存放顺序来执行指令的,来执行指令的,这个执行顺序由这个执行顺序由这个执行顺序由这个执行顺序由CSCSCSCS:IPIPIPIP提供的指令地址来控制。提供的指令地址来控制。提供的指令地址来控制。提供的指令地址来控制。顺序程序顺序程序顺序程序顺序程序的流程图除了起止框外,就是的流程图除了起止框外,就是一个接一个的处理框、无判断框一个接一个的处理框、无判断框一个接一个的处理框、无判断框一个接一个的处理框、无判断框,如图,如图5 52 2所示。顺序程序一般为简单程序,所示。顺序程序一般为简单程序,如计算表达式程序、查表程序。如计算表达式程序、查表程序。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 235.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计设设X X、Y Y的值存放在字变量的值存放在字变量VARXVARX、VARYVARY中,结果存放在中,结果存放在VARZVARZ中。程序的流中。程序的流程图如图程图如图5 52 2所示。源程序编写如下:所示。源程序编写如下: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 SEGMENT PARA STACKSTACKl SEGMENT PARA STACK DW 20H DUP(0)DW 20H DUP(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 2 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 245.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计CODE SEGMENTCODE SEGMENTCODE 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 AX,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 END COMPCOMPCOMPCOMP 计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 255.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计查表的结果放在变量查表的结果放在变量MATHMATH中。编写的源程序如下:中。编写的源程序如下:TITLE TABLE LOOKTITLE TABLE LOOKUPUPDATA SEGMENTDATA SEGMENTDATA SEGMENTDATA SEGMENTTABLE DB 81TABLE DB 81,7878,9090,6464,8585,7676,9393,8282,5757,8080 DB 73 DB 73,6262,8787,7777,74748686,9595,9191,8282,7171NUM DB 8NUM DB 8MATH 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 利用学号查该学生的数学成绩。首先在数据段中建立一利用学号查该学生的数学成绩。首先在数据段中建立一个成绩表个成绩表TABLETABLE,在表中按学号从小到大的顺序存放分数。要,在表中按学号从小到大的顺序存放分数。要查的学号存放在变量查的学号存放在变量NUMNUM中。中。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 26CODE SEGMENTCODE SEGMENTCODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 ASSUME CS:CODE,DS:DATA,SS:STACK1STARTSTARTSTARTSTART:MOV AX,DATA:MOV AX,DATA MOV DS,AX MOV DS,AX MOV BX,OFFSET TABLE MOV BX,OFFSET TABLE ;BXBX指向表首址指向表首址 XOR AH,AHXOR AH,AH5.45.45.45.4顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计 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,4CH ;返回;返回DOSDOS INT 21H INT 21HCODE ENDSCODE ENDSCODE ENDSCODE ENDS END END STARTSTARTSTARTSTART 上述程序中,学号上述程序中,学号NUMNUM是从是从1 1开始,因此需将学号减开始,因此需将学号减1 1以获得成绩在表以获得成绩在表中的偏移量(开始)。如果程序使用换码指令中的偏移量(开始)。如果程序使用换码指令XLTAXLTA,则长度还可缩短。,则长度还可缩短。计算机科学与技术系计算机科学与技术系 汇编语言程序汇编语言程序汇编语言程序汇编语言程序设计设计设计设计2024/8/28 周三第第5章章 基本程序设计基本程序设计 27换码指令格式为:换码指令格式为:换码指令格式为:换码指令格式为:XLAT XLAT XLAT XLAT 表首址表首址表首址表首址 或或或或 XLATXLATXLATXLAT指令功能:指令功能:指令功能:指令功能:AL AL AL AL(BXBXBXBX)()()()(ALALALAL),不影响标志位。),不影响标志位。),不影响标志位。),不影响标志位。XLATXLATXLATXLAT指令可将指令可将指令可将指令可将ALALALAL中的一个值转换为存储器表格中的一中的一个值转换为存储器表格中的一中的一个值转换为存储器表格中的一中的一个值转换为存储器表格中的一个值后,再送回个值后,再送回个值后,再送回个值后,再送回ALALALAL中。使用中。使用中。使用中。使用XLATXLATXLATXLAT指令之前,要求将表首地址的指令之前,要求将表首地址的指令之前,要求将表首地址的指令之前,要求将表首地址的偏移量送人偏移量送人偏移量送人偏移量送人BXBXBXBX中,待查项与表首地址之间的字节距离送入中,待查项与表首地址之间的字节距离送入中,待查项与表首地址之间的字节距- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 基本
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文