正在加载图片...
4.2.3分支程序 1.分支程序的基本式 分支程序有三种基本形式,如图4-3所示。 分支程序的设计要点如下: (1)先建立可供条件转移指令测试的条件。 (2)选用合适的条件转移指令。 (3)在转移的目的地址处设定标号。 2.双向分支程序设计举例 【例43】设X存在30H单元中,根据下式 X+2X>0 X<0 求出Y值,将Y值存入31H单元。 解:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序 流程如图44所示。 参考程序如下: ORG 0100H MOVA,30H;取数 JB ACC7,NEG;负数,转NEG JZ ZERO 为零,转ZER0 ADDA,#02H;为正数,求X+2 AJMP SAVE;转到SAⅤE,保存数据 ZER0:MOVA,#64H;数据为零,Y=100 AJMP SAVE 转到SAVE,保存数据 NEG: DEC A CPL A 求|X SAVE:MoOV31H,A;保存数据 SJMP $ ;暂停 3.多向分支程序设计举例 【例44】根据R的值转向7个分支程序。 R0<10,转向SUB0; R0<20,转向SUB1; R0<60,转向SUB54.2.3 分支程序 1.分支程序的基本形式 分支程序有三种基本形式,如图4-3所示。 分支程序的设计要点如下: (1)先建立可供条件转移指令测试的条件。 (2)选用合适的条件转移指令。 (3)在转移的目的地址处设定标号。 2.双向分支程序设计举例 【例4.3】 设X存在30H单元中,根据下式 X+2 X>0 Y = 100 X=0 ∣X∣ X<0 求出Y值,将Y值存入31H单元。 解:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序 流程如图4-4所示。 参考程序如下: ORG 0100H MOV A,30H ;取数 JB ACC.7,NEG;负数,转NEG JZ ZER0 ;为零,转ZER0 ADD A,#02H ;为正数,求X+2 AJMP SAVE ;转到SAVE,保存数据 ZER0:MOV A,# 64H ;数据为零,Y=100 AJMP SAVE ;转到SAVE,保存数据 NEG:DEC A ; CPL A ;求∣X∣ SAVE:MOV 31H,A ;保存数据 SJMP $ ;暂停 3.多向分支程序设计举例 【例4.4】 根据R0的值转向7个分支程序。 R0<10,转向SUB0; R0<20,转向SUB1; R0<60,转向SUB5;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有