单片机原理及应用 作者 林毓梁 主编 第4章 MCS-51单片机指令系统.pptVIP

单片机原理及应用 作者 林毓梁 主编 第4章 MCS-51单片机指令系统.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文档。上传文档
查看更多
4.1 汇编语言 四、 寻址方式 MCS-51系列单片机的指令系统 4.2 数据传送类 数据传送类 4.3 算术运算类 1、加法运算 2、减法运算 3、乘法运算 4、除法运算 5、BCD码调整指令 4.4 逻辑运算与移位类 4.5 控制转移类指令 控制转移类指令共计 17 条, 可分为无条件转移指令、 条件转移指令、 子程序调用及返回指令。 有了丰富的控制转移类指令, 就能很方便地实现程序的向前、 向后跳转, 并根据条件分支运行、 循环运行、 调用子程序等。 1. 无条件转移指令 无条件转移指令有如下 4 条指令, 它们提供了不同的转移范围和寻址方式: LJMPaddr16; (PC) ← addr16, 02 addr 15~8 addr 7~0 AJMPaddr11; (PC) ← (PC)+2, addr10~8 00001 addr 7~0?(PC)10~0 ← addr11 SJMP rel ; (PC) ← (PC)+2+rel , 80rel JMP @A+DPTR ; (PC) ← (A)+DPTR , 73 (1) LJMP 称为长转移指令, 三字节指令, 提供 16 位目标地址addr16。 例如: 在程序存储器0000H单元存放一条指令: LJMP3000H; (PC) ← 3000H, 02 30 00 则上电复位后程序将跳到3000H 单元去执行用户程序。 (2) AJMP称为绝对转移指令, 双字节指令。 它的机器代码是由 11 位直接地址addr11和指令特有操作码 00001, 按下列分布组成的: 该指令执行后, 程序转移的目的地址是由AJMP指令所在位置的地址PC值加上该指令字节数 2, 构成当前PC值。 取当前PC值的高 5 位与指令中提供的 11 位直接地址形成转移的目的地址, 即: 由于 11 位地址的范围是 00000000000~11111111111, 即 2 KB范围, 而目标地址的高 5 位是由PC当前值固定的, 所以程序可转移的位置只能是和PC当前值在同一 2 KB的范围之内。 本指令转移可以向前也可以向后, 指令执行后不影响状态标志位。 例如: 若AJMP指令地址(PC)=2300H。 执行指令: AJMP0FFH; (PC) ← (PC)+2=2302H, 01 FF (PC)10~0← 00011111111 结果为: 转移目的地址 (PC)=20FFH , 程序向前转向 20FFH单元开始执行。 又如: 若AJMP指令地址(PC)=2FFFH。 执行指令: AJMP0FFH; (PC) ← (PC)+2=3001H, 01 FF (PC)10~0← 00011111111 结果为: 转移目的地址 (PC)=30FFH , 程序向后转向 30FFH单元开始执行。 (3) SJMP称为短转移指令, 双字节指令, 指令的操作数是相对地址rel。 由于rel是带符号的偏移量, 所以程序可以无条件向前或向后转移, 转移的范围是在SJMP指令所在地址PC值(源地址)加该指令字节数2的基础上, 以-128~+127 为偏移量(256 个单元)的范围内实现相对短转移, 即: 目的地址=源地址+2+rel 用汇编语言编程时, 指令中的相对地址rel往往用欲转移至的地址的标号(符号地址)表示, 能自动算出相对地址值; 但人工将程序翻译成机器代码时, 需自己计算相对地址rel。 rel的计算公式如下: 向前转移: rel=FE-(源地址与目的地址差的绝对值) 向后转移: rel=(源地址与目的地址差的绝对值)-2 若rel值大于 80H, 程序向前转移; 若rel值小于 80H, 则程序向后转移。 例如: 设(PC)=2100H, 若转向215CH去执行程序, 则: r

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档