单片机原理及应用技术第3章 指令系统.pptVIP

单片机原理及应用技术第3章 指令系统.ppt

  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文档。上传文档
查看更多
5.条件转移指令 执行指令时,如条件满足,则转移;不满足,则顺序执行下一指令。转移目的地址在以下一条指令首地址为中心的256B范围内(-128~+127)。 JZ rel ;如果累加器内容为0,则执行转移 JNZ rel ;如果累加器内容非0,则执行转移 6.比较不相等转移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel * 比较前两个操作数大小,如果值不相等则转移,并转向目的地址。 如果第一操作数(无符号整数)小于第二操作数(无符号整数),则进位标志位Cy置1,否则Cy清0。该指令的执行不影响任何一个操作数的内容。 7.减1不为0转移指令 把减1与条件转移两种功能合在一起。两条: DJNZ Rn,rel ;n =0~7 DJNZ direct,rel * 用于控制程序循环。预先装入循环次数,以减1后是否为“0”作为转移条件,即实现按次数控制循环。 8.调用子程序指令 (1)长调用指令 LCALL addr16 可调用64KB范围内程序存储器中的任何一个子程序。执行时,先把PC加3获得下一条指令的地址(断点地址),并压入堆栈(先低位字节,后高位字节),堆栈指针加2。 接着把指令的第二和第三字节(A15~A8,A7~A0)分别装入PC的高位和低位字节中,然后从PC指定的地址开始执行程序。执行后不影响任何标志位。 * 执行上述两条指令时,单片机的 引脚信号(程序存储器读)有效,这一点读者要牢记。 9.字节交换指令 XCH A,Rn ; (A) ?( Rn),n =0~7 XCH A,direct ; (A) ?( direct) XCH A,@Ri ; (A) ? (( Ri)),i=0,1 这组指令的功能是将累加器A的内容和源操作数的内容相互交换。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等方式。例如: (A)=80H,(R7)=08H,(40H)=F0H (R0)=30H,(30H)=0FH 执行下列指令: * * XCH A,R7 ;(A) ?(R7) XCH A,40H ;(A) ?(40H) XCH A,@R0 ;(A) ?((R0)) 结果为(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H。 结果为(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H。 10.半字节交换指令 XCHD A,@Ri 累加器的低4位与内部RAM低4位交换。 例如:(R0)=60H,(60H)=3EH,(A)=59H,执行完“XCHD A,@R0”指令,则(A)=5EH,(60H)=39H。 * 3.4.2 算术运算类指令 指令系统中,有单字节的加、减、乘、除法指令,算术运算功能比较强。 算术运算指令都是针对8位二进制无符号数的,如要进行带符号或多字节二进制数运算,需编写具体的运算程序,通过执行程序实现。 算术运算的结果将使PSW的进位(Cy)、辅助进位(Ac)、溢出(OV)3种标志位置1或清0。 但增1和减1指令不影响这些标志。 * * 1.加法指令 4条指令: ADD A,Rn ;(A)+(Rn)→A ,n=0~7 ADD A,direct ;(A)+(direct)→A ADD A,@Ri ;(A)+((Ri))→A,i=0,1 ADD A,#data ;(A)+#data→A 8位加法指令的一个加数总是来自累加器A,而另一个加数可由寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址等不同的寻址方式得到。加的结果总是放在累加器A中。 使用本指令时,要注意累加器A中的运算结果对各个标志位的影响: (1)如果位7有进位,则进位标志Cy置1,否则Cy清0。 * * (2)如果位3有进位,辅助进位标志Ac置1,否则Ac(Ac为PSW寄存器中的一位)清0。 (3)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有进位,则溢出标志位OV置1,否则OV清0。 溢出标志位OV的状态,只有带符号数加法运算时才有意义。当两个带符号数相加时,OV=1,表示加法运算超出了累加器A所能表示的带符号数的有效范围(-128~+127),即产生了溢出,表示运算结果是错误的,否则运算是正确的,即无溢出产生。 * * 【例3-1】 (A)=53H,(R0)=FCH,执行指令 ADD A,R0 运算式为

文档评论(0)

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

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

1亿VIP精品文档

相关文档