资源描述
成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49算术运算类指令算术运算类指令(6种种/24条)条)加法运算:加法运算:(ADD4条条)带进位加法运算带进位加法运算:(ADDC4条条)带借位减法运算带借位减法运算:(SUBB4条条)加加1/减减1操作:操作:(INC,DEC9条条)单字节乘单字节乘/除法运算除法运算:(MUL,DIV2条条)十进制调整:十进制调整:(DA A1条条)成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49加法运算:加法运算:(ADD4条)条)带进位加法运算带进位加法运算:(ADDC4条)条)带借位减法运算:带借位减法运算:(SUBB4条)条)所有的加法所有的加法(ADD)、带进位加法、带进位加法(ADDC)、带借位、带借位减法减法(SUBB)运算都是以运算都是以 A为一个加数或被减数为一个加数或被减数,最最终结果也存进终结果也存进 A。加法加法(ADD)、带进位加法、带进位加法(ADDC)以及带借位减以及带借位减法法(SUBB)运算中运算中,如果产生了进位或借位如果产生了进位或借位,将自动将自动对对PSW中的中的Cy标志位置标志位置“1”。带进位加法带进位加法(ADDC):(A)(A)+(Cy)+(第二操作数第二操作数)带借位减法带借位减法(SUBB):(A)(A)-(Cy)-(第二操作数第二操作数)成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49ADD A,#data;AdataAADD A,direct ;A(direct)AADD A,Rn ;ARnAADD A,Ri ;A(Ri)A用途:用途:将将A A中的值与源操作数所指内容相加,最终结果中的值与源操作数所指内容相加,最终结果 存在存在A A中。中。1.不带进位位的加法指令(4 4条)条)加法指令加法指令 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例例:设(设(A)=49H,(,(R0)=6BH 执行:执行:ADD A,R0 结果:结果:CY=?,AC=?,P=?,OV=?,(A)=?CY=0,AC=1,P=0,OV=1,(A)=B4H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:492.带进位位的加法指令(4条)条)ADDC A,Rn;ARnCYAADDC A,direct;A(direct)CYAADDC A,Ri ;A(Ri)CYAADDC A,#data;AdataCYA用途:用途:将将A中的值中的值和其后面的值以及进位位和其后面的值以及进位位C中的值相中的值相加,最终加,最终结果存在结果存在A,常用于多字节数运算中。,常用于多字节数运算中。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49说明:说明:由于由于51单片机是一种单片机是一种8位机,所以只能位机,所以只能做做8位的数学运算,但位的数学运算,但8位运算的范围只有位运算的范围只有0255,这在实际工作中是不够的,因此就,这在实际工作中是不够的,因此就要进行扩展,一般是将要进行扩展,一般是将2个个8位位(两字节两字节)的数的数学运算合起来,成为一个学运算合起来,成为一个16位的运算,这位的运算,这样,可以表达的数的范围就可以达到样,可以表达的数的范围就可以达到065535。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:先做先做67H+A0H=107H,而,而107H显然超过了显然超过了0FFH,因此最终保存在,因此最终保存在A中的是中的是07H,而,而1则到了则到了PSW中的中的CY位了。换言之,位了。换言之,CY就相当于是就相当于是100H。然后再做然后再做10H+30H+CY,结果是,结果是41H,所,所以最终的结果是以最终的结果是4107H。1067H+30A0H0001 0000 0110 0111 0011 0000 1010 0000 0100 0001 0000 0111 1067H30A0H4107H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:设设1067H存在存在R1R0中,中,30A0H存在存在R3R2中中,计算计算R1R0+R3R2,结果存在,结果存在R5R4中。中。MOV A,R0ADD A,R2 ;R0+R2A和和CYMOV R4,AMOV A,R1ADDC A,R3 ;R1+R3+CYA和和CYMOV R5,A 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49又例:先做先做67H+20H=87H,没有超过,没有超过0FFH,因此,因此最终保存在最终保存在A中的是中的是87H,而,而PSW中的中的CY=0。然后再做然后再做10H+30H+CY,结果是,结果是40H,所,所以最终的结果是以最终的结果是4087H。1067H+3020H0001 0000 0110 0111 0011 0000 0010 0000 0100 0000 1000 0111 1067H3020H4087H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49DA A在进行在进行BCD码加法运算时,跟在码加法运算时,跟在ADD和和ADDC指指令之后,用于对累加器令之后,用于对累加器A中刚进行的两个中刚进行的两个BCD码的加码的加法的结果进行十进制调整。法的结果进行十进制调整。例:例:A=0001 0101BCD(代表十进制数(代表十进制数15)ADD A,#83.十进制调整指令(1条)条);A=1DH,按二进制规律加,按二进制规律加;A=23H,按十进制规律加,按十进制规律加DA A 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49 调整要完成的任务是:调整要完成的任务是:(1)当累加器)当累加器A中的中的低低4位数出现了非位数出现了非BCD码(码(10101111)或低)或低4位产生进位位产生进位(AC=1),则应在低),则应在低4位加位加6调整,以产调整,以产生低生低4位正确的位正确的BCD结果。结果。(2)当累加器)当累加器A中的中的高高4位位数出现了非数出现了非BCD码(码(10101111)或高)或高4位产生进位位产生进位(CY=1),则应在高),则应在高4位加位加6调整,以产生调整,以产生高高4位正确的位正确的BCD结果。结果。十进制调整指令执行后,十进制调整指令执行后,PSW中的中的CY表表示结果的百位值示结果的百位值。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例例 若(若(A)0101 0110B,表示的,表示的BCD码为码为56,(R3)0110 0111B,表示的,表示的BCD码为码为67,(,(CY)0。执行以下指令:执行以下指令:ADD A,R2DA A由于(由于(A)0010 0011B,即,即23,且(,且(CY)1,即,即结果为结果为BCD数数123。应该注意,应该注意,DA指令不能对减法进行十进制调整。指令不能对减法进行十进制调整。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49减法指令(8条)条)SUBB A,Rn ;ARnCYASUBB A,direct ;A(direct)CYASUBB A,Ri ;A(Ri)CYASUBB A,#data ;AdataCYA将将A中的值减去源操作数所指内容以及进位位中的值减去源操作数所指内容以及进位位C中的中的值,最终结果存在值,最终结果存在A中。中。1.带借位的减法指令(4条)条)成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:SUBB A,R2设:设:A=C9H,R2=55H,CY=1,执行指令之后,执行指令之后,A中的值为中的值为73H。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49说明:说明:没有不带借位的减法指令,如果需没有不带借位的减法指令,如果需要做不带位的减法指令(在做第一次相减时)要做不带位的减法指令(在做第一次相减时),只要将,只要将CY清零即可。清零即可。对带符号数,要注意对带符号数,要注意OV标志。标志。OV=1,出,出错。错。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例例:设(:设(A)=52H,(R0)=B4H执行指令:执行指令:CLR C SUBB A,R0结果为:结果为:(A)=?,CY=?,AC=?,OV=?,P=?(A)=9EH,CY=1,AC=1,OV=1,P=1 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49加加1/1/减减1 1操作:操作:(INCINC,DECDEC9 9条)条)INC,DECINC,DEC与用加与用加/减法指令做加减法指令做加1/1/减减1 1 操作不操作不同之处在于同之处在于INCINC、DECDEC不影响标志位不影响标志位(CYCY、OVOV、ACAC).只有涉及累加器只有涉及累加器A A的指令的指令INC AINC A、DEC DEC A A才影响奇偶标志才影响奇偶标志P P。成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49单字节乘单字节乘/除运算除运算:(MUL,DIV2条条)两个单字节数的乘两个单字节数的乘/除法运算只在除法运算只在A与与B之间进行。之间进行。MUL AB:(A)与与(B)相乘相乘,积为积为16位数位数,(B)积的积的高高8位位;(A)积的积的低低8位位DIV AB:(A)除以除以(B),结果用结果用2字节表示字节表示,(A)商的整数部分商的整数部分;(B)余数余数 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49乘法指令执行后,进位标志乘法指令执行后,进位标志CY总是清零,即总是清零,即CY=0除法指令执行后,进位标志除法指令执行后,进位标志CY和溢出标志和溢出标志OV均被均被清零清零。若若除数除数B中的内容中的内容为为0时,除法运算没有意义,结果为时,除法运算没有意义,结果为不定值,此时溢出标志不定值,此时溢出标志OV被置为被置为1,即,即OV=1,而,而CY仍为仍为0.成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:491、写出下列程序的运行结果。、写出下列程序的运行结果。MOV SP,#40HMOV 42H,#85HMOV 55H,#37HPUSH 42HPUSH 55HPOP 42HPOP 55H(SP)=?(42H)=?(55H)=?练习题练习题 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:492、执行下面程序段后,片内、执行下面程序段后,片内RAM 30H和片和片外外RAM 30H单元的值是:单元的值是:MOV 30H,#30MOV R1,#30HMOV A,#03HMOVX R1,AXCH A,R1MOVX R1,A内部内部RAM(30H)=?;外部?;外部RAM(30H)=?成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:493、判断题、判断题 下面指令是否正确,并将错误指令改正之。下面指令是否正确,并将错误指令改正之。MOV#30H ,AMOV DPTR ,ADA R1 DIV A ,R0MOV 30H,40HPUSH#30H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:495 逻辑运算类指令(24条)条)主要用于对主要用于对2个操作数按个操作数按位进行逻辑位进行逻辑操作,结果送到操作,结果送到A或直接寻址单元。或直接寻址单元。v 主要操作主要操作 与、或、异或、移位、取反、清零等。与、或、异或、移位、取反、清零等。v 对标志位的影响对标志位的影响 除了目的操作数为除了目的操作数为ACC的指令影响奇偶标志的指令影响奇偶标志P外,外,一般不影响标志位。一般不影响标志位。Logic Operations 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49逻辑运算指令的常见用法逻辑运算指令的常见用法逻辑与逻辑与ANL用于用于清清0或者或者保留保留某些位:某些位:例例:ANL A,#0FH;则则(A)=0AH(已知累加器已知累加器A中已存有数:中已存有数:9AH )逻辑或逻辑或ORL用于用于置置1或者或者保留保留某些位:某些位:例例:ORL A,#0FH;则则(A)=9FH逻辑异或逻辑异或XRL用于用于取反取反或者或者保留保留某些位:某些位:例例:XRL A,#0FH;则则(A)=95H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:491 逻辑或指令逻辑或指令(6条)条)ORL A,Rn;A RnAORL A,direct;A(direct)AORL A,Ri;A(Ri)AORL A,#data;A dataAORL direct,A;(direct)A(direct)ORL direct,#data;(direct)data(direct)影响影响P标志标志后两条指令,若直接地址为后两条指令,若直接地址为I/O端端口,则为口,则为“读改写读改写”操作。操作。OR Logic Instruction 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:71H和和56H相或:相或:01110001(71H)01010110(56H)01110111 即即77H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:492 逻辑与指令逻辑与指令(6条)条)ANL A,Rn ;A RnAANL A,direct ;A(direct)AANL A,Ri ;A(Ri)AANL A,#data ;A dataAANL direct,A ;(direct)A(direct)ANL direct,#data ;(direct)data(direct)影响影响P标志标志后两条指令,若直接地址为后两条指令,若直接地址为I/O端口,则为端口,则为“读改写读改写”操作。操作。ANd Logic Instruction 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:71H和和56H相与:相与:01110001(71H)01010110(56H)01010000 即即50H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:493 逻辑异或指令(6条)条)XRL A,Rn ;A RnAXRL A,direct ;A(direct)AXRL A,Ri ;A(Ri)AXRL A,#data ;A dataAXRL direct,A ;(direct)A(direct)XRL direct,#data ;(direct)data(direct)影响影响P标志标志后两条指令,若直接地址为后两条指令,若直接地址为I/O端口,则端口,则为为“读改写读改写”操作操作。eXclusive-oR Logic Instruction 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:71H和和56H相异或:相异或:01110001(71H))01010110(56H)00100111 即即27H 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:494 清清0与与取反指令(2条)条)取反:取反:CPL A;/AA例:例:若若A=5CH,执行,执行CPL A 结果:结果:A=A3H清清0:CLR A;0AComPlement Logic Operation 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:495 循环移位指令循环移位指令(4条)条)RL ARR ARLC ARRC AA.7 A.0A.7 A.0A.7 A.0CYCYA.7 A.0后两条指令,影响后两条指令,影响P标志和标志和CY。Rotate Logic instruction 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:例:若若A=5CH,CY=1,执行,执行RLC A后,后,v 对对RLC、RRC指令,在指令,在CY=0时时RLC相当于相当于乘乘以以2RRC相当于相当于除除以以2结果:结果:A=B9H,CY=0,P=10101 110011011 10010 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:按要求编程,完成下列各题:例:按要求编程,完成下列各题:1)选通工作寄存器组中)选通工作寄存器组中0区为工作区。区为工作区。2)利用移位指令实现累加器)利用移位指令实现累加器A的内容乘的内容乘6。3)将)将ACC的低的低4位送位送P1口的低口的低4位,位,P1口的高口的高4位不变。位不变。1)ANL PSW,#11100111B ;PSW的的D4、D3位为位为002)CLR C RLC A ;左移一位,相当于乘;左移一位,相当于乘2 MOV R0,A CLR C RLC A ;再乘;再乘2,即乘,即乘4 ADD A,R0;乘;乘2+乘乘4=乘乘63)ANL A,#0FH;高;高4位屏蔽(清位屏蔽(清0)ANL P1,#F0H;P1低低4位清位清0 ORL P1,A ;(;(P1.31.0)(A30)成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49例:将八盏霓虹灯从右往左逐个循环点亮例:将八盏霓虹灯从右往左逐个循环点亮MOV A,#01HMOV P1,ARL AXXXX(跳转指令)成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49阅读程序段并写出运行结果阅读程序段并写出运行结果 设(设(A)=83H,(,(R0)=17H,(17H)=34H,问执行以下程序段后,问执行以下程序段后,(A)=?ANL A,#17H ORL 17H,A XRL A,R0 练习练习 成成都都理理工工大大学学工工程程技技术术学学院院第三章 MCS-51指令系统2024/4/7 周日 8:49Over!
展开阅读全文