第四章程琛序设计.pptVIP

  • 9
  • 0
  • 约1.21万字
  • 约 68页
  • 2018-12-25 发布于福建
  • 举报
第四章程琛序设计

第三章 汇编语言程序设计 §3-6 分支程序设计 §3-7 循环程序设计 分支程序练习: 1、3个8位无符号数分别存放在内部RAM 40H、41H和42H单元中, (1)找出最大数存放到RAM 43H单元中。 (2)将它们按从大到小排列,仍存放在上述存储单元中。 2、编程序解函数, 1 X10 设X值存放在40H,Y值存 Y = 0 X=10 放在41H。 -1 X10 一、循环程序的基本结构 在基本设计中,控制一部分指令重复执行若干次,用简短的程序完成大量的处理任务,这种按某种控制规律重复执行的程序,称为循环程序。 1. 先执行后判断结构 此结构如图4-4所示。特点是一进入循环,先执行循环处理部分,然后根据循环控制条件判断是否结束循环,若不结束,则继续执行循环操作;若结束,退出循环。 返回 入口 置循环初值 循环处理 修改循环参数 修改循环参数 循环处理 退出循环 退出循环 循环控制 循环控制 置循环初值 结束 继续 入口 结束 继续 图 4-4 图 4-5 返回 2. 先判断后执行结构 此结构如图4-5所示。特点是一进入循环先判断循环控制条件是否结束循环,若结束,退出循环,否则继续执行循环操作。 循环程序由以下四个基本组成部分. (1)置循环初值。设置循环开始的初始值,为循环做准备。如设计数器,工作单元初值。 (2)循环处理。循环程序中重复执行的内容。 (3)循环修改。修改循环参数,为执行下一次循环做准备。 (4)循环控制。判断是否结束循环 返回 二、 循环程序设计举例 1. 循环次数已知的情况 通常采用“计数法”来控制循环,选择“先执行,后判断”循环结构。 例 4-4 多个单字节数求和,设:10 个字节的无符号数据依次存放在内部 RAM 40H开始的单元中,所求结果存放在 R3、R2中。本例循环次数已知,采用计数法控制循环。 解: M:40H开始的10个内部存储单元 R:R0:地址指针 R7:计数器 R3、R2清0 返回 ORG 8000H MOV R0,#40H ;置数据指针 MOV R7,#10 ;置计数器初值 MOV R3,#0 ;结果单元清零 MOV R2,#0 ; LOOP1: MOV A,R2 ;取加数 ADD A,@R0 ;求和 MOV R2,A ;存结果低 8 位 JNC LOOP2 ;无进位,转LOOP2 INC R3 ;有进位,结果高 8 位加1 LOOP2: INC R0 ;修改指针 DJNZ R7,LOOP1 ;未完,继续 END 返回 例4-5 将内部RAM中20H-3FH单元的内容送外部RAM的2000H开始的连续单元中。 解:M:内部RAM中 20H-3FH单元,外部 RAM的2000H开始的 32个存储单元 R:R0、DPTR 地址指针 R7 计数器 开始 R0 20H DPYR 2000H R7 32 A ((R0)) (DPTR) A R0 (R0)+1 DPTR (DPTR)+1 R7=0? 结束 START: MOV R0,#20H MOV DPTR,#2000H MOV R7,#32 LOOP:MOV A, @R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,LOOP SJMP $ 2.循环次数未知的情况 在有些问题中,循环次数事先无法确定,但循环执行次数与问题中的某些条件有关, 而且这些条件可以测试到,在这种情况下宜选择“先判断,后执行”的循环结构。 例4-6 寻找内部 RAM 中起始地址为 data 的100个字节数据中是否有“$”,若发现“$”字符,停止操作。 本例结束条件为(1)找到“$”停止 (2)若无“$”,100次后也结束.

文档评论(0)

1亿VIP精品文档

相关文档