第3章80C51的指令系统.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 80C51的指令系统 3.1 指令格式及常用符号 单字节指令(49条) 双字节指令(45条) 书写格式 描述符号 3.2 80C51的寻址方式 3.3 数据传送类指令(29条) 一般不影响标志寄存器PSW的状态。 16位传送(仅1条) 以A为目的 以Rn为目的 以direct为目的 以@Ri为目的 以DPTR内容为基址 读片外RAM 入栈指令PUSH 字节交换指令XCH 半字节交换指令XCHD 3.4 算数运算类指令(24条) CY为1,无符号数(字节)加减发生进位或借位 OV为1,有符号数(字节)加减发生溢出错误 AC为1,十进制数(BCD码)加法的结果应调整 P为1,存于累加器A中操作结果的“1”的个数为奇数 CY为1,表示D7位需借位 AC为1,表示D3位需借位 OV为1,表示“D6有借位D7无借位”或“D7有借位D6无借位” 3.5 逻辑运算与循环类指令(24条) 3.6 控制转移类指令(17条) 3.7 位操作类指令(17条) 位操作是以位为单位进行的各种操作。位操作指令中的位地址有4 种表示形式: 3.4.2 减法 带借位减法 用此组指令完成不带借位的减法,只需先清CY为0即可 【例3-25】若(A)=C9H,(R2)=54H,(CY)=1,试分析指令SUBB A,R2执行后,累加器的内容及状态标志。 0 1 1 1 0 1 0 0(116) 结果: 0 1 0 1 0 1 0 0(84) -(R2): 1 1 0 0 1 0 0 0 1(1) -(CY): 1 1 0 0 1 0 0 1(201) (A): 即:(A)=74H,(CY)=0,(AC)=0,(OV)=1,(P)=0。 分析:数据为无符号类型。该指令执行前CY=1,说明此指令不是运算的最低字节,即在此指令执行之前,一定执行过低字节的减法并产生了借位。因此,本次相减(201-1-84=116=74H)结果为74H。 减1 这组指令仅 DEC A 影响P标志。其余指令都不影响标志位的状态。 3.4.3 乘法 仅有一条乘法指令 MUL AB ;A与B相乘 无符号 结果:B中为积的高8位,A中为积的低8位。 CY总是被清0;OV=1表示积大于FFH 3.4.4 除法 仅有一条除法指令 DIV AB ;A除以B 无符号 结果:A中为商的整数部分,B中为余数 CY总是被清0;OV=1表示除数为0 3.5.1 逻辑与 逻辑:与、或、异或、清0和取反 循环:左、右移,带进位位左、右移 【例】(A)=C3H,(R0)=AAH,执行指令 ANL A,R0 后,(A)=82H 与操作常用于对某些不关心位进行“清0”,同时“保留”另一些关心位 3.5.2 逻辑或 【例】(A)=C3H,(R0)=55H,执行指令 ORL A,R0 后,(A)=D7H 或操作常用于对某些关心位进行“置1”,不关心位保持不变 3.5.3 逻辑异或 【例】(A)=C3H,(R0)=AAH,执行指令 XRL A,R0 后,(A)=69H 异或操作常用于对某些关心位进行“取反”,不关心位保持不变 3.5.4 逻辑清0和取反 3.5.5 累加器循环移位 3.6.1 无条件转移 短跳转 AJMP addr11 ;PC ←(PC)+ 2,PC10~0 ← addr11 长跳转 LJMP addr16 ;PC ← addr16 相对转移 SJMP rel ;PC ←(PC)+ 2,PC ←(PC)+ rel 目标地址rel 对应范围为 +127 ~-128。 【例】若“NEWADD”为地址1022H,PC的当前值为1000H。执行指令 SJMP NEWADD 后,程序将转向1022H处执行(rel=20H= 1022H-1000H-2)。解析如下: 散转移 JMP @A+DPTR;PC ←(PC)+ 1,PC ←(A)+(DPTR) 可完成多条判跳指令的功能 【例】功能:当(A)=00H时,程序将转到 ROUT0处执行;当(A)=02H时,程序将转到 ROUT1处执行;……。 MOV DPTR,#TABLE JMP @A+DPTR TABLE:AJMP ROUT0 AJMP ROUT1 AJMP ROUT2 AJMP ROUT3 3.6.2 条件转移 累加器判0转移 比较不等转移 减1不为0转移 【例】有一段程序如下,该程序执行后, (A)=10+9+8+7+6+5+4+3+2+1=37H MOV

文档评论(0)

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

1亿VIP精品文档

相关文档