分支循环结构部分课件

上传人:石磨 文档编号:194883787 上传时间:2021-09-01 格式:PPT 页数:14 大小:47KB
返回 下载 相关 举报
分支循环结构部分课件_第1页
第1页 / 共14页
分支循环结构部分课件_第2页
第2页 / 共14页
分支循环结构部分课件_第3页
第3页 / 共14页
分支循环结构部分课件_第4页
第4页 / 共14页
分支循环结构部分课件_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《分支循环结构部分课件》由会员分享,可在线阅读,更多相关《分支循环结构部分课件(14页珍藏版)》请在金锄头文库上搜索。

1、分支循环结构部分课件,标号:,条件满足 ?,处理,4.4.3 分支程序,N,Y,IFTHEN结构,程序结构: 测试/比较指令 (TEST/CMP) 条件转移指令 (Jx 标号) 处理体 标号: 其他指令 ,分支循环结构部分课件,程序结构: TEST/CMP指令 Jx 标号1 处理体P1 JMP 标号2 标号1: 处理体P2 标号2:其他指令 ,条件满足 ?,处理P1,处理P2,标号1:,标号2:,条件1,条件2,IFTHENELSE结构,分支循环结构部分课件,标号1:,条件1成立 ?,P1,N,Y,CASE结构,程序结构: TEST/CMP指令(测试条件1) Jx 标号1 ;不满足转标号1 处

2、理体P1 JMP 标号n+1 标号1:TEST/CMP指令(测试条件2) Jx 标号2 ;不满足转标号2 处理体P2 JMP 标号n+1 标号2:TEST/CMP指令(测试条件3) Jx 标号3 ;不满足转标号3 处理体P3 JMP 标号n+1 标号3:TEST/CMP指令(测试条件4) 标号n+1:(公共出口),条件2成立 ?,条件n成立 ?,Pn+1,标号2:,标号n:,标号n+1:,P2,Pn,N,N,Y,Y,例:P178,例4-14,统计成绩。流程图中虚线框内,分支循环结构部分课件,例题18:求某数X的绝对值,并送回原处。 求X的绝对值,即要求完成下面的运算: X , X=0 Y= -

3、X , X0 显然,这是一个分支程序,程序将根据X的值不同完成不同的运算,其流程图如图4-3所示,程序如下: 首先是各个段寄存器的初始化部分:,分支循环结构部分课件,STACKSEGMENTSTACK DW256DUP(?) STACKENDS DATASEGMENT XADRDW3456H,8192H;定义变量X DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK START:,分支循环结构部分课件,MOVAX,DATA;数据段的段基址装入DS MOVDS,AX MOVAX,XADR;变量X送SX寄存器 ANDAX,AX;(AX)=0? J

4、NSDONE;若(AX)=0,则跳到DONE NEGAX;否则求(AX)的补码 MOVXADR,AX;存结果 DONE:MOVAH,4CH;返回DOS INT 21H CODEENDS ENDSTART,分支循环结构部分课件,4.4.4 循环程序,1DOUNTIL 结构 先执行,再判断条件。工作部分至少执行一次。,初始化,循环体,循环控制,继续循环?,Y,N,分支循环结构部分课件,2. DO WHILE 结构 先判断条件,再执行。工作部分有可能一次都不执行。,初始化,循环体,循环控制,继续循环?,Y,N,分支循环结构部分课件,注意:循环可以嵌套(多重循环),但多个循环体之间不能交叉,控制条件不

5、能混淆。 例22:编制程序使S1+2X3+3X4+4X5+.+N(N+1),直到N(N+1)项大于200为止。 首先绘制流程图:如图4-8所示 根据流程图编制的程序如下所示:,分支循环结构部分课件,TITLE ACCUMULATE SUM CODESEGMENT ASSUMECS:CODE,DS:CODE.SS:CODE ORG100H START:MOVDX,;DX-1 MOVBL,2;BL-2 REPEAT:MOVAL,BL;乘积项的两个因子分别递增 INCBL MULBL;N(N+1)-AX,分支循环结构部分课件,ADDDX,AX;计算累加和-AX CMPAX,200;N(N+1)=20

6、0存结果 MOVAH,4CH;返回DOS INT21H ORG200H RESULTDW?;存放结果单元 CODEENDS ENDSTART,分支循环结构部分课件,掌握以下几点: 调用子程序用CALL指令,返回调用程序用RET指令。 子程序允许嵌套调用。 进入子程序后首先要保护主程序的运行状态(标志位)和使用的寄存器内容(称为保护现场),退出子程序前要恢复现场。 调用前要预先确定子程序中要使用哪些寄存器,并定义入口参数和出口参数。参数传递可利用寄存器、存储单元或堆栈(要用BP寻址)。,4.4.5 子程序设计举例,分支循环结构部分课件,例1: 二进制数(0-F)转换成ASCII(0-F)的子程序。 BIN2ASC PROC ;要转换的数在AL的低四位 ;转换结果仍在AL中 CMP AL, 9 JA A2F ADD AL, 30H JMP DONE A2F: ADD AL, 37H DONE: RET BIN2ASC ENDP 调用方法:(在主程序中) MOV AL, 0CH CALL BIN2ASC (AL中有0CH的ASCII码43H, C),分支循环结构部分课件,作业: 例题16、例题21、例题23、例题27,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号