第6-7章-4 顺序、分支程序设计.ppt
《第6-7章-4 顺序、分支程序设计.ppt》由会员分享,可在线阅读,更多相关《第6-7章-4 顺序、分支程序设计.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学要求教学要求掌握完整段定义源程序格式掌握完整段定义源程序格式掌掌握握汇汇编编语语言言源源程程序序的的编编辑辑、汇汇编编、连连接接和调试的开发方法(和调试的开发方法(7.5)掌掌握握常常量量表表达达、变变量量定定义义及及应应用用、变变量量和和标号的属性及操作符(标号的属性及操作符(7.1)掌握基本伪指令和操作符掌握基本伪指令和操作符(7.2)EQU;*/;DBDWDD、?DUP;ORG$、OFFSET SEG PTR;SEGMENT/ENDS、ASSUME、END;PROC/ENDP第第6-7章微型计算机汇编语言及汇编程序章微型计算机汇编语言及汇编程序7.4系统功能调用系统功能调用7.5汇编
2、程序的功能及汇编过程汇编程序的功能及汇编过程7.1宏汇编语言的基本语法宏汇编语言的基本语法7.2伪指令伪指令第第6章章 程序设计程序设计 (顺序、分支顺序、分支、循环、子程序)、循环、子程序)7.3宏指令宏指令7.6汇编语言程序设计汇编语言程序设计第第6章微型计算机的程序设计章微型计算机的程序设计6.1程序设计步骤程序设计步骤1376.2简单程序简单程序1386.3分支程序分支程序1406.4循环程序循环程序1436.5子程序子程序1466.6查表程序查表程序150汇编语言程序设计归纳如下汇编语言程序设计归纳如下7个步骤:个步骤:(1)分分析析问问题题:分分析析问问题题就就是是全全面面理理解解
3、问问题题,要要把把解解决决问问题题所所需需条条件件、原原始始数数据据、输输入入和和输输出出信信息息、运运行行速速度度要要求求、运运算算精精度度要要求和结果形式等搞清楚。求和结果形式等搞清楚。(2)建建立立数数学学模模型型:在在对对问问题题全全面面理理解解后后,需需要要建建立立数数学学模模型型,这这是是把把问问题题向向计计算算机机处处理理方方式式转转化化的的第第1步步骤骤。建建立立数数学学模模型型是是把问题数学化、公式化把问题数学化、公式化(3)确确定定算算法法:建建立立数数学学模模型型后后,许许多多情情况况下下还还不不能能直直接接进进行行程程序序设设计计,需需要要确确定定符符合计算机运算的算法
4、。合计算机运算的算法。计计算算机机的的算算法法比比较较灵灵活活,一一般般要要优优选选逻逻辑辑简简单单、运运算算速速度度快快、精精度度高高的的算算法法用用于于程程序序设设计计;此此外外,还还要要考考虑虑占占用用内内存存空空间间小小、编程容易等特点。编程容易等特点。(4)绘绘制制程程序序流流程程图图:程程序序流流程程图图是是用用箭箭头头线线段段、框框图图及及菱菱形形图图等等绘绘制制的的一一种种图图。用用它能够把程序内容直接描述出来,它能够把程序内容直接描述出来,(5)内内存存空空间间分分配配:汇汇编编语语言言的的重重要要特特点点之之一一是是能能够够直直接接用用机机器器指指令令或或伪伪指指令令为为数
5、数据据或或代代码码程程序序分分配内存空间。配内存空间。86系系列列存存储储器器结结构构是是分分段段的的,如如代代码码段段、数数据据段段、堆栈段或附加段,在程序设计时要考虑分段结构,堆栈段或附加段,在程序设计时要考虑分段结构,(6)编编制制程程序序与与静静态态检检查查:编编制制程程序序就就是是按按计计算算机机语语法法规规定定书书写写计计算算机机解解决决问问题题的的过过程程。编编制制程程序序首首先先关关心心的的还还是是程程序序结结构构,它它应应是是模模块块化化和和通通用用子子程程序序结结构构,程程序序的的结结构构要要层层次次简简单单、清清楚楚、易易读、易维护为好。读、易维护为好。(7)程程序序调调
6、试试(实实验验):程程序序调调试试是是程程序序设设计计最最后后一一步步,也也是是非非常常重重要要的的一一步步。没没有有调调试试过过的的程程序序,很很难难保保证证程程序序无无错错误误,程程序序调试是不可缺省的。调试是不可缺省的。例如在编辑、汇编、连接或用调试软件例如在编辑、汇编、连接或用调试软件(如如DEBUG)调试时都可以发现错误并设法修改调试时都可以发现错误并设法修改程序。程序。6.2 顺序程序设计顺序程序设计没没有有分分支支、循循环环等等转转移移指指令令的的程程序序,会会按按指指令令书书写写的的前前后后顺顺利利依依次次执执行行,这这就就是是顺顺序程序序程序顺序结构是最基本的程序结构顺序结构
7、是最基本的程序结构完全采用顺序结构编写的程序并不多见完全采用顺序结构编写的程序并不多见【例【例6.1】字加法】字加法用用数数据据运运算算指指令令,对对两两个个16位位数数做做加加法法运运算算。这这两两个个数数从从地地址址10050H开开始始连连续续存存放放,低低位位在在小地址一端,结果放在这两个数之后。小地址一端,结果放在这两个数之后。(1)分分析析题题目目:它它是是一一个个16位位数数相相加加的的问问题题。在在用用加加法法指指令令时时,必必须须要要考考虑虑低低8位位和和低低8位位相相加加后产生的进位问题。后产生的进位问题。(2)根根据据86系系列列指指令令系系统统,可可以以直直接接对对累累加
8、加器器AX做做字字操操作作,但但在在低低位位相相加加后后,会会影影响响标标志志寄寄存存器器的的进位位进位位CF,所以,要用带进位的加法指令。所以,要用带进位的加法指令。错!错!错!错!流程图流程图程序程序MOVAX,1000HMOVDS,AX ;DS1000HMOVSI,50H ;被加数指针被加数指针SI50HMOVDI,52H;加数指针加数指针DI52HMOVBX,54H;和的指针和的指针BX54HCLC ;清清CFXORAX,AX;清清AX冗余冗余MOVAX,SI ;取一个字到取一个字到AXADCAX,DI ;AXAX+DI+CFMOVBX,AX ;存一个字到存一个字到BXHLT ;暂停暂
9、停ADDADD【例【例6.2】拆字节】拆字节 将将内内存存(10050)单单元元的的内内容容拆拆成成两两段段,每每段段4位位,并并将将它它们们分分别别存存入入内内存存(10051)和和(10052)单元。单元。即即(10050)单单元元中中的的低低4位位放放入入(10051)的的低低 4位位,(10050)单单 元元 中中 的的 高高 4位位 放放 入入(10052)的的低低4位位,而而(10051)和和(10052)的的高高4位均为零。位均为零。流程图流程图MOV AX,1000HMOV DS,AXMOV SI,50H ;需拆字节的指针需拆字节的指针MOV AL,SIAND AL,0FH ;
10、高高4位清位清0MOV SI+1,AL ;保存保存MOV AL,SIMOV CL,4SHR AL,CL ;高高4位移到低位移到低4位位MOV SI+2,AL ;保存保存补充例题:查表程序补充例题:查表程序采用查表法,实现一采用查表法,实现一位位16进制数进制数转换为转换为ASCII码显示码显示例例 数据段、代码段数据段、代码段;数据段数据段ASCIIdb 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;对应对应0 9的的ASCII码码db 41h,42h,43h,44h,45h,46h ;对应对应A F的的ASCII码码hexdb 04h,0bh ;假设两个数
11、据假设两个数据;代码段代码段mov bx,offset ASCII ;BX指向指向ASCII码表码表mov al,hex ;AL取得一位取得一位16进制数进制数 ;恰好就是;恰好就是ASCII码表中的位移码表中的位移and al,0fh ;只有低只有低4位是有效的,高位是有效的,高4位清位清0Xlat ;换码:换码:ALDS:BXALXLAT例例 代码段(续)代码段(续)mov dl,al;入口参数:入口参数:DLALmov ah,2;02号号DOS功能调用功能调用int 21h;显示一个显示一个ASCII码字符码字符mov al,hex+1;转换并显示下一个数据转换并显示下一个数据and a
12、l,0fhxlatmov dl,almov ah,2int 21hXLATchaobiao.asm源程序源程序stack segment stackdb 100 dup(?)stack endsdata segment ;数据段数据段ASCIIdb 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;对应对应0 9的的ASCII码码db 41h,42h,43h,44h,45h,46h ;对应对应A F的的ASCII码码hexdb 04h,0bh ;假设两个数据假设两个数据data endscode segment ;代码段代码段assume cs:code,ds:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6-7章-4 顺序、分支程序设计 顺序 分支 程序设计
限制150内