单片机03指令系统.ppt

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

2007年2月 信息与计算机学院 AJMP addr11 ;PC←PC+2, ;然后PC高5位不变,PC·10~PC·0←addr11 (PC+2为该指令执行后的下一条指令的PC值) 程序转移的目的地址与AJMP addr11指令的下一条指令的第一个字节在同一2KB区域内。其中:a·10~a·0是一个无符号数,因此转移指令可以在2KB范围内向前(地址减小)/向后(地址增大)转移。Add11可以用符号地址代替,但汇编时需按上述格式代真。 若将MCS-51单片机64KB程序区分成32页(每页2KB),则PC15~PC11(00000~11111)称为页面地址(即:0页号~31页号),a10~a0称为页内地址。 (2)绝对转移指令 2007年2月 信息与计算机学院 例3.22 PC=2500H,执行指令: 2500H:AJMP 0FFH ;PC←PC+2 = 2502H ;PC·15~PC·11 = 00100 ,PC·10~PC·0 = 0FFH 结果:目标地址为PC = 20FFH,程序向前转移至20FFH处执行指令。 例3.23 PC=2FFEH,执行指令: 2FFEH:AJMP 0FFH ;PC←PC+2 = 3000H ; PC·15~PC·11 = 00110 ,PC·10~PC·0 = 0FFH 结果:目标地址为PC = 30FFH,程序向后转移至30FFH处执行指令。 2007年2月 信息与计算机学院 SJMP rel ;PC← (PC+2)+rel ;该条指令执行后的下一条指令地址 rel是8位有符号数(用补码表示),范围:-128B~+127B,即实现以本条SJMP指令的下一条指令为起点,向前(地址减小)转移128字节,向后(地址增大)转移127个字节。 rel往往用欲转移至的地址的标号(符号地址)表示。 在MCS-51指令系统中没有停机指令,若想实现此功能,程序可写成“Here:SJMP Here”(或“HER:SJMP $”),其指令的代码是80FE,其中:80是SJMP rel指令的操作码,FE是(-2)的补码,该指令可实现原地踏步的功能,以代替停机指令。 (3)短转移指令 2007年2月 信息与计算机学院 例3.24 请根据如下程序的执行情况,计算出rel = ? ORG 2000H 2000H:START: MOV SP,#30H MOV A,#00H …… 2020H:80 rel SJMP START  2022H: …… …… END Rel是从SJMP START指令下一条指令2022H处转向START地址2000H的偏移量,程序需向前转移22H字节,而(-22H)补 = 0DEH,所以rel = 0DEH。 2007年2月 信息与计算机学院 图3-10 三条转移指令示意图 前三条转移指令 ? 2007年2月 信息与计算机学院 JMP @A+DPTR  ;PC←A+DPTR 该指令代码只有1个字节, 目的地址(PC)=基址寄存器DPTR的 内容+偏移量寄存器A中的内容, 可实现程序的分支转移。通常将 转移指令表的基址放在DPTR中, 要执行的转移指令在转移指令表中 的偏移量放在偏移量寄存器A中, 该JMP @A+DPTR执行后,实现了 程序的分支转移,故又称散转指令。 偏移量寄存器A是8位无符号数,地址加大,范围不能超出256B。 (4)长相对转移指令((基址+变址)转移指令) 2007年2月 信息与计算机学院 例3.25 在累加器A中存放有待处理的键值编号0~3,程序中有对这4个键值处理的程序段,编程实现根据键值0~3,转相应程序段完成其操作。 现将转移至4个键值程序段的入口地址的长转移指令组成一张散转表,表基址为TAB。 STAR:MOV A,#NUMB ;A←键值 MOV R7,A RL A ADD A,R7 ;A←A×3 ? MOV DPTR, #TAB ;DPTR←表基址 JMP @ A+DPTR ;依据键值转相应程序处理 TAB:LJMP KEY0 ;转入0#键值程序 LJMP KEY1 ;转入1#键值程序 LJMP KEY2 ;

您可能关注的文档

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档