4第3章51系列单片机的指令系统分解.pptVIP

  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文档。上传文档
查看更多
小 结 (1)51系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分。 (2)指令是程序设计的基础,应重点掌握传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令,掌握指令的功能,操作的对象和结果,对标志位的影响,应要求熟记。 2. 半字节交换指令 XCHD A,@Ri ;A0~3← (Ri)0~3 SWAP A ;A4~7←A0~3 例3-4-3:将片内 RAM 2AH和 2BH单元中的 ASCII码转换成压缩式 BCD码存入 20H单元(数字 0~9的ASCII码30H~39H) 85H 压缩的BCD码和非压缩的BCD码见图 如:1823压缩的BCD码为1823H 非压缩的BCD码 非压缩BCD × ◎ ◎ × A A 08 例 将片内RAM 2AH和 2BH单元中的ASCII码转换成压缩式BCD码存入 20H单元 MOV A,#00H ;A=00 MOV R0,#2AH MOV R1,#2BH XCHD A,@R0 SWAP A XCHD A,@R1 XCH A,20H 85H R1→ R0→ 习题:交换片内RAM 40H单元和 41H单元的低半字节 8 5 ;低4位交换A=08 ; A=80H ; 低4位交换 ;(20H)=85H 3 8 0 0 A 3 5 8 0 8 5 @R1 @R0 3 8 3 5 3.2.2 数据传送与交换指令小节 数据传送指令是计算机中使用最频繁的指令 数据传送指令不影响进位和溢出标志. 当目的操作数是累加器A时,影响奇偶标志和零标志. MOV指令用于内部RAM,SFR MOVX用来访问外部数据存储器 MOVC用来访问外部程序存储器 MCS-51单片机的堆栈是寄存器栈,向上生长,数据进栈时先将堆栈指针加1,然后数据进栈.出栈时顺序相反. MCS-51的字采用大端方式存放,低地址存放高字节,高地址存放低字节. 3.2 dir @Ri Rn #data A dir @Ri Rn #data A ADD ADDC SUBB ANL ORL XRL CLR A CPL A A , Rn, @Ri #data dir 加 进位加 借位减 与 或 异或 清0 取反 1.以A为目的操作数的算术、逻辑运算指令 2.以dir为目的操作数逻辑运算指令 A #data dir 与 ANL 或 ORL 异或 XRL dir , #data A 3.3算术运算和逻辑运算指令 逻辑运算是按位进行的,两数运算的运算法则是: 与: 有“0”则“0”; 或: 有“1”则“1” 异或:同为“0” , 异为“1”; 与“0”异或值不变;与“1”异或值变反。 逻辑指令常用于对数据位进行加工。 00001111 例:A=0FH, 执行ANL A,#86H 后 A=06H 例:A=0FH, 执行ORL A,#86H 后 A=8FH 例:A=0FH, 执行XRL A,#86H 后 A=89H ^ + 算术类指令的操作意义非常明确,不一一赘述,注意减指令只有带借位减,因此在多字节减法中,最低字节作减法时,注意先清CY。 A Rn @Ri dir DPTR INC 减 1 指令: DEC A Rn @Ri dir 加 1 指令: 提问:没有DEC DPTR指令,怎么解决DPTR的减 1? 3.加1、减1指令 计算机完成二进制加法其和也为二进制,如果是十进制相加(即BCD码相加)想得到十进制的结果,就必须进行十进制调整(即BCD 码调整)。 调整指令: DA A ;将A中二进制相加和调整成BCD码 调整方法:和低4位大于9或有半进位则低4位加6; 和的高4位大于9或有进位,则高4位加6。 指令根据相加和及标志自行进行判断,因此该指令应紧跟在加指令之后,至少在加指令和该指令之间不能有影响标志的指令。 DA A指令只对一个字节和调整,如为多字节相加必须进行多次调整。此指令不能对减法结果进行调整。 4. 十进制调整指令 例 完成56+17的编程。 MOV A,#56H ;A存放BCD码56H MOV B,#17H ;B存放BCD码17H ADD A, B ;A=6dH DA A ;A=73H SJMP $ 56H 17H 6dH 6 73H + + 5

文档评论(0)

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

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

1亿VIP精品文档

相关文档