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

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 80C51的指令系统汇

第3章 80C51的指令系统 3.1 指令格式及常用符号 单字节指令(49条) 双字节指令(45条) 书写格式 描述符号 3.2 80C51的寻址方式 MOV R7,#20 MOV R0,#30H LOOP: MOV A,@R0 INC R0 DJNZ R7,LOOP 3.3 数据传送类指令(29条) 一般不影响标志寄存器PSW的状态。 16位传送(仅1条) 以A为目的 以Rn为目的 以direct为目的 以@Ri为目的 以DPTR内容为基址 读片外RAM 若将片外RAM中2020H单元中的内容送给A。 方法一 MOV P2,#20H MOV R0,#20H MOVX A,@R0 方法二 MOV DPTR,#2020H MOVX A,@DPTR 入栈指令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-31:检测P1口低4位,高4位不关心。 MOV A,P1 ANL A,#0FH 例3-33:将P1口的高4位设置为高电平,其它位不变。 ORL P1,#F0H 例3-35:若(P1)=59H,将高4位取反,其它位不变。 MOV P1,#59H XRL P1,#F0H 3.6 控制转移类指令(17条) 3.7 位操作类指令(17条) 位操作是以位为单位进行的各种操作。位操作指令中的位地址有4 种表示形式: 十进制调整 DA A ;调整A的内容为正确的BCD码 两个压缩的BCD码按二进制相加后,必须经过调整方能得到正确的和。 当A中低4位出现了非BCD码(1010~1111)或低4位的进位AC=1,则应在低4位加6调整。 当A中高4位出现了非BCD码(1010~1111)或高4位的进位CY=1,则应在高4位加6调整。 执行十进制调整指令后,PSW中的CY表示结果的百位值 【例3-24】若(A)=0110 1001B,表示的BCD码为 (R2)=0101 1000B,表示的BCD码为 ,执行指令: ADD A,R2 DA A (A)=0010 0111B,即 且(CY)=1,即正确的结果为:127 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,

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档