- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用-3
3.3.4 控制程序转移指令 计算机功能的强弱,主要取决于转移类指令的多少与功能,特别是条件转移指令。 MCS-51单片机有17条转移类指令,包括无条件转移指令、条件转移指令、子程序调用及返回指令等。 对标志位影响:只有比较转移指令影响进位标志CY,其它指令不影响标志位。 为了便于讨论,将其分为4组进行讨论。 * 嘶洲疹辩韦熄营仍门韭闰萧古辣波踊溜市东锗棺情筑刑誉鼎荫鸯忙琳鲤蒜单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 一、无条件转移指令 无条件转移指令:当程序执行该指令后,程序无条件地转移到指定的地址去执行。 包括短转移、长转移和间接转移3条指令 1、短转移指令SJMP(相对转移指令) SJMP rel ;(PC)+ rel→PC rel:相对转移偏移量,有符号数,﹣128~127,负数表示向回跳转,正数表示向前跳转。 指令实际写为:“SJMP 目标地址标号” * 断丧莲久玲搐虎斩曲沪枕霖嘴矮伺耗遇忍捐瓣申缺挽盼党咨戚瘟菠操彻衰单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 2、长转移指令LJMP LJMP addr16 ;addr16 → PC 由于程序的目标地址是16位,因此程序可以跳转到64KB程序存储器空间的任何地方。 指令的实际编写形式为:“LJMP 目标地址标号”。 * 梨得捞翼招廉犯也家滋理懈岛靠糖嗣粗锡石尺奖磨港淀夫恢怀少怎弓苍骋单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 3、间接转移指令JMP 也叫散转指令、多分支转移指令。 JMP @A+DPTR ;(A)+(DPTR)→PC DPTR为基址,A为相对偏移,在64KB范围内无条件转移。 说明:(1)DPTR一般为确定的值,累加器A为变值,根据A的值转移到不同的地方,因此该指令也叫散转指令。 (2)在使用中,往往与一个转移指令表一起实现多分支转移。 * 笑臂捏陌陆抖婚毖醋叼惮出债茶争入昌汞且冀浆袋鼻集忆拔拦裤赚寺虚剐单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 例3-13 分析下面多分支转移程序段。 MOV B,#3 MUL AB ;开始时(A)=0、1、2 MOV DPTR,#TABLE ;表首地址送DPTR JMP @A+DPTR ;根据A值转移 TABLE: LJMP TAB0 ;(A)=0时转到TAB0执行 LJMP TAB1 ;(A)=3时转到TAB1执行 LJMP TAB2 ;(A)=6时转到TAB2执行 ...... 程序中,根据累加器A的开始值(0、1、2)转移到相应的TAB0~TAB2分支去执行。 * 堂毒朋肇吼谩蔼乙仰哟宅宽且端邀米淤横哈叁先刚闻梭喊啮英亲至蹋涛尉单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 一、条件转移指令 当指令中条件满足时,程序转到指定位置执行,条件不满足时,程序顺序执行。 条件转移指令有三种:判断累加器A转移指令、比较转移指令、循环转移指令,共8条。 这类指令都属于相对转移,转移范围均为﹣128~127。 需要注意的是:注释中的PC值,均为下一条指令的地址值。 * 诀雌驯吼剪裂灶贝呀哆磷蓑扁条蛔患术葛杭豹舆叁铅十谎菲缉谊腹井履其单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 1、判断转移指令 判断A为0转移: JZ rel ;(A)=0, (PC)+ rel→PC ;(A)≠0, 顺序执行 判断A非0转移: JNZ rel ;(A)≠0, (PC)+ rel→PC ;(A)=0, 顺序执行 指令的实际编写形式分别为:“JZ 目标地址标号”和“JNZ 目标地址标号”。 * 黔摇纱找酣侮肘狐罢乳眶子比取挣梢臭刻高末七刀缉幸啄傣戊姐祷殖区嚷单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 例3-14 试编写程序,把片外RAM地址从2000H开始的数据,传送到片内RAM地址从30H开始的单元,直到出现0为止。 程序段如下: MOV DPTR,#2000H MOV R0,#30H LOOP: MOVX A,@DPTR * 粮栓柬温毙峰午胡泉币襄谓漆鉴司妮碴夕厘赴设夜荣峙埃俏渊其媚内念叔单片机原理及应用-3单片机原理及应用-3 3.3.4 控制程序转移指令 LOOP: MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR JNZ LOOP ;
文档评论(0)