好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机课件——算术运算类指令.ppt

38页
  • 卖家[上传人]:第***
  • 文档编号:49767288
  • 上传时间:2018-08-02
  • 文档格式:PPT
  • 文档大小:243.50KB
  • / 38 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统2 算术运算类指令(24条)Arithmetic Operations主要对8位无符号数;也可用于带符号数运算包括:加、减、乘、除、加1、减1运算指令影响PSW有关位 成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 算术运算类指令(6种/24条)加法运算: (ADD——4条) 带进位加法运算: (ADDC——4条) 带借位减法运算: (SUBB——4条) 加1/减1操作: (INC,DEC——9条) 单字节乘/除法运算: (MUL,DIV——2条) 十进制调整: (DA A——1条)成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统加法运算: (ADD——4条) 带进位加法运算: (ADDC——4条) 带借位减法运算: (SUBB——4条)所有的加法(ADD)、带进位加法(ADDC)、带借位 减法(SUBB)运算都是以 A为一个加数或被减数,最 终结果也存进 A 。

      加法(ADD)、带进位加法(ADDC) 以及带借位减 法(SUBB)运算中,如果产生了进位或借位,将自动 对PSW中的Cy标志位置“1” 带进位加法(ADDC):(A)(A)+(Cy)+(第二操作数) 带借位减法(SUBB):(A)(A)-(Cy)-(第二操作数)成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统ADD A,#data ; A+data→A ADD A,direct ; A+(direct )→A ADD A,Rn ; A+Rn→A ADD A,@Ri ; A+(Ri)→A 用途:将A中的值与源操作数所指内容相加,最终结果 存在A中1.不带进位位的加法指令(4条)加法指令成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例例: :设(设(A A))=49H=49H,(,(R0R0))=6BH=6BH执行:执行: ADD ADD A A,,R0 R0 结果:结果:CYCY=?=?,,ACAC=?=?,,P P=?=?,,OVOV=?=?,, ((A A))=?=?CY=0,AC=1,P=0,OV=1, (A)=B4H成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 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用途:将A中的值和其后面的值以及进位位C中的值相 加,最终结果存在A,常用于多字节数运算中。

      成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统说明:由于51单片机是一种8位机,所以 只能做8位的数学运算,但8位运算的范围只 有0~255,这在实际工作中是不够的,因此 就要进行扩展,一般是将2个8位(两字节)的数 学运算合起来,成为一个16位的运算,这样 ,可以表达的数的范围就可以达到0~65535 成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例:先做67H+A0H=107H,而107H显然超过了 0FFH,因此最终保存在A中的是07H,而1则到了 PSW中的CY位了换言之,CY就相当于是100H 然后再做10H + 30H + CY,结果是41H,所 以最终的结果是4107H1067H+30A0H0001 0000 0110 0111 0011 0000 1010 0000 0100 0001 0000 0111 1067H 30A0H4107H成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例:设1067H存在R1R0中, 3020H存在R3R2 中,计算R1R0+R3R2,结果存在R5R4中MOV A,R0 ADD A,R2 ;R0+R2→A和CY MOV R4,A MOV A,R1 ADDC A,R3 ;R1+R3+CY→A和CY MOV R5,A成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统又例:先做67H+20H=87H,没有超过0FFH,因此 最终保存在A中的是87H,而PSW中的CY=0。

      然后再做10H + 30H + CY,结果是40H,所 以最终的结果是4087H1067H+3020H0001 0000 0110 0111 0011 0000 0010 0000 0100 0000 1000 0111 1067H 3020H4087H成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统DA A在进行BCD码加法运算时,跟在ADD和ADDC指 令之后,用于对累加器A中刚进行的两个BCD码的加 法的结果进行十进制调整例:A=0001 0101BCD(代表十进制数15)ADD A,#83. 十进制调整指令(1条); A=1DH,按二进制规律加; A=23H,按十进制规律加 DA A成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统调整要完成的任务是: (1)当累加器A中的低4位数出现了非 BCD码(1010~1111)或低4位产生进位 (AC=1),则应在低4位加6调整,以产 生低4位正确的BCD结果2)当累加器A中的高4位数出现了非BCD 码(1010~1111)或高4位产生进位(CY=1 ),则应在高4位加6调整,以产生高4位正 确的BCD结果。

      十进制调整指令执行后,PSW中的CY表 示结果的百位值成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例 若(A)=0101 0110B,表示的BCD码为56,( R3)=0110 0111B,表示的BCD码为67,(CY)=0 执行以下指令: ADD A,R2 DA A 由于(A)=0010 0011B,即23,且(CY)=1,即结果为BCD数123 应该注意,DA指令不能对减法进行十进制调整成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 减法指令(8条)SUBB A,Rn ; A-Rn-CY→A SUBB A,direct ; A-(direct )-CY→A SUBB A,@Ri ; A-(Ri)-CY→A SUBB A,#data ; A-data-CY→A 将A中的值减去源操作数所指内容以及进位位C中的 值,最终结果存在A中1. 带借位的减法指令(4条)成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例: SUBB A,R2 设: A=C9H,R2=55H,CY=1, 执行指令之后,A中的值为73H。

      成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统说明:没有不带借位的减法指令,如果需 要做不带位的减法指令(在做第一次相减时 ),只要将CY清零即可 对带符号数,要注意OV标志OV=1,出 错成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例:设(A)=52H, (R0)=B4H 执行指令: CLR CSUBB A, R0 结果为:((A A))=?,=?, CY CY=?, =?, ACAC=?, =?, OVOV=?, =?, P P=?=?((A A))=9EH, CY=1, AC=1, OV=1, P=1=9EH, CY=1, AC=1, OV=1, P=1成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统加1/减1操作: (INC,DEC——9条)INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位(CY、OV 、AC).只有涉及累加器A的指令INC A、DEC A才影响奇偶标志P成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统单字节乘/除运算: (MUL,DIV——2条) 两个单字节数的乘/除法运算只在A与B之间进行 。

      MUL AB: (A)与(B)相乘, 积为16位数,(B)积的高8位; (A)积的低8位 DIV AB: (A)除以(B),结果用2字节表示,(A)商的整数部分;(B)余数成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统乘法指令执行后,进位标志CY总是清零,即CY=0除法指令执行后,进位标志CY和溢出标志OV均被清零 若除数B中的内容为0时,除法运算没有意义,结果 为不定值,此时溢出标志OV被置为1,即OV=1,而 CY仍为0.成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统1、写出下列程序的运行结果 MOV SP,# 40H MOV 42H,#85H MOV 55H,#37H PUSH 42H PUSH 55H POP 42H POP 55H (SP)=? (42H)= ? (55H)= ?练习题成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统2、执行下面程序段后,片内RAM 30H和片 外RAM 30H单元的值是:MOV 30H, #30 MOV R1, #30H MOV A, #03H MOVX @R1, A XCH A, @R1 MOVX @R1, A内部RAM(30H)=?;外部RAM(30H)=?成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统3、判断题 下面指令是否正确,并将错误指令改正之。

      MOV #30H , A MOV @DPTR , A DA R1 DIV A , R0 MOV 30H , 40H PUSH #30H 成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 5 逻辑运算类指令(24条)主要用于对2个操作数按位进行逻辑操作,结果送到 A或直接寻址单元 v 主要操作与、或、异或、移位、取反、清零等 v 对标志位的影响除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位Logic Operations成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 逻辑运算指令的常见用法逻辑与ANL用于清0或者保留某些位: 例: ANL A, #0FH; 则(A) = 0AH( 已知累加器A中已存有数:9AH )逻辑或ORL用于置1或者保留某些位: 例: ORL A, #0FH; 则(A) = 9FH逻辑异或XRL用于取反或者保留某些位: 例: XRL A, #0FH; 则(A) = 95H成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 1 逻辑或指令(6条)ORL A,Rn ;A∨Rn→A ORL A,direct ;A∨(direct)→A ORL A,@Ri ;A∨(Ri)→A ORL A,#data;A∨data→A ORL direct,A;(direct)∨A→(direct) ORL direct,#data ;(direct)∨data→(direct)影响P标志后两条指令,若直接地址为I/O端 口,则为“读-改写”操作。

      OR Logic Instruction成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统例:71H和56H相或:01110001 (71H) ∨) 01010110 (56H) 01110111 即77H成 都 理 工 大 学 工 程 技 术 学 院第三章 MCS-51指令系统 2 逻辑与指令 (6条)ANL A,Rn ;A∧Rn→A ANL A,di。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.