您当前的位置:五五电子网电子知识单片机-工控设备源码-程序分支转移程序设计 正文
分支转移程序设计

分支转移程序设计

点击数:7566 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   源码-程序

      分支转移程序的特点是程序中含有转移指令,转移指令又分为无条件转移和有条件转移,因此分支程序也可分为无条件分支转移程序和有条件分支转移程序。无条件分支转移程序很简单,这里不再讨论。有条件分支转移程序按结构类型来分,又分为单分支选择结构和多分支选择结构。
  
  1.单分支选择结构
  
  程序的判别仅有两个出口,两者选一,称为单分支选择结构,它在程序设计中的应用极为普遍。单分支转移程序设计一般根据运算结果的状态标志,用条件判跳指令来选择并转移。
  
  求单字节有符号数的二进制补码。
  
  正数补码是其本身,负数补码是其反码加1。因此,程序应首先判断被转换数的符号,负数进行转换,正数本身即为补码。
  
  设二进制数放在累加器A中,其补码放回到A中,程序框图如图4-3所示。781参考程序如下:
  780
  此外,单分支选择结构还有如图4-4782、图4-5783等所示的几种形式。
  
  2.多分支选择结构
  
  当程序的判别部分有两个以上的出口流向时,为多分支选择结构。它常有两种形式,如图4-6和图4-7所示。
  
  指令系统提供了非常有用的两种多分支选择指令:
  784

        790
  它们为分支转移结构程序的编写提供了方便。
  
  间接转移指令“JMP @A+DPTR”由数据指针DPTR决定多分支转移程序的首地址,由累加器A的内容动态地选择对应的分支程序。
  
  4条比较转移指令CJNE能对两个欲比较的单元内容进行比较。当不相等时,程序实现相对转移,并能指出其大小,以备进行第二次判断;若两者相等,则程序按顺序往下执行。
  
  最简单的分支转移程序的设计一般常采用逐次比较法,就是把所有不同的情况一个一个地进行比较,发现符合就转向对应的处理程序。这种方法的缺点是程序太长,有n种可能的情况,就需有n个判断和转移。
  791792
  求符号函数的值。符号函数定义如下:
  793
  X存放在40H单元,y存放在41H单元,程序框图如图4-6所示。
  
  程序如下:
  794
  在实际应用中,经常遇到图4-7所示结构形式的分支转移程序设计,即在不少应用场合,需根据某一单元的内容是0,1,…,n分别转向处理程序0,处理程序1,…,处理程序n。一个典型的例子就是当单片机系统中的键盘按下时,会得到一个键值,根据不同的键值,跳向不同的键处理程序入口。此时,可用直接转移指令(LJMP或AJMP指令)组成一个转移表,然后把该单元的内容读入累加器A,转移表首地址放人DPTR中,再利用间接转移指令实现分支转移。
  
   根据寄存器R2的内容,转向各个处理程序PRGX(X=O~72)。
  800
  程序如下:
  801
  R2中的分支转移参量乘3是由于长跳转指令LJMP要占3个单元。本例程序可位于64 KB程序存储器空间的任何区域。




本文关键字:程序设计  源码-程序单片机-工控设备 - 源码-程序

上一篇:循环程序设计

《分支转移程序设计》相关文章>>>