秦晓飞系列-单片机原理及应用-第3章 指令系统.ppt

秦晓飞系列-单片机原理及应用-第3章 指令系统.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
秦晓飞系列-单片机原理及应用-第3章 指令系统

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4条) (2)短转移指令(绝对转移,与相对转移指令对应) 这条指令提供了11位地址,可在2K范围内无条件转移到由a10-a0所指出的地址单元中。 因为指令只提供低11位地址,高5位为原PC11-15位值,因此,转移的目标地址必须在AJMP指令后面指令的第一个字节开始的同一2K字节范围内。 AJMP addr11; a10 a9 a8 0 0001 先(PC)+2→PC a7 -a0 后addr11 → PC10-0 (PC15-11)不变 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4条) (2)短转移指令 例1: ORG 0500H 0500H: AJMP 0703H ; 0703H=0000 0111 0000 0011 B ;Addr11= 111 0000 0011 B ;指令地址PC=0500H ;即:PC =0000 0101 0000 0000B ;该指令为二字节指令在执行时先PC+2,(PC=0502H=0000 0101 0000 0010B,PC的高五位为:0000 0B ,于0703H的高五位相同,在同一个2k范围内。)然后将Addr11送PC的低11位:PC= 0000 0 111 0000 0011 B. 指令的机器码:a10 a9 a8 0 0001 =1110 0001= E1H a7 -a0 =0000 0011= 03H 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4条) (2)短转移指令 例2: ORG 0700H 0700H: AJMP 0832H ; 0832H=0000 1000 0011 0010 B ;Addr11= 000 0011 0010 B ;指令地址PC=0700H ;即:PC =0000 0111 0000 0000B ;该指令为二字节指令在执行时先PC+2,(PC=0702H=0000 0111 0000 0010B,PC的高五位为:0000 0B ,于0832H的高五位不同,不在同一个2k范围内。)该指令跨越2k的范围,错误。 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4条) (3)相对转移(短转移)指令 这条指令的操作数是相对地址,rel是一个带符号的偏移字节数(补码表示),其范围为-128~+127,负数表示反向转移,正数表示正向转移。该指令为二字节,执行时先将PC内容加2,再加相对地址,就得到了转目标地址。 例1: 1000H SJMP 55H; 其转移目的地址=? 解: ∵rel=55H=0101 0101B,为正数。 ∴目的 PC=1000H+2+rel =1002H+55H =1057H SJMP rel; 1000 0000 先(PC)+2→PC rel 后(PC)+rel→PC 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4条) (3)相对转移(短转移)指令 例2: 1000H SJMP F6H; 其转移目的地址=? 解: ∵rel=F6H=1111 0110B为负数,表示向低地址方向转移。 ∴目的 PC=1000H+2+rel=1002H+F6H 不能直接相加, 要先计算出F6H的真值。即: F6H=1111 0110B取反加1后为:0000 1010B=0AH ∴目的 PC=1002H+F6H =1002H-0AH =0FF8H 3.3 89C51/S51单片机的指令系统 3.3.4 控制程序转移类指令 1. 无条件转移指令(4

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档