单片微机原理及接口技术第03章STCdpj.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文档。上传文档
查看更多
7.堆栈操作指令 8051单片机片内RAM中可以设定一个后进先出(LIFO-Last In First Out)的区域称作堆栈. 堆栈指针SP指出堆栈的栈顶位置。 (1)进栈指令 PUSH direct 先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的片内RAM单元中。 * 例如:当(SP)=60H,(A)=30H,(B)=70H时, 执行:PUSH ACC ; 则:(SP)+1→SP =61H,(A)→61H PUSH B ; 则:(SP)+1→SP =62H,(B)→62H 结果:(61H)=30H,(62H)=70H,(SP)=62H * (2)出栈指令 POP direct SP指示的栈顶(片内RAM单元)内容送入direct字节单元中,栈指针SP减1. 例如: 当 (SP)=62H,(62H)=70H,(61H)=30H, 执行: POP DPH ;((SP))→DPH,(SP)-1→SP POP DPL ;((SP))→DPL,(SP)-1→SP 结果:(DPTR)=7030H,(SP)=60H * 9.字节数据交换指令 XCH A,Rn XCH A,direct XCH A,@Ri XCHD A,@Ri SWAP A 例如:(A)=80H,(R7)=08H,(40H)=F0H (R0)=30H,(30H)=OFH 执行下列指令: XCH A,R7 ;(A)与(R7)互换 XCH A,40H ;(A)与(40H)互换 XCH A,@R0 ;(A)与((R0))互换 结果: (A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H * 累加器的低4位与内部RAM低4位交换: XCHD A,@Ri 例如: (R0)=60H,(60H)=3EH,(A)=59H 执行完 XCHD A,@RO 指令, 则(A)=5EH,(60H)=39H。 * 累加器半字节交换指令 SWAP A 将累加器A的高半字节(Acc.7~Acc.4)和低半字节(Acc.3~Acc.0)互换。 例 (A)=0C5H,执行指令: SWAP A 结果:(A)=5CH * 3.4.2 算术操作类指令 单字节的加、减、乘、除法指令,都是针对8位二进制无符号数。 执行的结果对Cy、Ac、OV 三种标志位有影响。 但增1和减1指令不影响上述标志。 1.加法指令 共有4条加法运算指令: ADD A,Rn ADD A,direct ADD A,@Ri ADD A,#data * 一个加数总是来自累加器A,而另一个加数可由不同的寻址方式得到。结果总是放在A中。 使用加法指令时,要注意累加器A中的运算结果对各个标志位的影响: (1)如果位7有进位,则置“1”进位标志Cy,否则清“0”Cy (2)如果位3有进位,置“1”辅助进位标志Ac,否则清“0”Ac(Ac为PSW寄存器中的一位) * (3)如果位6、位7中只有一个有进位,则溢出标志位OV=“1”, 否则如果位6、位7中都没有进位,则OV= “0” 。 溢出标志位OV的状态,只有在带符号数加法运算时才有意义。 当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围 * 例 (A)=53H,(R0)=FCH,执行指令 ADD A,R0 结果: (A)=4FH,Cy=1,Ac=0,OV=0,P=1 注意:上面的运算中,由于位6和位7同时有进位,所以标志位OV=0。 例 (A)= 85H,(R0)=20H,(20H)=AFH,执行指令: ADD A,@R0 结果:(A)=34H,Cy=1,Ac=1,OV=1,P=1 注意:由于位7有进位,而位6无进位,所以标志位OV=1 * ?2.带进位加法指令 标志位Cy参加运算,因此是三个数相加。共4条: ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data 例:(A)=85H,(20H)=FFH,Cy=1,执行指令: ADDC A,20H 结果为:(A)=85H,C

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档