上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
分支结构程序设计
作者:未知 申领版权
2010年12月12日 共有 1697 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    分支结构程序设计
    所谓分支结构就是根据条件判断的结果分别执行不同的程序段。如果分支具有N种可能,则称其为N分支。一般N=2时称为简单分支,N>=3时称为多分支程序。
    4.2.1简单分支程序设计
    通常简单分支程序可用一条条件转移指令来实现,这是分支程序设计的最基本方法
    例4.6:
    设有单字节无符号数X、Y、Z,若X Y>255,则求X Z,否则求X-Z,运算结果放在F1中。
    分析:因为X,Y均为无符号数,所以当X Y>255时则会产生进位即CF=1,所以可以用进位标志来判断。
    程序段如下:
    ;…………数据段…………
    DATA   SEGMENT
    X   DB   128
    Y   DB   90
    Z   DB   50
    F1  DB   ?
    DATA   ENDS
    
    ;…………代码段…………
    CODE   SEGMENT
    ASSUME  CS:CODE,DS:DATA
    START:MOV  AX,DATA
    MOV  DS,AX
    ;
    MOV  AL,X
    ADD  AL,Y
    JC    P1
    ;
    MOV  AL,X
    SUB   AL,Z
    JMP   EXIT
    ;
    P1:MOV  AL,X
    ADD  AL,Z
    ;
    EXIT:MOV  F1,AL 
    ;
    HLT
    CODE   ENDS
    END   START
    4.2.2多分支程序设计
    1.简单分支组合法
    用若干个简单分支的组合来实现多分支的方法称为简单分支组合法。
    例4.7:
    ╭ - 1  当X<0
    试计算符号函数的值Y=|  0   当X=0
    ╰ 1  当X>0
    程序如下:
    ;…………数据段…………
    DATA   SEGMENT
    X   DB   6
    Y   DB   ?
    DATA   ENDS
    ;…………代码段…………
    CODE   SEGMENT
    ASSUME  CS:CODE,DS:DATA
    START:MOV  AX,DATA
    MOV  DS,AX
    
    ;
    MOV  AL,X
    CMP  AL,0
    ;注意下面的分支
    JG    G1
    JZ    Z1
    ;
    MOV  AL,-1
    JMP   EXIT
    ;
    G1:MOV  AL,1
    JMP   EXIT
    ;
    Z1:MOV  AL,0
    ;
    EXIT:MOV   Y,AL
    HLT
    CODE   ENDS
    END   START
    
    2.跳转表法
    跳转表是由一系列的转移地址(即各分支处理子程序的首地址)、跳转指令或关键字等构成,它们依次存放在内存的一个连续存区中。
    例4.8:
    查看变量M1中的值,如果是0则执行模块0(用标号L0表示的内容,下同),如果是1则执行模块1,依次类推,其中M1的值在0~7之间。
    程序如下:
    ;…………数据段…………
    DATA   SEGMENT
    MI   DB   4
    L    DB   L0,L1,L2,L3,L4,L5,L6,L7
    DATA   ENDS
    ;…………代码段…………
    CODE   SEGMENT
    ASSUME  CS:CODE,DS:DATA
    START:MOV  AX,DATA
    MOV  DS,AX
    ;
    MOV  BX,OFFSET  L
    MOV  AL,M1
    AND  AL,07H
    MOV  AH,00H
    ADD  AX,AX
    ADD  BX,AX
    JMP  WORD  PTR [BX]  ;段内间接转移
    ;
    …
    ;
    L0:…
    …
    L1:…
    …
    …
    L7:…
    …
    …
    CODE   ENDS
    END   START
    数据段中变量L的值是L0、L1…L7,实际上就是程序段中的标号L0、L1…L7,也就是说,L其实是一个转移地址表。显然这里用的是段内间接转移,如果是段间转移,则应该将段地址与偏移地址一同存入地址表中:
    L  DD  L0,L1,L2,L3,L4,L5,L6,L7
    

 

相关新闻

成为运营大牛(数据二):数据使用的三测
成为运营大牛(数据一):运营中的那些数据
成为运营大牛(结构四):一图览运营
成为运营大牛(结构三):一张图看清活动运营
成为运营大牛(结构二):一张图看清内容运营
成为运营大牛(结构一): 运营的基础结构
明天我会遇见你
三个月之后,我会变成什么样子?
不自虐的人生是不完整的,高手只不过是一些自虐的傻子罢了
如何在三个月获得三年工作经验?

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》