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