正在加载图片...
R0>=60,转向SUB6; 解:利用JMP@A+DPIR指令直接给PC赋值,使程序实现转移。程序 流程如图45所示。 参考程序如下: ORG 0100H MOV DPTR,#AB;转移指令表首地址 MOVA,R0;取数 CLR RLC A ;A+2A JMP @A+DPTR PC+ A+DPTR TAB: AJMP SUB0;转移指令表 AJMP SUBI AJMP SUB2 AJMP SUB5 AJMP SUB6 42.4循环程序 .循环程序的结构(如图46所示 ☆循环程序一般包括如下四个部分: (1)初始化 (2)循环体 (3)循环控制(4)结束 ☆循环程序按结构形式,有单重循环与多重循环 ☆在多重循环中,只允许外重循环嵌套内重循环 ☆不允许循环相互交叉,也不允许从循环程序的外部跳入循环程序的内部(如图47 所示)。 2.循环程序设计举例 【例45】有一数据块从片内RAM的30H单元开始存入,设数据块长度为10个单元。 根据下式: X+2X>0 求出Y值,并将Y值放回原处 解:设置一个计数器控制循环次数,每处理完一个数据,计数器减1。程序流程如 图48所示 参考源程序如下: orG 0100H MOV RO, #10R0>=60,转向SUB6; 解:利用JMP @A+DPTR 指令直接给PC赋值,使程序实现转移。程序 流程如图4-5所示。 参考程序如下: ORG 0100H MOV DPTR,#TAB;转移指令表首地址 MOV A,R0 ;取数 CLR C RLC A ;A←2*A JMP @A+DPTR ;PC ← A+DPTR TAB: AJMP SUB0 ;转移指令表 AJMP SUB1 AJMP SUB2 AJMP SUB5 AJMP SUB6 4.2.4 循环程序 1.循环程序的结构(如图4-6所示) ☆循环程序一般包括如下四个部分: (1)初始化 (2)循环体 (3)循环控制 (4)结束 ☆循环程序按结构形式,有单重循环与多重循环。 ☆在多重循环中,只允许外重循环嵌套内重循环。 ☆不允许循环相互交叉,也不允许从循环程序的外部跳入循环程序的内部(如图4-7 所示)。 2.循环程序设计举例 【例4.5】有一数据块从片内RAM的30H单元开始存入,设数据块长度为10个单元。 根据下式: X+2 X>0 Y= 100 X=0 ∣X∣ X<0 求出Y值,并将Y值放回原处。 解:设置一个计数器控制循环次数,每处理完一个数据,计数器减1。程序流程如 图4-8所示。 参考源程序如下: ORG 0100H MOV R0,#10
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有