单片机第4章-精选课件(公开).pptVIP

  • 5
  • 0
  • 约1.81万字
  • 约 70页
  • 2019-12-15 发布于广西
  • 举报
一、 汇编起始指令 ORG 指令格式为: ORG nn 该指令一般总是位于每段源程序或数据块的起始位置,其作用是指明起始地址,即其后面的程序(由一条条指令构成)的目标代码或数据块的起始地址。 式中nn为16位二进制地址。这样,汇编程序 在对源程序进行汇编时,nn 就指明了此语句后面第一条指令或第一个数据的地址,此后的源程序机器码或数据块,就依次连续存放在程序存储器 的以后地址内,直到遇到另一个ORG指令为止。 例10 在内部RAM 中,从50H单元 开始,依次连续 存放了一串字符 , 该字符串的长度不知道,但以回车符作为结束标志 。现要求编程来测试该字符串的长度(不算回车符)。 一种完整的子程序如下: ORG 2000H START: MOV R2, #FFH  ; R2先置FFH初值以标记字符个数 MOV R0, #4FH ; 设R0为地址指针,并置初值 LOOP: INC R0 ; 此时(R0)=50H INC R2 ; 此时(R2)=00H CJNE @R0, #0DH, LOOP ; 0DH为回车符的ASCII码 RET 4.2.4 散转程序设计 散转程序,就是含有散转指令的程序,也是分支程序的一种,它可根据程序运行中的运算结果或运行时输入的数据,将程序转入不同的地点。MCS-51指令系统中,只有一条相对长转移指令,即: JMP @A+DPTR 用它可以很容易地实现散转功能,即根据A中之内容程序跳转到不同的地点。 该指令的功能是 :将程序运行时形成或输入到累加器A中的8位无符号数,与16位数据寄存器DPTR的内容相加,并把相加的结果装入程序计数器PC中,以控制程序转向目标地址去执行。 其中,DPTR的内容为分支转移到达指令的首地址,再由累加器A的内容,来动态地选择其后的256个中的某一个地址。 该指令的特点在于 :转移的目标地址,不是在编程或汇编时预先知道,而是在程序运行过程中,根据A中的内容动态地加以确定。 例11 根据工作寄存器R0 内容的不同,使程序转入相应的分支地点。试编写程序。 首先假设:若 (R0)=0,则程序转移到标号为PR0指令;  若(R0)=1, 则程序转移到标号为PR1指令;  若(R0)=N,则程序转移到标号为PRN指令。 … 程序段如下:  LP0: MOV DPTR , #TAB ; 跳转起始地址送DPTR  MOV A , R0  ; 将已有值的R0之内容给A ADD A , R0 ; 相当于R0内容乘以2送A ? JNC LP1 ; 无进位则转移到LP1  INC DPH ; 有进位则DPH应该加1 LP1: JMP @A+DPTR ; 跳至散转表中相应位置  TAB: AJMP PR0 ;转向PR0分支程序指令,2字节 AJMP PR1 ;转向PR1分支程序指令,2字节  AJMP PRN ; 转向PRN分支程序指令,2字节 PR0 : ;标号为PR0的分

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档