第3章80C51的指令系统解说.pptVIP

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 位操作指令应用举例 已知:内部RAM 的M1、M2单元有两个无符号的8位数。试编程比较其大小,并将大数送MAX单元。 【解】: MOV A,M1 ;操作数1送累加器A CJNE A,M2,LOOP ;两个数相比较 LOOP: JNC LOOP1 ;M1=M2时转LOOP1 MOV A,M2 ;M1M2时,取M2到A LOOP1: MOV MAX,A ;A中数据送MAX单元 说明:1、第2条指令作为比较指令使用,不论结果如何都转LOOP 2、第3条指令是一条位控转移指令,根据Cy的状态控制转移。 本章小结 指令系统的功能强弱决定了计算机性能的高低。80C51 单片机的指令系统共有111 条指令,其指令执行时间短、指令字节少、位操作指令极为丰富。 指令由操作码和操作数组成。操作码用来规定要执行的操作的性质,操作数用于给指令的操作提供数据和地址。8051 的指令按其编码长短可以分为3 种格式:单字节指令、双字节指令和三字节指令。 寻址方式是寻找存放操作数的地址并将其提取出来的方法。8051 单片机有7 种基本的寻址方式:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、变址寻址、相对寻址和位寻址。 * 数据传送类指令在单片机中应用最为频繁,其特点是执行的结果不影响标志位的状态;算术运算类指令的特点是执行的结果通常影响标志位的状态;逻辑运算类指令执行的结果一般不影响标志位CY、AC 和OV,仅在涉及累加器A 时才对标志位P 产生影响;控制程序的转移要利用转移指令,8051 的转移指令有无条件转移、条件转移及子程序调用与返回等;位操作具有较强的位处理能力,在进行位操作时,以进位标志CY 作为位累加器 * 思考题与习题 1、80C51系列单片机的指令系统有何特点? 2、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 3、对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问? 4、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。 (1)使ACC.0置位; (2)清除累加器高4位; (3)清除ACC.3,ACC.4,ACC.5,ACC.6 * 5、试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。 6、试编写程序,完成两个16位数的减法:7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。 7、试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。 8、试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。 * * * * * 3.5 逻辑运算指令 功能:对2个8位二进制数进行逻辑与、或、非和异或操作; 特点:除了以累加器A为目标寄存器的指令影响PSW的P位外,其余指令对PSW均无影响。 1,逻辑与运算指令 ( ANL ) 2,逻辑或运算指令 ( ORL ) 3,逻辑异或指令 ( XRL ) 4,累加器清零和取反指令 ( CLR CPL ) * 1、逻辑与运算指令 格式: ANL A,Rn ;A ∧ R n → A ANL A,direct ; A ∧ (direct) → A ANL A,@Ri ; A ∧ ( Ri) → A ANL A,#data ; A ∧ data → A ANL direct,A ; (direct) ∧ A → direct ANL direct,# data ; (direct) ∧ data → direct 上面的指令也可以分为两类: 1,以累加器A为目标寄存器的逻辑运算指令; 2,以内存单元为目标的逻辑运算指令。 * 应用举例(一) 已知(R0)=30H和(30H)=0AAH,试问执行下列指令后累加器A和30H单元中的内容是什么? 1, MOV A,#0FFH 2, MOV A,#0FH ANL A,R0 ANL A,30H (A=30H,(30H)=0AAH) (A=0AH,(30H)=0AAH) 3, MO

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档