单片机原理及应用2版教学教程李念强三单元AT89系列单片机的指令系统演示文稿.pptVIP

单片机原理及应用2版教学教程李念强三单元AT89系列单片机的指令系统演示文稿.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 例如:设(A)=43H (CY)=0,则 执行指令: RL A ; RLC A ; RR A ; RRC A ; 结果为:执行第一条指令使(A)=86H, (CY)=0; 执行第二条指令使(A)=0CH, (CY)=1; 执行第三条指令使(A)=06H, (CY)=1; 执行第四条指令使(A)=83H, (CY)=0。 累加器A的内容半字节交换指令: SWAP A ;(A)7~4←→(A)3~0 它实际上相当于执行循环左移指令4次。 * 3.2.4 控制转移类指令 1.无条件转移类指令 无条件转移指令有如下4条指令,它们提供了不同的转移范围和寻址方式: LJMP addr16 ;(PC)←addr16 AJMP addr11 ;(PC)←(PC)+2,PC10-0←addr11 SJMP rel ;(PC)←(PC)+2+rel JMP @A+DPTR ;(PC)←(A)+DPTR 1)LJMP 称为长转移指令,3字节指令,提供 16 位目标地址addr16。。 例如在程序存储器0000H单元存放一条指令: LJMP 3000H ;(PC) ← 3000H 则上电复位后程序将跳到3000H 单元去执行用户程序。 * 2)AJMP称为绝对转移指令,双字节指令。该指令执行后,程序转移的目的地址是由AJMP指令所在位置的地址PC值加上该指令字节数2,构成当前PC值。 所以程序可转移的位置只能是和PC当前值在同一2KB的范围之内。本指令转移可以向前也可以向后,指令执行后不影响状态标志位。 * 3)SJMP称为短转移指令,双字节指令,指令的操作数是相对地址rel。由于rel是带符号的偏移量,所以程序可以无条件向前或向后转移,转移的范围是在SJMP指令所在地址PC值(源地址)加该指令字节数2的基础上,以-128~127为偏移量(256个单元)的范围内实现相对短转移。 例如:ABC: SJMP ABC 4)JMP称为间接长转移指令。它是以数据指针DPTR的内容为基址,以累加器A的内容为相对偏移量,在64KB范围内可无条件转移的单字节指令。该指令的特点是转移地址可以在程序运行中加以改变。 * 例如:根据累加器A的数值,转不同处理程序的入口。 MOV DPTR, #TABLE ;表首址送DPTR JMP @A+DPTR ;依据A值转移 TABLE:AJMP TAB1 ;当(A)=0时转TAB1执行 AJMP TAB2 ;当(A)=2时转TAB2执行 AJMP TAB3 ;当(A)=4时转TAB3执行 2.条件转移指令(判跳指令) (1)累加器判零转移指令 这类指令有以下两条: JZ rel ;若(A)=0,则(PC)←(PC)+2+rel, 若(A)≠0,则 (PC)←(PC)+2 JNZ rel ;若 (A)≠0,则(PC)←(PC)+2+rel, 若(A)=0,则 (PC)←(PC)+2 * 【例3-13】 将外部RAM的一个数据块传送到内部RAM,两者的首址分别为DATA1和DATA2,遇到传送的数据为零时停止。 解:外部RAM向内部RAM的数据传送一定要以累加器A作为过渡,利用判零条件转移正好可以判别是否要继续传送或者终止。完成数据传送的参考程序如下: MOV R0, #DATA1 ;外部数据块首址送R0 MOV R1, #DATA2 ;内部数据块首址送R1 LOOP: MOVX A, @R0 ;取外部RAM数据存入A HERE: JZ HERE ;数据为零则终止传送 MOV @R1, A ;数据传送至内部RAM单元 INC R0 ;修改地址指针,指向下一数据地址 INC R1 SJMP LOOP ;循环取数 * (2)比较转移指令 比

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档