汇编循环与分支程序设计.ppt
《汇编循环与分支程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编循环与分支程序设计.ppt(66页珍藏版)》请在第壹文秘上搜索。
1、1第五章第五章 循环与分支程序设计循环与分支程序设计1、编制汇编语言程序的步骤如下:n 分析问题分析问题问题性质、目的、要求、已知条件等等。建立问题性质、目的、要求、已知条件等等。建立相应数学模型。相应数学模型。n 确定算法确定算法把实际问题转化为计算机求解的步骤和方法。把实际问题转化为计算机求解的步骤和方法。n 确定数据结构确定数据结构数据的组织方式,分配存储区数据的组织方式,分配存储区n 绘制流程图绘制流程图形象化描述程序算法。形象化描述程序算法。n 编写程序编写程序将流程图用指令集合来实现。应该将流程图用指令集合来实现。应该“简单明了简单明了、层次清晰、运算正确、短小精悍、层次清晰、运算
2、正确、短小精悍”。 n 上机调试上机调试验证程序功能,反复修改达到完善。验证程序功能,反复修改达到完善。基本步骤基本步骤2 计算机通常不会从程序的第一条指令直接顺序执行到程计算机通常不会从程序的第一条指令直接顺序执行到程序的最后一条指令结束,会根据处理事务的不同而具有不序的最后一条指令结束,会根据处理事务的不同而具有不同的执行流程。程序的流程是由程序的结构决定的。基本同的执行流程。程序的流程是由程序的结构决定的。基本的程序结构有:的程序结构有:2 2、程序基本结构程序基本结构n 顺序结构顺序结构n 分支结构分支结构n 循环结构循环结构n 子程序结构子程序结构 3 例如,在数据区定义的字符缓冲区
3、如下:DATA SEGMENT Buffer DB 32ACTLEN DB ?STRING DB 32 DUP(?) DATA ENDS2键盘一次输入一个字符串的方法: MOV AX, SEG BufferMOV AX, SEG Buffer /Buffer是存放输入字符串的缓冲区 MOV MOV DSDS, AX, AX /Buffer的段地址存入DS MOV MOV DXDX, Offset Buffer, Offset Buffer/Buffer的偏移地址存入DX MOV Buffer, countMOV Buffer, count /设置存入字符串的最大长度并存入Buffer的首字节;
4、 MOV AH, MOV AH, 0A0AH H /设置INT 21H功能参数为0AH INT 21HINT 21H /调用DOS功能By brooks too broad for leaping456顺序结构及简单程序设计 程序设计中最基本的结构是如图所示的顺序结构,它只有一个起始框、一个结束框和一至多个执行模块。具有顺序结构的程序叫做简单程序。 顺序结构中的执行模块可以是一条指令或完成某一功能的程序。简单程序执行的特点是其中的指令或语句是按顺序执行的,没有分支或循环。 开始开始A A B B结束结束7例:设置光标到屏幕左上角。 SET_CURPROC MOV AH,2 MOV BH,0 M
5、OV DX,0 INT 10H RET SET_CURENDP 这个程序是顺序执行的,一条指令执行后顺序执行紧接其后的另一条指令。实际上许多程序片段都具有顺序结构。【例例】编制一个程序,求下列公式中的编制一个程序,求下列公式中的Z值,并将结果存放到值,并将结果存放到RESULT单元中:单元中:Z=(AB)10500。设。设A、B的值的值分别存放在分别存放在BUFA、BUFB单元中,运算结果不超过单元中,运算结果不超过16位。位。算算 法法:在二进制整数中左移:在二进制整数中左移1位相当于乘位相当于乘2,右移,右移1位相当于位相当于除除2,所以可将(,所以可将(A+B)左移)左移3位完成乘以位完
6、成乘以8的操作,然后再与的操作,然后再与(A+B)左移)左移1位(乘以位(乘以2)的结果相加得到()的结果相加得到(A+B)10的计的计算。算。 n 顺序结构程序顺序结构程序简单程序结构简单程序结构分分 析析:这是一个简单的顺序结构程序,可以直接使用汇编:这是一个简单的顺序结构程序,可以直接使用汇编指令完成。指令完成。数据结构数据结构:存储单元:存储单元RESULT用来存放结果,用来存放结果,BUFA、BUFB存放存放A、B的值,可用寄存器的值,可用寄存器BX存放中间运算结果。存放中间运算结果。程序流程图程序流程图 DATA SEGMENTBUFA DW ?BUFB DW ?RESULTDW
7、?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,BUFA ;DX=A ADD DX,BUFB ;DX=A+B MOV BX,DX ;BX=DX=A+B MOV CL,3 SAL DX,CL ;DX=(A+B)8 SAL BX,1;BS=(A+B)2 ADD DX,BX ; DX=(A+B)*8+(A+B)*2=(A+B)*10 SUB DX,500 ;DX=(A+B) * 8-500 MOV RESULT,DX MOV AH,4CH ;DOS系统功能调用系统功能调用 INT 21H ;
8、返回操作系统返回操作系统CODE ENDS END START编写程序编写程序【例例】用查表法求整数用查表法求整数X的平方值(的平方值(0 xx15的整数),将结果存入的整数),将结果存入RESULT单元中。单元中。 分析分析:用查表法求平方值,首:用查表法求平方值,首先需要建一个用于存放各数平先需要建一个用于存放各数平方值的表,以方值的表,以TABLE表示表表示表头,表中依次存放头,表中依次存放015的平的平方值,将待求数方值,将待求数X放入放入AL寄存寄存器,表的起始地址放入器,表的起始地址放入BX寄寄存器。使用存器。使用XLAT查表指令可查表指令可以将地址以将地址BX+AL上的一个字上的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 循环 分支 程序设计