- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例 2-30 用位操作指令实现 X=X0⊕X1,设X0为P1.0, X1为P1.1, X为ACC.0。 解(1):因位操作指令中无异或指令,依据X=X0⊕X1=X0X1+X0X1用与、或指令完成,编程如下 : X BIT ACC.0 X0 BIT P1.0 X1 BIT P1.1 ; 位定义 MOV C,X0 ANL C, /X1 ; C=X0∧X1 MOV 20H,C ; 暂存于20H 单元 MOV C,X1 ANL C,/X0 ; C=X0∧X1 ORL C,20H ; C=X0X1+X0X1 MOV X,C SJMP $ 解(2):根据异或规则,一个数与“0”异或,该数值不变;与“1”异或,该数值变反,编程如下: MOV C,X0 JNB X1,NCEX ; X1=0,X=C=X0 CPL C NCEX:MOV X,C ; X1=1,X=C=X0 SJMP $ 小 结 (1)51系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分。 (2)指令是程序设计的基础,应重点掌握传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令,掌握指令的功能,操作的对象和结果,对标志位的影响,应要求熟记。 2.4 控制转移指令 这一类指令的功能是改变指令的执行顺序,转到指令指示的新的PC地址执行。 MCS-51单片机的控制转移指令有以下类型: 无条件转移:无需判断,执行该指令就转移到目的地址。 条件转移:需判断标志位是否满足条件,满足条件转移到目的地址,否则顺序执行。 绝对转移:转移的目的地址用绝对地址指示,通常为无条件转移。 相对转移:转移的目的地址用相对于当前PC的偏差(偏移量)指示,通常为条件转移。 长转移或长调用:目的地址距当前PC 64KB地址范围内。 短转移或短调用:目的地址距当前PC 2KB地址范围。 2.4.1 调用指令和返回类指令 1.长调用 LCALL addr16 ;addr16→PC0~15 说明: (1)该指令功能是 ①保护断点,即当前PC(本指令的下一条指令的首地址)压入堆栈。 ②子程序的入口地址 addr16 送PC,转子程序执行。 (2)本指令为64KB地址范围内的调子程序指令,子程序可在64KB地址空间的任一处。 (3)本指令的机器码为三字节 12 addr16。 2.短调用 ACALL addr11; addr11→PC0~10 说明: (1)该指令的功能是 ①保护断点,即当前PC压入堆栈。 ② addrl11→PC0~10,而PC11~15保持原值不变。 (2)本指令为2KB地址范围的调子程序指令,子程序入口距当前PC不得超过2KB地址范围。 (3)本指令的机器码为二字节,设addr11的各位是a10a9a8…a2a1a0,则ACALL指令机器码a10a9a810001a7a6a5a4a3a2a1a0,其中10001是ACALL指令的操作码。 例2-18 子程序调用指令ACALL在 程序存储器中的首地址为0100H,子程序入口地址为0205H。试确定能否使用ACALL指令实现调用?如果能使用,确定该指令的机器码。 解: 因为ACALL指令首地址在0100H,而ACALL是 2字节指令,所以下一条指令的首地址在0102H。0102H和0250H在同一2KB地址范围内,故可用ACALL调用。调用入口地址为0250H,ACALL指令的机器码形式为:0101000101010000B=5150H。 3.子程序返回指令 RET ;从调用子程序返回。 功能:从栈顶弹出断点到PC。 RETI ; 从中断服务程序返回。 功能:从栈顶弹出断点到PC,并恢复中断优先级状态触发器。 2.4.2 转移指令 1. 无条件转移指令 (1)短转移 AJMP addr11 ;addr11→PC0~10 说明: ①转移范围:本指令为2KB地址范围内的转移指令。对转移目的地址的要求与ACALL指令对子程序入口地址的要求相同。 ②机器码形式:本指令为2字节指令。设addr11的各位是a10a9a8…a2a1a0,则指令的机器码为a10a9a800001a7a
文档评论(0)