424136第4章汇编语言程序设计内容摘要:

2. 双向分支程序设计举例 【 例 】 设 X存在 30H单元中 , 根据下式 X+2 X0 Y = 100 X=0 求出 Y值 , 将 Y值存入 31H单元。 ∣ X∣ X0 解:根据数据的符号位判别该数的正负 , 若最高位为 0, 再判别该数是否为 0。 程序流程如图 44所示。 参考程序如下: ORG 1000H MOV A, 30H ;取数 JB , 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 $ ;暂停 A为负数。 取数, A← ( 30H) 开始 结束 A=0。 Y N N A← |X| A←64H A← X+2 存数,( 31H) ← A( 30H) 图44 程序流程图 3. 多向分支程序设计举例 【 例 】 根据 R0的值转向 7个分支程序。 R010, 转向 SUB0; R020, 转向 SUB1; R060, 转向 SUB5; R060, 转向 SUB6; 解:利用 JMP @A+DPTR 指令直接给 PC赋值 ,使程序实现转移。 程序流程如图 45所示。 参考程序如下: ORG 2020H MOV DPTR, TAB;转移指令表首地址 MOV A, R0 ;取数 MOV B, 10 …… DIV AB ; A10,商在 A中 CLR C RLC A ; A← 2A JMP @A+DPTR ; PC ← A+DPTR TAB: AJMP SUB0 ;转移指令表 AJMP SUB1 AJMP SUB2 AJMP SUB5 AJMP SUB6 K=。 转 SUB0 转 SUB1 转 SUB6 K=0 K=1 …… K=6 开始 图 45 多向分支程序流程图 返回本节 循环程序 1. 循环程序的结构 ( 如图 46所示 ) ☆ 循环程序一般包括如下四个部分: ( 1) 初始化 ( 2) 循环体 ( 3) 循环控制 ( 4) 结束 ☆。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。