第3章 80C51单片微机的指令系统.ppt

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

第三章 80C51单片微机的指令系统 南京邮电大学 电气工程系 OUTLINE 寄存器寻址示意图 寻址方式与寻址空间 数据传送指令示意图 3.2.6 堆栈操作指令组 3.3 算术运算类指令 3.4 逻辑运算类指令 3.5 控制程序转移类指令 CJNE指令执行流程图 3.6 布尔(位)操作类指令 ? RR A ? 将累加器的内容逐位循环右移一位,并且a0的内容移到a7。 ⒈ 循环右移指令 不影响标志位。 例:设(A)=A6H, 执行RR A指令,执行结果= 53H) RRC A ? 将累加器的内容和进位位一起循环右移一位,a0移入进位位CY,CY的内容移到 a7。 ⒉ 带进位循环右移指令 不影响 CY之外的标志位。 例:设(A)=B4H),(CY)=1,执行RRC A指令, 执行结果为:(A)=DAH () ,(CY)=0 RL A ? 将累加器的内容逐位循环左移一位,a7的内容移到a0 ⒊ 循环左移指令 不影响标志位。 例:设(A)=3AH),执行RL A指令, 执行结果:(A)=74H(01110l00B) ? RLC A 将累加器的内容和进位位一起循环左移一位,并且a7移入进位位CY,CY的内容移到a0。 ⒋ 带进位循环左移指令 不影响 CY之外的标志位。 例:设(A)=3AH),(CY)=1, 执行RLC A指令,(A)=75H),(CY)=0 CPL A ? 对进行累加器的内容逐位取反,结果仍存在A中。 不影响标志位。 例:设(A)=21H(0010 0001B), 执行指令:CPL A 执行结果:(A)=DEH (1101 1110B) 3.4.5 累加器按位取反指令 CLR A ? 对累加器进行清0, 不影响标志位。 例:设(A)=44H, 执行指令:CLR A 执行结果:(A)= 00H 3.4.6 累加器清0指令? 例10: 数据的拆分与拼装 要求:从(30H)=X7X6X5X4X3X2X1X0中取出高5位,从(31H)=Y7Y6Y5Y4Y3Y2Y1Y0中取出低3位,拼装后存入40H中,(40H)=Y2Y1Y0X7X6X5X4X3 地址 机器码 ORG 0000H 0000 E5 30 MOV A,30H 0002 C4 SWAP A ;X3X2X1X0 X7X6X5X4 0003 23 RL A ;X2X1X0 X7X6X5X4X3 左 移了5位 0004 F5 40 MOV 40H,A 0006 53 40 1F ANL 40H, 0009 E5 31 MOV A,31H 000B 75 F0 20 MOV B,#20H 000E A4 MUL AB ; Y2Y1Y0 0 0 0 0 0 左移了5位 000F 54 E0 ANL A, 0011 42 40 ORL 40H,A 0013 21 13 HERE :AJMP HERE 注:实现左移5位,采用了两种方法,即移位和乘法 程序的顺序执行是由PC自动加1来实现的,但在应用系统中,往往会遇到一些情况,需要强迫改变程序执行顺序,比如调用子程序,比如根据检测值与设定值的比较结果要求程序转移到不同的分支入口等。 80C51设有丰富的控制转移指令,可分为无条件转移指令、条件转移指令、循环转移指令、子程序调用和返回指令及空操作指令等。但不包括布尔变量控制程序转移指令 助记符12种: AJMP、LJMP、SJMP、JZ、JNZ、CJNE、DJNZ、ACALL、LCALL、 RET、RETI、NOP ? 指令 机器码 SJMP rel

文档评论(0)

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

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

1亿VIP精品文档

相关文档