网站大量收购独家精品文档,联系QQ:2885784924

第三章指令系统.pptVIP

  1. 1、本文档共79页,可阅读全部内容。
  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文档。上传文档
查看更多
第三章 指令系统 3.1 MCS-51单片机的指令系统 3.2 指令系统的寻址方式 3.3 指令系统祥解 3.3.2 算术运算类指令 3.3.3 逻辑运算类指令 3.3.4 控制转移类指令 3.3.5 位操作指令 BACK NEXT HOME 81 64 49 36 25 16 9 4 1 0 ROM 2000h 2009h 2008h 2007h 2006h 2005h 2004h 2003h 2002h 2001h ORG 1FFBH 1FF9H 74 05 MOV A,05H ;送原数data 1FFBH 24 02 ADD A,#data ;data=02h 1FFDH 83 MOVC A,@A+PC ;PC=1FFE 1FFEH 80 FE SJMP LUMP ;程序跳转 2000H 00H DB 0 ;表首址 2001H 01H DB 1 2002H 04H DB 4 2003H 09H DB 9 2004H 10H DB 16 2005H 19H DB 25 : : : 2009H 51H DB 81 END 8. 堆栈操作指令 堆栈操作是一种特殊的数据传送指令。 堆栈:一个用来保存程序断点、数据的特殊的存储区域。在MCS-51单片机中,栈区是占用片内RAM的存储空间,具体栈位置由指针SP来确定(系统上电时,SP=07h)。 1,进栈操作: push direct ;sp+1→sp,(direct)→(sp) 2,出栈操作: pop direct ;(sp)→(direct),sp -1→sp 【注意】: ①寻址方式为直接寻址,所以 push a 是错误的,应当是push acc或push 0e0h,同理:push r0也是错误的。 ②进栈是堆栈向上“生长”的过程,即sp+1;出栈则相反,既所谓的“先进后出”原则。 ③系统上电时,sp=07h。SP的值可以根据需要进行修改,以适应具体编程的需要。在确定栈区位置时要考虑对数据区的影响,以避免数据区与栈区冲突。 BACK NEXT HOME BACK NEXT HOME 【举例】:下面是一个BCD码转换为二进制的子程序bcdb中有关堆栈操作的例子。在这里,进栈操作是为了保护主程序中相关寄存器中的数据,因为子程序要使用这些寄存器 org 0800h bcdb: push psw push acc push b : 子程序区 : pop b pop acc pop psw ret 栈底 psw acc b RAM SP 【思考题】:要将30H 和40H 中的数据进行交换,如何利用堆栈操作指令来实现? 答案 BACK NEXT HOME 不带进位的加法指令 (ADD) 1,加法指令: 带进位的加法指令 (ADC) 加1指令 (INC) 2,减法指令: 带进位的减法指令 (SUBB) 减1指令 (DEC) 3,十进制调整指令: (DAA) 4,乘法和除法指令: (MUL,DIV) 1,加法指令(1):不带进位的加法指令 这类指令共有4条,其结果都送入累加器A,计算结果会影响PSW. 格式: ADD A,Rn ;A+Rn→A ADD A,direct ;A+(direct)→A ADD A,@Ri ;A+(Ri)→A ADD A,#data ;A+data→A 【注意】: 1,参加运算的数据都应当是8位的,结果也是8位并影响PSW。 2,根据编程者的需要,8位数据可以是无符号数(0~255),也可以是有符号数(-127~+128)。 3,不论编程者使用的数据是有符号数还是无符号数,CPU都将它们视为有符号数(补码)进行运算并影响PSW。 BACK NEXT HOME 【例】:试分析执行下列指令后累加器A和PSW中各标志的变化。 MOV A,#19H ADD A,#66H 答案 BACK NEXT HOME 1,加法指令(2):带进位的加法指令 这类指令同样有4条,其格式如下: ADDC A,Rn ;A+Rn+Cy→A ADDC A,direct ;A+(direct) +Cy→A ADDC A,@Ri ;A+(Ri) +Cy→A ADDC A,#data ;A+data+Cy→A 【注意】:这里的Cy是指令执行前的Cy;对PSW的影响同ADD指令。 【例】:试用两种加法指令编写16位二进制数的加法程序. 答案 1,加法指令(3):加一指令 格式: INC

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档