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