汇编语言程序设计-第5章-基本程序设计_第1页
汇编语言程序设计-第5章-基本程序设计_第2页
汇编语言程序设计-第5章-基本程序设计_第3页
汇编语言程序设计-第5章-基本程序设计_第4页
汇编语言程序设计-第5章-基本程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 1 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 2 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 3 汇编语言同汇编语言同BASICBASIC或或C C等高级语言一样,都是一些语句和等高级语言一样,都是一些语句和指令的集合,这些语句决定计算机将做什么,它们的不同之处指令的集合,这些语句决定计算机将做什么,它们的不同之处在于如何指

2、示计算机完成相应的任务。在于如何指示计算机完成相应的任务。如如“置置3232于于AXAX寄存器中寄存器中”,“将将CLCL寄存寄存器的内容传送到器的内容传送到DLDL寄存器中寄存器中”,“存储存储DLDL寄存器中数到内存寄存器中数到内存34563456地址处地址处”等。等。 使用汇编语言是在计算机能够理解的基础上编写程序,但使用汇编语言是在计算机能够理解的基础上编写程序,但又不必死记机器代码。采用像英文缩写一样的指令,然后运又不必死记机器代码。采用像英文缩写一样的指令,然后运行汇编程序(将汇编语言编写的程序翻译成机器代码)将它行汇编程序(将汇编语言编写的程序翻译成机器代码)将它们转化为机器代码

3、。们转化为机器代码。 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 4一般说来,编制一个汇编语言程序需要完成以下步骤:一般说来,编制一个汇编语言程序需要完成以下步骤:(1)(1) 分析题意,建立数学模型,确定数据结构及算法。这一分析题意,建立数学模型,确定数据结构及算法。这一步是能否编制出高质量程序的关键,因此不应该一拿到题目就步是能否编制出高质量程序的关键,因此不应该一拿到题目就急于写程序,而是应该仔细地分析和理解题意,找出合理的算急于写程序,而是应该仔细地分析和理解题意,找出合理的算法及适当的数据结构。法及适当的数据

4、结构。(2)(2) 根据算法画出程序流程图。这一步对初学者尤其重要,根据算法画出程序流程图。这一步对初学者尤其重要,这样做可以减少出错的可能性。画流程图时可以从粗到细把算这样做可以减少出错的可能性。画流程图时可以从粗到细把算法逐步地具体化。法逐步地具体化。(3)(3) 根据算法及数据结构分配内存单元和寄存器。根据算法及数据结构分配内存单元和寄存器。(4)(4) 编写汇编语言源程序。编写汇编语言源程序。(5)(5) 使用汇编程序调试工具上机调试程序。使用汇编程序调试工具上机调试程序。 5.1.15.1.1编写汇编语言程序的步骤编写汇编语言程序的步骤 安徽工业大学4/7/2022整理课件整理课件1

5、章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 55.1.25.1.2判断程序质量的标准判断程序质量的标准 一个良好的程序应符合以下标准:一个良好的程序应符合以下标准:(1 1)程序可读性强。程序可读性强。(2 2)程序执行的时间短(效率高)。程序执行的时间短(效率高)。(3 3)程序所占用的内存少。程序所占用的内存少。(4 4)程序的语句行数少。程序的语句行数少。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 65.1.35.1.3汇编语言程序的开发过程汇编语言程序的开发过程 一般来说,开发汇编

6、语言程序有以下面一般来说,开发汇编语言程序有以下面5 5个步骤:个步骤:(1 1)设计)设计(2 2)编辑)编辑(3 3)汇编)汇编(4 4)连接)连接(5 5)调试)调试安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 7 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 根据所需完成的任务要求、设计程序结构,确定应用根据所需完成的任务要求、设计程序结构,确定应用算法,算法,画出程序流程图。画出程序流程图。 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本

7、程序设计基本程序设计 8 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 根据设计方案及程序流程图创建汇编语言源程序。该根据设计方案及程序流程图创建汇编语言源程序。该源程序是按照汇编语言语法规则编写的文本文件,定义为后源程序是按照汇编语言语法规则编写的文本文件,定义为后缀是缀是.ASM.ASM的文件。它由程序员通过文本编辑器来完成。的文件。它由程序员通过文本编辑器来完成。 DOSDOS下常用的有下常用的有EditEdit、PE2PE2等。等。 WindowsWindows下常用的有下常用的有WordWord等,但文件存储格式必须为等,但文件存储格式必须为(.TXT.TXT)

8、文本格式,且扩展名必须为)文本格式,且扩展名必须为.ASM.ASM。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 9 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 一旦发现错误,汇编程序会提示程序员对一旦发现错误,汇编程序会提示程序员对源程序加以修改,并重新汇编。源程序加以修改,并重新汇编。 汇编程序主要包括以下几方面的功能:汇编程序主要包括以下几方面的功能: DOSDOS下常用的汇编程序有下常用的汇编程序有等。等。 。 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础

9、知识识 5章章 基本程序设计基本程序设计 10 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 DOSDOS运行一个可执行程序时,先要在内存中为该程序开辟一运行一个可执行程序时,先要在内存中为该程序开辟一块或几块存储空间,然后在此加载并运行该程序。块或几块存储空间,然后在此加载并运行该程序。汇编后生成汇编后生成的目标程序虽然加载了的目标程序虽然加载了CPUCPU可识别的机器代码,但它缺少系统所可识别的机器代码,但它缺少系统所需要的重定位信息,所以并不能直接运行。需要的重定位信息,所以并不能直接运行。 这这样就可以将样就可以将一一个程序的几部分分别编写,汇编成几个目标模块,个

10、程序的几部分分别编写,汇编成几个目标模块,再通过连接程序将几个目标模块连接,生成一个完整的运行模块。再通过连接程序将几个目标模块连接,生成一个完整的运行模块。 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 11 5.1.3 5.1.3汇编语言程序的开发过程汇编语言程序的开发过程 完成设计、编辑、汇编、连接后得到的可执行目标程完成设计、编辑、汇编、连接后得到的可执行目标程序中可能存在一些错误,这些错误可能是设计缺陷或编辑序中可能存在一些错误,这些错误可能是设计缺陷或编辑时的笔误,它们可能使程序运行出现结果错误、死机甚至时的

11、笔误,它们可能使程序运行出现结果错误、死机甚至其他无法预测的后果。这类错误被称为其他无法预测的后果。这类错误被称为逻辑错误,它们是逻辑错误,它们是汇编程序和连接程序都无法发现的。汇编程序和连接程序都无法发现的。 DOSDOS下常用的调试程序有下常用的调试程序有DebugDebug、TdebugTdebug等。等。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 125.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架 源程序的一般格式为:源程序的一般格式为: 标号:标号: 汇编语言语句序列汇编语言语句序列 ;标号

12、指示程序入口;标号指示程序入口 标号:标号: 汇编语言语句序列汇编语言语句序列 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 135.1.45.1.4完整的汇编语言程序框架完整的汇编语言程序框架 以下是一个例子,说明以下是一个例子,说明8086/80888086/8088汇编语言的基本框架结构。该程序在汇编语言的基本框架结构。该程序在屏幕上显示一句问候语:屏幕上显示一句问候语:“Welcome to BEIJING!”Welcome to BEIJING!”。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基

13、础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 14 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 155.2.15.2.1流程图的功能及意义流程图的功能及意义 流程图是程序员进行程序设计的工具。流程图是程序员进行程序设计的工具。 画流程图是在确定算法之后编写程序之前、其目的画流程图是在确定算法之后编写程序之前、其目的是准确地表示算法,因此是准确地表示算法,因此无论在哪种机器上使用哪种语言,同一个问题无论在哪种机器上使用哪种语言,同一个问题的同一个算法的流程图应当是唯一的。的同一个算法的流程图应当是唯一的。 安

14、徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 165.2.25.2.2流程图的画法规定流程图的画法规定 开始开始处处 理理判断?判断?安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 17 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 18 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 19 简言之,这是一种

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

16、已经细致到可以编程的程度为止。细致到可以编程的程度为止。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 20 问题规模愈大,求解程序的尺寸也愈大,编写和排错问题规模愈大,求解程序的尺寸也愈大,编写和排错也就愈加困难。模块化设计主张,在解决一个规模较大的也就愈加困难。模块化设计主张,在解决一个规模较大的问题时,把求解程序按功能分成若干模块、每个模块有自问题时,把求解程序按功能分成若干模块、每个模块有自己的相对独立的功能,尺寸较小,通常不超过一页(己的相对独立的功能,尺寸较小,通常不超过一页(6060多多行)。这里的行)。这里

17、的安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 21 安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 22的程序从开始执行到结束,一的程序从开始执行到结束,一直是按指令序列在存储器中的存放顺序直是按指令序列在存储器中的存放顺序来执行指令的,来执行指令的,在程序执行前,在程序执行前,系统将要执行的第一条指令的地址装入系统将要执行的第一条指令的地址装入CSCS和和IPIP中,然后中,然后CPUCPU按按CSCS:IPIP中的地址中的地址从存储器取指令到指

18、令队列准备执行,从存储器取指令到指令队列准备执行,同时修改同时修改IPIP内容指向下一条指令,本条内容指向下一条指令,本条指令执行结束,就接着执行下一条指指令执行结束,就接着执行下一条指令令这样逐条执行指令直到程序结束。这样逐条执行指令直到程序结束。的流程图除了起止框外,就是的流程图除了起止框外,就是,如图,如图5252所示。顺序程序一般为简单程序,所示。顺序程序一般为简单程序,如计算表达式程序、查表程序。如计算表达式程序、查表程序。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 23设设X X、Y Y的值存放在字变量的值

19、存放在字变量VARXVARX、VARYVARY中,结果存放在中,结果存放在VARZVARZ中。程序的流中。程序的流程图如图程图如图5252所示。源程序编写如下:所示。源程序编写如下: DATA SEGMENTDATA SEGMENT VARX DW 15 VARX DW 15 VARY DW 10 VARY DW 10 VARZ DW ? VARZ DW ?DATA ENDSDATA ENDS安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 24 ASSUME CS: CODE, DS: DATA ASSUME CS: CO

20、DE, DS: DATAStart:MOV AX, DATA Start: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)/

21、25)/2 MOV VARZ, AX MOV VARZ, AX ;存结果;存结果 mov ah,4chmov ah,4ch int 21h int 21h ;返回;返回DOSDOSEND startEND start安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 25查表的结果放在变量查表的结果放在变量MATHMATH中。编写的源程序如下:中。编写的源程序如下: TITLE TABLE LOOKUPTITLE TABLE LOOKUPTABLE DB 81TABLE DB 81,7878,9090,6464,8585,76

22、76,9393,8282,5757,8080 DB 73 DB 73,6262,8787,7777,74748686,9595,9191,8282,7171NUM DB 8NUM DB 8MATH DB ?MATH DB ? 利用学号查该学生的数学成绩。首先在数据段中建立一利用学号查该学生的数学成绩。首先在数据段中建立一个成绩表个成绩表TABLETABLE,在表中按学号从小到大的顺序存放分数。要,在表中按学号从小到大的顺序存放分数。要查的学号存放在变量查的学号存放在变量NUMNUM中。中。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计

23、基本程序设计 26 ASSUME CS: CODE, DS: DATA ASSUME CS: CODE, DS: DATA: 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, AH MOV AL, NUM MOV AL, NUM DEC AL DEC AL ADD BX, AX ADD BX, AX ;BXBX加上学号指向要查的成绩加上学号指向要查的成绩 MOV AL, BX MOV AL, BX

24、 ;查到成绩;查到成绩 MOV MATH, AL MOV MATH, AL ;存结果;存结果 MOV AH, 4CH MOV AH, 4CH ;返回;返回DOSDOS INT 21H INT 21H END END 上述程序中,学号上述程序中,学号NUMNUM是从是从1 1开始,因此需将学号减开始,因此需将学号减1 1以获得成绩在表以获得成绩在表中的偏移量(开始)。如果程序使用换码指令中的偏移量(开始)。如果程序使用换码指令XLATXLAT,则长度还可缩短。,则长度还可缩短。可替换成:XLAT安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 27安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 28例 用查表方法将hex单元中低4位16进制数转化为相应的ASCII并显示。安徽工业大学4/7/2022整理课件整理课件1章章 汇编语言基础知汇编语言基础知识识 5章章 基本程序设计基本程序设计 29例 将HEX单元的内容拆成2段,每段4位,将其存入result,result+1两个单元。data segmenthex db 7AHresult db ?,?data endscode segment assume cs:code,ds:data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论