《最新微机原理与控制第三章(春季)PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理与控制第三章(春季)PPT课件.ppt(141页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理与控制第三章(春季)微机原理与控制微机原理与控制工学院工学院3.1指令格式指令格式l单片机要执行某种操作,用户必须按照格式编写指令,单片单片机要执行某种操作,用户必须按照格式编写指令,单片机才能识别并准确操作。指令的编码规则称为指令格式。机才能识别并准确操作。指令的编码规则称为指令格式。l3.1.1指令的格式指令的格式l1指令的一般格式指令的一般格式lMCS-51单片机指令的一般格式为:操作码单片机指令的一般格式为:操作码操作数。例如操作数。例如指令:指令:74H30H。l1)操作码操作码用来表示执行什么样的操作,例如传送、加、减用来表示执行什么样的操作,例如传送、加、减等。等。MCS
2、-51系列单片机的操作码为系列单片机的操作码为8位二进制的机器码,位二进制的机器码,在指令中为第一字节。用机器码写成的指令是机器指令,也在指令中为第一字节。用机器码写成的指令是机器指令,也称为指令代码。称为指令代码。微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院微机原理与控制微机原理与控制工学院工学院3.1指令格式指令格式l4)位操作指令,有位操作指令,有12条。条。l位操作指令又称布尔变量操作指令,共
3、分为位传送、位位操作指令又称布尔变量操作指令,共分为位传送、位置位、位运算和位控制转移指令等四类。其中,位传送、置位、位运算和位控制转移指令等四类。其中,位传送、位置位和位运算指令的操作数不是以字节为单位进行操位置位和位运算指令的操作数不是以字节为单位进行操作的,而是以字节中某位为单位进行的;位控制转移指作的,而是以字节中某位为单位进行的;位控制转移指令不是以检测某个字节的结果为条件而转移的,而是以令不是以检测某个字节的结果为条件而转移的,而是以检测字节中的某一位的状态来转移的。检测字节中的某一位的状态来转移的。l5)控制转移指令,有控制转移指令,有22条。条。l控制转移指令分为条件转移、无条
4、件转移、调用和返回控制转移指令分为条件转移、无条件转移、调用和返回等指令。这类指令的共同特点是可以改变程序执行的流等指令。这类指令的共同特点是可以改变程序执行的流向,或者是使向,或者是使CPU转移到另一处执行,或者是继续顺序转移到另一处执行,或者是继续顺序地执行。无论是哪一类指令,执行后都会改变程序计数地执行。无论是哪一类指令,执行后都会改变程序计数器器PC中的值。中的值。微机原理与控制微机原理与控制工学院工学院3.1指令格式指令格式l3.1.3指令的存放空间指令的存放空间l指令是单片机执行某种操作的命令,用户若要单片机完成一件事情,指令是单片机执行某种操作的命令,用户若要单片机完成一件事情,
5、必须先编写指令,再转成机器码形式,从键盘等设备输入到程序存储必须先编写指令,再转成机器码形式,从键盘等设备输入到程序存储器存放。存放在程序存储器的哪个空间,用户应首先给程序计数器器存放。存放在程序存储器的哪个空间,用户应首先给程序计数器PC一个首地址,指令就从这个首地址开始存放,一个字节存放到一一个首地址,指令就从这个首地址开始存放,一个字节存放到一个单元后,程序计数器个单元后,程序计数器PC自动加自动加1,指令的下一字节存放在,指令的下一字节存放在PC当前当前值的地址单元。值的地址单元。l3.1.4指令常用的缩写符号说明指令常用的缩写符号说明l在描述在描述MCS一一51指令系统的功能时,经常
6、使用一些缩写符号,各符指令系统的功能时,经常使用一些缩写符号,各符号的含义如下:号的含义如下:l(1)A累加器累加器ACC。常用。常用ACC表示其地址,用表示其地址,用A表示其名称。表示其名称。l(2)AB累加器累加器ACC和寄存器和寄存器B组成的寄存器对。通常在乘、除法指组成的寄存器对。通常在乘、除法指令中出现。令中出现。微机原理与控制微机原理与控制工学院工学院3.1指令格式指令格式l(3)Rn(n=07),选定的当前工作寄存器,范围为,选定的当前工作寄存器,范围为R0R7。l(4)Ri(i=0或或1),工作寄存器,工作寄存器R0或或R1。l(5)间接寻址符号,简称间址符,常与间接寻址符号,
7、简称间址符,常与Ri配合用,如配合用,如Ri,表示指令对,表示指令对Ri寄存器间接寻址。寄存器间接寻址。l(6)#data8位立即数,位立即数,“#”表示后面的表示后面的data是立即数而不是立即数而不是直接地址。是直接地址。l(7)direct表示片内表示片内RAM存储单元的存储单元的8位直接地址,立即位直接地址,立即数和直接地址可用二进制码表示,后缀为数和直接地址可用二进制码表示,后缀为“B”;也可用十;也可用十六进制码表示,后缀为六进制码表示,后缀为“H”;如果是以字母开头的十六进;如果是以字母开头的十六进制数,在其前面应加一个制数,在其前面应加一个“0”。如,二进制码。如,二进制码10
8、101000B也可转成十六进制码也可转成十六进制码A8H,但必须写成,但必须写成“0A8H”。微机原理与控制微机原理与控制工学院工学院3.1指令格式指令格式l(8)DPTR:表示以:表示以DPTR为数据指针的间接寻址,用于对外部为数据指针的间接寻址,用于对外部64KRAMROM寻址。寻址。l(9)rel以补码形式表示的以补码形式表示的8位地址偏移量,范围为位地址偏移量,范围为-128+127。l(10)Bit位地址。位地址。l(11)$:当前指令的地址。:当前指令的地址。l指令中还经常使用到下列符号,含义如下:指令中还经常使用到下列符号,含义如下:l加;加;l减;减;l乘;乘;l除;除;微机原
9、理与控制微机原理与控制工学院工学院3.1指令格式指令格式l 逻辑与;逻辑与;l 逻辑或;逻辑或;l逻辑异或;逻辑异或;l大于;大于;l不等于;不等于;l取代或替换;取代或替换;l(X)表示表示X寄存器或寄存器或X地址单元中的内容;地址单元中的内容;l(X)表示以表示以X寄存器或寄存器或X地址单元中的内容为地址的存储单元中地址单元中的内容为地址的存储单元中的内容;的内容;l()将将X寄存器的内容取反;寄存器的内容取反;lrrr机器指令三位值由工作寄存器机器指令三位值由工作寄存器Rn确定,确定,R0R7对应的对应的rrr分分别为别为000111。微机原理与控制微机原理与控制工学院工学院3.1指令格
10、式指令格式l例例31已知数据存储器各单元内容如已知数据存储器各单元内容如图图31所示,说明所示,说明(50H)、(A)、()、(50H)各为多少各为多少?l解解(50H):表示地址为:表示地址为50H存储单元里的内容存储单元里的内容01110000B。l(A):表示累加器:表示累加器A中的内容,因中的内容,因A的地址为的地址为0EOH,所以,所以(A)为为00100001B。l():表示地址为:表示地址为50H存储单元里的内容取反,为存储单元里的内容取反,为10001111B。l(50H):以:以50H存储单元的内容存储单元的内容70H为地址的存储单元内的内容,为地址的存储单元内的内容,为为0
11、0111001B。微机原理与控制微机原理与控制工学院工学院图31 00100001 00111001 011100000EOH70H 50H 微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l指令包含操作码和操作数,有些指令直接给出参与运算和操作的指令包含操作码和操作数,有些指令直接给出参与运算和操作的数,但更多指令只是以各种方式给出操作数所在的地址。单片机数,但更多指令只是以各种方式给出操作数所在的地址。单片机通过地址信息寻找操作数的方式,称为寻址方式。寻址方式越多,通过地址信息寻找操作数的方式,称为寻址方式。寻址方式越多,表明计算机的功能越强,灵活性越大。表明计算机的功能越强
12、,灵活性越大。l在在MCS一一51单片机中,操作数的存放范围是很宽的,可以放在片单片机中,操作数的存放范围是很宽的,可以放在片外外ROMRAM中,也可以放在片内中,也可以放在片内ROMRAM以及特殊功能寄以及特殊功能寄存器存器SFR中。为了适应这一操作数范围内的寻址,中。为了适应这一操作数范围内的寻址,MCS一一51的指的指令系统共使用了七种寻址方式,它们是立即寻址、直接寻址、寄令系统共使用了七种寻址方式,它们是立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。微机原理与控制微机原理与控制工学院工学院3.2寻址方式
13、寻址方式l3.2.1立即寻址立即寻址l指令中的操作数只是数据,而不是地址,这样的操作数指令中的操作数只是数据,而不是地址,这样的操作数就称为立即数,立即数直接参与操作,这种寻址方式称就称为立即数,立即数直接参与操作,这种寻址方式称为立即寻址。其实立即寻址并没有寻址过程。这类指令为立即寻址。其实立即寻址并没有寻址过程。这类指令的立即数大多数是一个字节的的立即数大多数是一个字节的8位二进制数。指令中,操位二进制数。指令中,操作数前有作数前有“#”符号,据此可以判定是立即寻址,并有相应符号,据此可以判定是立即寻址,并有相应的操作码。例如,指令:的操作码。例如,指令:lMOVA,#64H;A64Hl这
14、条指令的功能是把数据这条指令的功能是把数据64H(立即数立即数)送到累加器送到累加器A中,中,在在MCS一一51指令系统中有相应操作码为指令系统中有相应操作码为74H,立即寻址,立即寻址的示意如的示意如图图32所示,设程序计数器所示,设程序计数器PC=70H。微机原理与控制微机原理与控制工学院工学院图3-2 立即寻址的示意图微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l3.2.2直接寻址直接寻址l指令中直接给出操作数所在地址的寻址方式称为直接寻址。指令中直接给出操作数所在地址的寻址方式称为直接寻址。l例如,指令:例如,指令:MOVA,64H;A(64H)l这条指令的功能是把内
15、部数据存储器地址为这条指令的功能是把内部数据存储器地址为64H的存储单的存储单元内容送至累加器元内容送至累加器A,这个指令的操作码为,这个指令的操作码为0E5H,直接寻,直接寻址的示意图如址的示意图如图图33所示,设程序计数器所示,设程序计数器PC=38H。由图。由图可知,地址为可知,地址为64H的存储单元内容为的存储单元内容为87H,则指令执行结,则指令执行结果是将果是将87H送到送到ACC。微机原理与控制微机原理与控制工学院工学院图3-3 直接寻址的示意图微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l应注意直接寻址方式与立即寻址方式的区别:虽然两者指令的第二应注意直接寻址
16、方式与立即寻址方式的区别:虽然两者指令的第二字节相同,但在助记符指令中相差一个字节相同,但在助记符指令中相差一个“#”号,由于符号指令与机器号,由于符号指令与机器指令有一一对应的关系,故操作码不同,所以执行结果不一样,而指令有一一对应的关系,故操作码不同,所以执行结果不一样,而在操作码中含有寻址方式的信息。在操作码中含有寻址方式的信息。l3.2.3寄存器寻址寄存器寻址l由指令指出某一个寄存器的内容作为操作数,这种寻址方式称为寄由指令指出某一个寄存器的内容作为操作数,这种寻址方式称为寄存器寻址。寄存器寻址对所选的工作寄存区存器寻址。寄存器寻址对所选的工作寄存区R0R7进行操作,操作进行操作,操作
17、码字节的低码字节的低3位位000111指明了所用的寄存器。例如,指令:指明了所用的寄存器。例如,指令:lMOVA,R7;A(R7)微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l这条指令的功能是把寄存器这条指令的功能是把寄存器R7的内容送人累加器的内容送人累加器A中,但中,但数据存储器的数据存储器的4个工作寄存器区都有寄存器个工作寄存器区都有寄存器R7,并都有相,并都有相应地址,怎样确定应地址,怎样确定R7的地址呢的地址呢?首先由程序状态字寄存器首先由程序状态字寄存器(PSW)中的中的D3位和位和D4位决定寄存器区,再与操作码低位决定寄存器区,再与操作码低3位位组合组合(n=7
18、,为,为111)形成地址形成地址0FH,就是工作寄存器区,就是工作寄存器区1区区中的中的R7寄存器。寄存器寻址方式执行过程如寄存器。寄存器寻址方式执行过程如图图34所示。所示。l3.2.4寄存器间接寻址寄存器间接寻址l由指令指出某一个寄存器的内容作为操作数的地址,这种由指令指出某一个寄存器的内容作为操作数的地址,这种寻址方式称为寄存器间接寻址。特别注意:寄存器的内容寻址方式称为寄存器间接寻址。特别注意:寄存器的内容不是操作数,而是操作数所在的存储器地址。例如,指令:不是操作数,而是操作数所在的存储器地址。例如,指令:lMOVA,Ril这条指令中,这条指令中,i=0指指R0;i=1,则指,则指R
19、1。微机原理与控制微机原理与控制工学院工学院图3-4 寄存器寻址方式微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l指令功能是将以寄存器指令功能是将以寄存器R0或或R1内容为地址的存储单元中的数据内容为地址的存储单元中的数据送入送入A。执行这条指令首先应找到。执行这条指令首先应找到Ri地址,地址,Ri的的8位地址位地址A7A0中:中:A7A6A5=000,A2A1=00,A0由由i决定,决定,A4A3由程序状态字由程序状态字寄存器寄存器PSW中中D4D3位决定,其作用实际是选定工作寄存器区域。位决定,其作用实际是选定工作寄存器区域。寄存器间接寻址执行过程如寄存器间接寻址执行过程
20、如图图35所示,图中所示,图中i=1,将以工作寄,将以工作寄存器区存器区l的的R1内容内容64H为地址的存储单元的数据为地址的存储单元的数据51H送人送人A。l3.2.5变址寻址变址寻址l变址寻址也称基地址寄存器加变址寄存器间接寻址,它是以程序变址寻址也称基地址寄存器加变址寄存器间接寻址,它是以程序计数器计数器PC或数据指针或数据指针DPTR作为基地址寄存器,以累加器作为基地址寄存器,以累加器A作为作为变址寄存器,把两者内容相加形成操作数的地址。这种寻址方式变址寄存器,把两者内容相加形成操作数的地址。这种寻址方式用于读取程序存储器中常数表,或访问外部数据存储器。例如,用于读取程序存储器中常数表
21、,或访问外部数据存储器。例如,指令:指令:lMOVCA,A+DPTR;A(A)+(DPTR)微机原理与控制微机原理与控制工学院工学院图3-5 寄存器间接寻址方式微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式l这条指令的功能是把这条指令的功能是把DPTR的内容作为基地址,的内容作为基地址,DPTR是是16位寄存器,其高位寄存器,其高8位在位在DPH中,低中,低8位在位在DPL中。把累中。把累加器加器A的内容作为地址偏移量,两者相加后得到的内容作为地址偏移量,两者相加后得到16位地位地址,把该地址对应的程序存储器址,把该地址对应的程序存储器ROM单元中的内容送到单元中的内容送到A中
22、,中,A中原数据自动擦除。寻址过程示意图如中原数据自动擦除。寻址过程示意图如图图36所所示。示。l3.2.6位寻址位寻址lMCS一一51指令系统有一些指令是用于位的操作。位操作指令系统有一些指令是用于位的操作。位操作指令能对内部指令能对内部RAM中的位寻址区和某些有位地址的特殊中的位寻址区和某些有位地址的特殊功能寄存器进行位操作,也就是说可对位地址空间的每功能寄存器进行位操作,也就是说可对位地址空间的每个位进行位变量传送、状态控制、逻辑运算等操作,常个位进行位变量传送、状态控制、逻辑运算等操作,常用的位处理器是程序状态字寄存器的用的位处理器是程序状态字寄存器的CY位。例如,指令:位。例如,指令
23、:lMOVC,06H;CY(06H)微机原理与控制微机原理与控制工学院工学院图3-6 变址寻址方式微机原理与控制微机原理与控制工学院工学院3.2寻址方式寻址方式lC累加器只有一位,指令是位寻址方式,操作码是累加器只有一位,指令是位寻址方式,操作码是0A2H,06H是是位地址。指令含义是将内部位地址。指令含义是将内部RAM的的20H单元的单元的D6位的内容送入累位的内容送入累加器加器C,其指令执行过程如,其指令执行过程如图图37所示。这条指令应区别于指令所示。这条指令应区别于指令“MOVA,06H”,A是是8位累加器,意思是将位累加器,意思是将RAM中中06H单元的内单元的内容送入容送入A中,操
24、作码是中,操作码是0E5H。l3.2.7相对寻址相对寻址l相对寻址以程序计数器相对寻址以程序计数器PC的当前值作为基地址,与指令中给定的的当前值作为基地址,与指令中给定的相对偏移量相对偏移量rel相加,作为程序逻辑的转移地址。这种寻址方式用相加,作为程序逻辑的转移地址。这种寻址方式用于相对转移指令中。于相对转移指令中。微机原理与控制微机原理与控制工学院工学院图3-7 位寻址方式微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l在在MCS一一51单片机中,数据传送是最基本和最主要操作。数据传送单片机中,数据传送是最基本和最主要操作。数据传送操作可以在片内操作可以在片内RAM
25、和和SFR内进行,也可以在累加器内进行,也可以在累加器A和片外存储和片外存储器之间进行。指令中必须指定传送数据的源地址和目的地址,以便器之间进行。指令中必须指定传送数据的源地址和目的地址,以便机器执行指令时把源地址中内容传送到目的地址中,但不改变源地机器执行指令时把源地址中内容传送到目的地址中,但不改变源地址中内容。在这类指令中,除以累加器址中内容。在这类指令中,除以累加器A为目的操作数寄存器指令为目的操作数寄存器指令会对奇偶标志位会对奇偶标志位P有影响外,其余指令执行时均不会影响任何标志有影响外,其余指令执行时均不会影响任何标志位。位。lMCS一一51单片机的数据传送指令共有单片机的数据传送
26、指令共有28条,分为内部数据传送指令、条,分为内部数据传送指令、外部数据传送指令、堆栈操作指令和数据交换指令等四类。本节将外部数据传送指令、堆栈操作指令和数据交换指令等四类。本节将分类进行介绍,并给出相应的机器代码,以便相互对照加以理解。分类进行介绍,并给出相应的机器代码,以便相互对照加以理解。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l3.3.1内部数据传送指令(内部数据传送指令(15条)条)l1.以以A为目的操作数的指令为目的操作数的指令l这类指令的格式为:这类指令的格式为:MOV目的操作数,目的操作数,源操作数源操作数l1)指令与指令代码指令与指令代码l指令指
27、令指令代码指令代码操作操作lMOVA,Rn11101rrrA(Rn)lMOVA,direct11100101directA(direct)lMOVA,Ri1110011iA(Ri)lMOVA,#data01110100dataAdata微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l对对Rn寻址的指令,其机器码字节的低三位为寻址的指令,其机器码字节的低三位为rrr,对应于,对应于8个工作寄存器之一,当为个工作寄存器之一,当为000时,表示时,表示R0;为;为001时,时,表示表示R1;依次类推。;依次类推。l2)指令功能指令功能这组指令的功能是把源操作数的内容送入累这组
28、指令的功能是把源操作数的内容送入累加器加器A。l3)源操作数寻址方式源操作数寻址方式立即寻址;直接寻址;寄存器寻址;立即寻址;直接寻址;寄存器寻址;寄存器间接寻址等寻址方式。寄存器间接寻址等寻址方式。l例例32说明下列指令的功能及寻址方式。说明下列指令的功能及寻址方式。lMOVA,R6lMOVA,64HlMOVA,R0lMOVA,#78H微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l解解MOVA,R6;A(R6),寄存器寻址寄存器寻址lMOVA,64H;A(64H),直接寻址直接寻址lMOVA,R0;A(R0),寄存器间接寻址寄存器间接寻址lMOVA,#78H;A78
29、H,立即寻址立即寻址l4)指令字节指令字节表面看来,这组指令由三部分组成:操作码、表面看来,这组指令由三部分组成:操作码、A和源和源操作数,但操作码含有向操作数,但操作码含有向A送数的信息,所以累加器送数的信息,所以累加器A不占程序存不占程序存储器的存储空间,故这个指令是两字节指令。一般来说,不占程储器的存储空间,故这个指令是两字节指令。一般来说,不占程序存储器的存储空间的还有各区的工作寄存器。序存储器的存储空间的还有各区的工作寄存器。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2以以Rn为目的操作数的指令为目的操作数的指令l1)指令与指令代码指令与指令代码l指令指
30、令指令代码指令代码操作操作lMOVRn,A1111lrrrRn(A)lMOVRn,direct10101rrrdirectRn(direct)lMOVRn,#data01111rrrdataRndatal2)功能功能这组指令的功能是将源操作数的内容送入当前工这组指令的功能是将源操作数的内容送入当前工作寄存器区的作寄存器区的R0R7中的某一个寄存器。中的某一个寄存器。l3)源操作数寻址方式源操作数寻址方式立即寻址;直接寻址;寄存器寻址。立即寻址;直接寻址;寄存器寻址。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l例例34指出下列指令的功能和寻址方式。指出下列指令的功能和
31、寻址方式。lMOVR2,#64HlMOVR3,64HlMOVR7,Al解解MOVR2,#64H;R264H,立即寻址立即寻址lMOVR3,64H;R3(64H),直接寻址直接寻址lMOVR7,A;R7(A),寄存器寻址寄存器寻址微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l3以直接寻址的单元为目的操作数指令以直接寻址的单元为目的操作数指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码操作操作lMOVdirect,A11110101directdirect(A)lMOVdirect,Rn10001rrrdirectdirect(Rn)lMOVdirect1
32、,direct210000101direct2direct1(direct2)lMOVdirect,Ri1000011idirectdirect(Ri)lMOVdirect,#data01110101direct,datadirectdata微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l应注意:应注意:“MOVdirect1,direct2”指令译成指令代码时,源地址指令译成指令代码时,源地址(direct2)在前,目的地址在前,目的地址direct1在后。在后。l2)功能功能这组指令的功能是把源操作数送人由直接地址指向的存储单这组指令的功能是把源操作数送人由直接地址
33、指向的存储单元,直接寻址时,元,直接寻址时,direct可以是特殊功能寄存器的地址、内部可以是特殊功能寄存器的地址、内部RAM区区的地址,因此允许对端口直接操作。例如,指令:的地址,因此允许对端口直接操作。例如,指令:“MOVP1,40H”的含义是将的含义是将40H单元的内容送入单元的内容送入P1端口,机器指令为端口,机器指令为“100001010100000010010000”,是三字节指令。第一字节是操作码,第二字,是三字节指令。第一字节是操作码,第二字节是源操作数的地址,第三字节是目的操作数节是源操作数的地址,第三字节是目的操作数P1的地址。的地址。l3)源操作数寻址方式源操作数寻址方式
34、立即寻址;直接寻址;寄存器寻址;寄存器间立即寻址;直接寻址;寄存器寻址;寄存器间接寻址。接寻址。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l例例37若若(64H)=70H,(A)=78H,说明执行指令,说明执行指令“MOV64H,A”的结果。的结果。l解解执行后结果为执行后结果为(64H)=78H,(A)=78H不变。不变。l 4以寄存器间接寻址的单元为目的操作数指令以寄存器间接寻址的单元为目的操作数指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码操作操作lMOVRi,A111101li(Ri)(A)lMOVRi,direct101001lidire
35、ct(Ri)(direct)lMOVRi,#data011101lidata(Ri)data微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2)功能功能本组指令是将源操作数送人以本组指令是将源操作数送人以R0或或R1内容为地址的存储单内容为地址的存储单元中。元中。l3)源操作数寻址方式源操作数寻址方式立即寻址;直接寻址;寄存器寻址。立即寻址;直接寻址;寄存器寻址。l例例310若若(30H)=35H,(R1)=70H,说明执行指令,说明执行指令“MOVR1,30H”的结果。的结果。l解解70H单元的内容为单元的内容为35H,同时,同时(30H)=35H,(R1)=70H不
36、变。不变。l3.3.2外部数据传送指令(外部数据传送指令(7条)条)l116位数据传送指令位数据传送指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码操作操作lMOVDPTR,#data1610010000dataH8dataL8DPTRdatal6微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2)功能功能把把16位常数送入位常数送入DPTR,16位的数据指针位的数据指针DPTR由由DPH和和DPL组成,执行结果把高位立即数送入组成,执行结果把高位立即数送入DPH,低位立即数送入,低位立即数送入DPL,本指令是三字节指令。,本指令是三字节指令。l2.外部
37、外部ROM的字节传送指令的字节传送指令l由于外部程序存储器只读不写,因此数据传送是单向的,即只从外部由于外部程序存储器只读不写,因此数据传送是单向的,即只从外部程序存储器中读出数据,并且只能向累加器程序存储器中读出数据,并且只能向累加器A传送。这类指令共有两传送。这类指令共有两条,均属于变址寻址指令,因专门用于查表而又称为查表指令。条,均属于变址寻址指令,因专门用于查表而又称为查表指令。l(1)指令)指令MOVCA,A+PC微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l本指令的指令代码是本指令的指令代码是10000011,为一字节指令,当,为一字节指令,当CPU读取本
38、条指读取本条指令后,令后,PC已自动加已自动加1,指向下一条指令的首字节的地址。如果该指令,指向下一条指令的首字节的地址。如果该指令存放单元为存放单元为1000H,则,则PC的当前值为的当前值为1001H。执行该指令时,把。执行该指令时,把A的内容作为无符号数和的内容作为无符号数和PC当前内容相加后得到一个当前内容相加后得到一个16位的地址,并位的地址,并将该地址指出的程序存储器单元内容送到累加器将该地址指出的程序存储器单元内容送到累加器A。而。而A的内容从的内容从00H-0FFH共共256个,所以个,所以(A)和和(PC)相加得到的地址只能在该查表指相加得到的地址只能在该查表指令以下令以下2
39、56个单元地址内。个单元地址内。“MOVC”中的中的“C”表示程序存储器。表示程序存储器。l例例313设设(A)=30H,执行指令,执行指令“1000H:MOVCA,A+PC”的结的结果。果。l解解该指令将程序存储器中该指令将程序存储器中1031H单元内容送入累加器单元内容送入累加器A中。中。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l(2)指令)指令MOVCA,A+DPTRl这条指令的指令代码是这条指令的指令代码是10010011,它的操作是以,它的操作是以DPTR作为基地址寄存器,由作为基地址寄存器,由A中的无符号数与中的无符号数与DPTR中的内容中的内容相加得
40、到一个相加得到一个16位的程序存储器的地址,并将该地址的位的程序存储器的地址,并将该地址的内容送到内容送到A。l例例315设设(DPTR)=8100H,(A)=40H,说明执行指令,说明执行指令后的结果。后的结果。lMOVCA,A+DPTRl解解将程序存储器中将程序存储器中8140H单元内容送人累加器单元内容送人累加器A。l该指令只与该指令只与A的内容相关,与该指令存放的地址无关,因的内容相关,与该指令存放的地址无关,因此表格大小和位置可在此表格大小和位置可在64K字节程序存储器中任意安排,字节程序存储器中任意安排,只要在查表之前对只要在查表之前对DPTR和和A赋值,就使一个表格可被各赋值,就
41、使一个表格可被各个程序所公用。个程序所公用。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l3.外部外部RAM的字节传送指令的字节传送指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码操作操作lMOVXA,DPTR11100000(DPTR)AlMOVXA,Ri1110001i(Ri)+(P2)AlMOVXDPTR,A11110000(A)(DPTR)lMOVXRi,A1111001i(A)(Ri)十十(P2)微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l 2)功能功能这组指令是将累加器这组指令是将累加器A和外部扩展的和外部扩展的
42、RAM的数的数据传送,由于据传送,由于DPTR是是16位地址指针,因此用位地址指针,因此用DPTR间接间接寻址的指令寻址范围是寻址的指令寻址范围是064K字节;而字节;而Ri是是8位寄存器,位寄存器,故用故用Ri间接寻址的指令寻址范围是外部间接寻址的指令寻址范围是外部RAM的低的低256单单元。外部元。外部RAM的数据传送,只有通过累加器的数据传送,只有通过累加器A来进行。来进行。在片外容量大于在片外容量大于256个单元时,地址高个单元时,地址高8位由位由P2口输出,口输出,而而Ri中的地址作为低中的地址作为低8位地址经位地址经P0口输出,这些口输出,这些(Ri)与与(P2)组合后,可对片外组
43、合后,可对片外064KB范围寻址。范围寻址。l例例316将外部将外部RAM30H单元的内容送入内部单元的内容送入内部RAM20H的单元。的单元。l解解MOVR0,#30HlMOVXA,R0lMOV20H,A微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l3.3.3堆栈操作指令(堆栈操作指令(2条)条)l在在MCS一一51内部内部RAM中可以设定一个后进先出的堆栈,中可以设定一个后进先出的堆栈,地址为地址为30H7FH,堆栈指针,堆栈指针SP中的内容总是堆栈区中中的内容总是堆栈区中最后一个进栈数据所在的存储单元地址。堆栈操作包括最后一个进栈数据所在的存储单元地址。堆栈操作
44、包括进栈和出栈两种。进栈和出栈两种。l1.进栈指令与指令代码进栈指令与指令代码l指令指令指令代码指令代码操作操作lPUSHdirect11000000directSPSP+1(SP)(direct)l这条指令首先将堆栈指针这条指令首先将堆栈指针SP+1,然后把直接地址里的内,然后把直接地址里的内容传送到堆栈指针容传送到堆栈指针SP指出的内部指出的内部RAM存储单元中。存储单元中。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l例例318设设(SP)=30H,(ACC)=60H,(B)=70H,执行下,执行下列指令后结果怎样列指令后结果怎样?lPUSHACClPUSHBl
45、解解操作过程是:操作过程是:lPUSHACC;(SP)+1,31HSP,(ACC)31HlPUSHB;(SP)+1,32HSP,(B)32Hl结果为结果为(31H)=60H,(32H)=70H,(sp)=32H微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2.出栈指令与指令代码出栈指令与指令代码l指令指令指令代码指令代码操作操作lPOPdirect11010000direct(SP)directSPSP-1l这条指令的功能是将堆栈指针这条指令的功能是将堆栈指针SP指出的内部指出的内部RAM单元的内容送入直单元的内容送入直接地址指出的存储单元中,堆栈指针接地址指出的存储
46、单元中,堆栈指针SP减减1。出栈指令用于恢复。出栈指令用于恢复CPU现场。现场。l例例319设设(SP)=32H,(32H)=70H,(31H)=60H,执行下述指令后,执行下述指令后结果怎样结果怎样?lPOPDPHlPOPDPL微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2)功能功能将累加器将累加器A的内容和源操作数内容相互交换。的内容和源操作数内容相互交换。l3)源操作数寻址方式源操作数寻址方式寄存器寻址;直接寻址;寄存器间寄存器寻址;直接寻址;寄存器间接寻址。接寻址。l例例3一一20设设(A)=80H,(R1)=74H,(74H)=60H,(60H)=50H,
47、(80H)=40H,顺序执行下列指令后结果怎,顺序执行下列指令后结果怎样样?lXCHA,R1lXCHA,60HlXCHA,R1l解解执行指令执行指令结果:结果:(A)=74H,(R1)=80Hl结果:结果:(A)=50H,(60H)=74Hl结果:结果:(A)=40H,(80H)=50H微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l2半字节交换指令半字节交换指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码lXCHDA,Ri1101011il2)功能功能这条指令将这条指令将A的低的低4位与位与R0或或R1指出的指出的RAM单单元低元低4位相互交换,各自高
48、位相互交换,各自高4位不变。位不变。l3)源操作数寻址方式为寄存器间接寻址。源操作数寻址方式为寄存器间接寻址。微机原理与控制微机原理与控制工学院工学院3.3数据传送指令数据传送指令l例例322设设(A)=15H,(R0)=30H,(30H)=40H,执行下列指令后结,执行下列指令后结果怎样果怎样?lXCHDA,R0l解解:执行结果为:执行结果为:(A)=10H,(30H)=45Hl以上所述的均为传送类指令,数据传送指令对标志位的影响:以上所述的均为传送类指令,数据传送指令对标志位的影响:l(1)只有只有PSW寄存器直接参加操作,被改写了内容的情况下,标志位寄存器直接参加操作,被改写了内容的情况
49、下,标志位受影响。受影响。l(2)PSW中中P标志位标志位(奇偶校验位奇偶校验位)总是追踪累加器总是追踪累加器A的状态。如果的状态。如果A中中有奇数个有奇数个1,则,则P=1,否则,否则P=0。其他标志位不受影响。其他标志位不受影响。微机原理与控制微机原理与控制工学院工学院3.4算术运算指令算术运算指令lMCS一一51指令系统的算术运算指令比较丰富,包括加、指令系统的算术运算指令比较丰富,包括加、减、乘、除法指令,数据运算能力较强。减、乘、除法指令,数据运算能力较强。l3.4.1加法指令(加法指令(14条)条)l加法指令使用助记符加法指令使用助记符“ADD”。l1不带进位的加法指令不带进位的加
50、法指令l1)指令与指令代码指令与指令代码l指令指令指令代码指令代码lADDA,Rn00101rrrlADDA,direct00100101directlADDA,Ri0010011ilADDA,#data00100100data微机原理与控制微机原理与控制工学院工学院3.4算术运算指令算术运算指令l2)功能功能将源操作数与累加器将源操作数与累加器A的内容相加,其结果放于的内容相加,其结果放于累加器累加器A中。中。l3)源操作数的寻址方式源操作数的寻址方式寄存器寻址;直接寻址;寄存器寄存器寻址;直接寻址;寄存器间接寻址;立即寻址。间接寻址;立即寻址。l4)对标志位的影响对标志位的影响加法运算对程