下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第三章 80C51单片微机的指令系统

第三章 80C51单片微机的指令系统.ppt

第三章 80C51单片微机的指令系统

frankann245
2014-03-05 0人阅读 举报 0 0 暂无简介

简介:本文档为《第三章 80C51单片微机的指令系统ppt》,可适用于高等教育领域

第三章C单片微机的指令系统第三章C单片微机的指令系统C指令系统概述C指令系统概述C指令系统专用于C系列单片微机是一个具有种操作码(H至FFH除AH外)的集合。用汇编语言表达操作代码时种助记符代表了种功能有的功能如数据传送可以有几种助记符如MOV、MOVC、MOVX。指令功能助记符与操作数各种寻址方式的结合共构造出种指令同一种指令所对应的操作码可以多至种(如指令中Rn对应寄存器R~R)。寻址方式 寻址:在指令中给出的寻找操作数或操作数所在地址的方法。寻址方式执行任何一条指令都需要使用操作数。Cl指令系统中共有种寻址方式。⒈立即寻址在指令中直接给出操作数出现在指令中的操作数称为立即数。在立即数前面必需加上前缀“#”。例如:指令MOVDPTR#H指令功能:把位立即数H送入数据指针DPTR中如图–所示。.直接寻址在指令中直接给出操作数单元的地址。例如:指令MOVAAH功能:把片内RAM中AH单元内的数据传送给累加器A如图–所示。直接寻址方式只能给出位地址限于片内RAM:⑴低单元在指令中直接以单元地址形式给出。⑵特殊功能寄存器可以单元地址形式给出外还可以寄存器符号形式给出。直接寻址是访问特殊功能寄存器的唯一方法。 .寄存器寻址在指令中将指定寄存器的内容作为操作数。寄存器寻址方式中用符号名称来表示寄存器。例如:指令INCR功能:把寄存器R的内容加再送回R中。由于操作数在R中指定了R也就得到了操作数如图–所示。寄存器寻址方式的寻址范围包括:()个寄存器组共个通用寄存器。指令中只能使用当前寄存器组。通过指定PSW中的RS、RS以选择使用的当前寄存器组。()部分特殊功能寄存器。例如累加器A、AB寄存器对以及数据指针DPTR。.寄存器间接寻址在指令中给出的寄存器内容是操作数的地址从该地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示。在寄存器间接寻址中在寄存器的名称前面加前缀“@”。例如:指令ANLAR假定R寄存器的内容是H指令的功能是以R寄存器的内容H为地址将H地址单元的内容与累加器A中的数相“与”其结果仍存放在A中、其功能示意请参见图–。寄存器间接寻址的寻址范围:⑴片内RAM的低单元只能采用R或R为间址寄存器。其形式为Ri(i=)。⑵片外RAM的KB单元使用DPTR作为间址寄存器。例如:MOVXA@DPTR。⑶片外RAM低单元使用R或R作间址寄存器。例如:MOVXA@R。⑷堆栈区:堆栈操作指令PUSH和POP以SP作间址寄存器的间接寻址方式。⒌相对寻址在指令中给出的操作数为程序转移的偏移量。在相对转移指令中给出地址偏移量(以“rel”表示)把PC的当前值加上偏移量就构成了程序转移的目的地址。转移的目的地址可用如下公式表示:目的地址=(转移指令所在地址+转移指令字节数)+rel在的指令系统中有许多条相对转移指令这些指令多数均为两字节指令.只有个别的是三字节的指令。偏移量rel是一个带符号的位二进制补码数所能表示的数的范围是一~+。因此以相对转移指令的所在地址为基点向前最大可转移(十转移指令字节数)个单元地址向后最大可转移(一转移指令字节数)个单元地址。例如:指令JCH若进位位C为则程序计数器PC中的内容加即顺序往下若进位位C为则以程序计数器PC中当前值为基地址加上偏移量H后所得结果作为该转移指令的目的地址其执行示意图如图–所示。指令的操作码存在H单元偏移量存在H单元。执行该指令后程序计数器PC指向H(即当前值)。这里H即–故H与–(H)相加(补码运算)后得到转移地址FH。H-HFH.变址寻址以DPTR或PC为基址寄存器累加器A为变址寄存器以两者内容相加后形成的位程序存储器地址作为操作数地址。又称基址寄存器+变址寄存器间接寻址。例如:MOVCA@A+DPTR功能:把DPTR和A的内容相加所得到的程序存储器地址单元的内容送A。假定指令执行前:(A)=H(DPTR)=H该指令的操作示意参见图–。变址寻址形成的操作数地址为H+H=AAH若AAH单元的内容为H则该指令执行的结果是A的内容为H。C指令系统中的变址寻址指令有如下特点:⑴变址寻址方式只能对程序存储器进行寻址。⑵变址寻址指令只有条MOVCAA+DPTRMOVCA@A+PCJMPA+DPTR⑶这条指令都是单字节指令。⑷变址寻址方式用于查表操作。.位寻址位寻址的寻址范围:()片内RAM中的位寻址区。片内RAM中的单元地址H~FH共个单元位为位寻址区位地址是H~FH。例如MOVCBH指令的功能是把位寻址区的BH位状态送累加位C。()可位寻址的特殊功能寄存器位。可供位寻址的特殊功能寄存器共有个有寻址位位。寻址位在指令中有以下种表示方法:•直接使用位地址表示。•单元地址加位。例如H单元的位则表示为H。•特殊功能寄存器符号加位、例如PSW寄存器的位可表示为:为PSW。•位名称表示方法特殊功能寄存器中的一些寻址位是有名称的例如PSW寄存器位为F标志位则可使用F表示该位。对于指令中的操作数因为指令操作常伴有从右向左传送数据的内容所以常把左边操作数称为目的操作数而右边操作数称为源操作数。C指令系统的种寻址方式概括起来如表–所列。指令格式指令的表示方法称之为指令格式其内容包括指令的长度和指令内部信息的安排等。一条指令通常由操作码和操作数两部分组成。操作码规定指令所完成的操作操作数表示操作的对象。操作数可能是一个具体的数据也可能是指出取得数据的地址或符号。指令格式⑴单字节指令指令只有一个字节操作码和操作数同在一个字节中。在C系列的指令系统中共有条单字节指令。操作码地址码如MOVARn指令机器码为单字节rrr其中rrr可表示为~分别代表R~R⑵双字节指令:其中一个字节为操作码另一个字节是操作数。在C系列的指令系统中共有条双字节指令。操作码地址码数据或地址码如MOVA#data位立即数data需占一个字节操作码也需一个字节。⑶三字节指令:操作码占一个字节操作数占两个字节。其中操作数既可能是数据也可能是地址。在C系列的指令系统中共有条三字节指令。操作码数据或地址码数据或地址码如ANLdirect#data指令需个字节第字节为操作码第字节为位直接地址direct第字节为位立即数data。从指令执行时间来看单机器周期指令有种双机器周期指令有种只有乘法、除法指令的执行时间为个机器周期。在MHz晶振条件下C的指令执行时间分别为μS、μS、μS。指令分类 C的指令系统共有条指令按其功能可分为大类:⑴数据传送类指令(条)⑵算术运算类指令(条)⑶逻辑运算类指令(条)⑷控制转移类指令(条)⑸布尔操作(位)类指令(条)。指令分类指令系统中使用符号说明Rnn=~表示当前寄存器组的个通用寄存器R~R中的一个。Rii=l可用作间接寻址的寄存器只能是R、R两个寄存器中的一个。direct内部的位地址既可以指片内RAM的低个单元地址也可以指特殊功能寄存器的地址或符号名称因此direct表示直接寻址方式。#data指令中所含的位立即数。#data指令中所含的位立即数。指令系统中使用符号说明addr位目的地址,只限于在LCALL和LJMP指令中使用。addr位目的地址只限于在ACALL和AJMP指令中使用。rel相对转移指令中的偏移量为位带符号数。为SJMP和所有条件转移指令所用。转移范围为相对于下一条指令笫一字节地址的~+。DPTR数据指针。bit片内RAM(包括部分特殊功能寄存器)中的直接寻址位。A累加器。BB寄存器。C进位标志位是布尔处理机中的累加器称之为累加位。@间址寄存器的前缀标志。位地址的前缀标志表示对该位操作数取反。(×)某寄存器或某单元的内容。((×))由×寻址的单元中的内容。←箭头左边的内容被箭头右边的内容所取代。单片微机执行指令的过程 单片微机执行指令的过程分为取指令和执行指令两项基本内容。在取指阶段单片微机从程序存储器中取出指令操作码送到指令寄存器IR中通过指令译码器的译码产生一系列的控制信号。在指令执行阶段中利用指令译码产生的控制信号进行本指令规定的操作。单片微机执行指令的过程数据传送类指令数据传送类指令数据传送方向及相互关系见图–。可分为内部位数据传送指令、位数据传送指令、外部数据传送指令、程序存储器数据传送指令、交换指令和堆栈操作指令。助记符种:MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。◆源操作数可采用寄存器、寄存器间接、直接、立即、寄存器基址加变址等种寻址方式。◆目的操作数可以采用寄存器、寄存器间接、直接等种寻址方式。◆一般操作是把源操作数传送到目的操作数指令执行后源操作数不变目的操作数被修改为源操作数。◆若要求进行数据传送时目的操作数不变则可以用交换指令。◆数据传送类指令不影响标志位C、AC、OV。对于P标志一般不加以说明。堆栈操作指令可以直接修改程序状态字PSW这时可以使某些标志位发生改变。从图–中可以看出数据传送指令的特点有:⑴可以进行直接地址到直接地址的数据传送能把一个并行IO口中的内容传送到片内RAM单元中而不必经过累加器或工作寄存器Rn。⑵用R和R寄存器间址访问片外数据存储器个字节址及片内RAM中的任一单元。用DPTR间址访问片外全部KB的数据存储器或IO。⑶累加器A能对Rn寄存器寻址能与特殊功能寄存器之间进行一个字节的数据传送能对片内RAM直接寻址能与片内RAM单元之间进行低半字节的数据交换。⑷能用变址寻址方式访问程序存储器中的表格将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。内部位数据传送指令 C内部存储器和寄存器之间的数据传送。格式:MOV<目的字节><源字节>功能:把源字节的内容送到目的字节而源字节的内容不变。操作属于拷贝性质。内部位数据传送指令源操作数:累加器A工作寄存器Rn…)直接地址direct、间接寻址寄存器Ri和立即数#data等种。目的操作数:累加器A工作寄存器Rn直接地址direct和间接寻址寄存器Ri等种。以MOV为其助记符若以目的操作数分类可将内部位数据传送指令分为组。⒈以累加器A为目的操作数的指令组指令功能寻址范围机器码MOVARn(A)←(Rn)RRrrr种操作码(E~EFH)MOVAdirect(A)←(direct)FFHdirect双字节MOVARi(A)←((Ri))FFHr(E~EH)种操作码MOVA#data(A)←(#data)##FFHdata双字节传送指令是以累加器A为中心的总体结构。绝大部分传送操作均需通过A进行的。⒉以工作寄存器Rn为目的操作数的指令组 MOVRnA(Rn)←(A)MOVRndirect(Rn)←(direct)MOVRn#data(Rn)←#data 把源操作数的内容送入当前工作寄存器区的R~R中的某一个寄存器。⒊以直接地址direct为目的操作数的指令组 MOVdirectA(direct)←(A)MOVdirectRn(direct)←(Rn)MOVdirectdirect(direct)←(direct)MOVdirect@Ri(direct)←((Ri))MOVdirect#data(direct)←#data 功能:把源操作数的内容送入由直接地址指出的存储单元。direct为位直接地址可寻址~个单元对C可直接寻址内部RAM~个地址单元和~地址的特殊功能寄存器。⒋以间接寻址寄存器Ri为目的操作数的指令组MOVRiA((Ri))←(A)MOVRidirect((Ri))←(direct)MOVRi#data((Ri))←#data功能:把源操作数的内容送入由R或R的内容所指的内部RAM中的存储单元。Ri由操作码字节的最低位来选定是R还是R寄存器间址是以Ri的内容作为操作数的地址来进行寻址的。直接寻址direct单元在编程时就巳明确而间接寻址单元是在程序进行中明确的间接寻址空间和直接寻址空间范围相同均为~个单元地址。立即数#data为一常数它是不带符号的位二进制数。MOVAH表示把片内RAM中地址为H单元(即P口)中的内容送A。MOVH#H把立即数H送到片内RAM中的H地址单元中去。MOVHEH表示把EH单元的内容送到H单元中去。这是片内数据存储单元中的直接地址单元之间数据的直接传送。位数据传送指令MOVDPTR#data(DPTR)←#data 把位常数装入数据指针DPTR。位常数在指令的第二、第三字节中(第二字节为高位字节DPH第三字节为低位字节DPL)。例:执行指令MOVDPTR#H执行结果:(DPH)=H(DPL)=H位数据传送指令外部数据的传送指令组 实现累加器A与外部数据存储器或IO口之间传送一个字节数据的指令。采用间接寻址方式访问外部数据存储器有Ri和DPTR两种间接寻址方式。采用R或R作间址寄存器时可寻址个外部数据存储器单元位地址和数据均由P口分时输入和输出。这时若要访问大于个单元的片外RAM时可选用任何其它输出口线来输出高位的地址(一般选用P口输出高位地址)。采用位DPTR作间址可寻址整个KB片外数据存贮空间低位(DPL)由P口进行分时使用高位(DPH)由P口输出。外部数据的传送指令组 ⒈外部数据存储器或IO内容送累加器A MOVXARiMOVXADPTR 说明:指令执行时在P引脚上输出RD信号可用作外部数据存储器或IO的读选通信号。P口分时输出由Ri或DPL指定的低位地址信息和输入累加器中的数据信息P口则输出DPH指定的高位地址信息。⒉累加器A内容送外部数据存储器或IOMOVXRiAMOVXDPTRA 说明:该组指令执行时在P引脚上输出WR信号可以用作外部数据存储器或IO的写选通信号。P口分时输出由Ri或DPL指定的低位地址信息和累加器中输出的数据信息P口则输出DPH指定的高位地址信息。例:设工作寄存器R的内容为HR的内容为H片外RAMH单元的内容为H。执行指令:MOVXAR(H)=H→AMOVX@RA(A)→片外H单元中执行结果:片外RAM的(H)=H(H)=H。例:某应用系统外扩了KBRAM要求把内部RAM的H单元内容发送到外部RAM的H单元中。MOVDPTR#H外部数据存储器地址指针MOVR#H内部数据存储器地址指针MOVAR取内部RAMH单元内容MOVXDPTRA送外部RAMH单元程序存储器数据传送指令(或称查表指令)MOVCA@A+PCMOVCAADPTR 功能:从程序存储器中读取数据(如表格、常数等)。累加器A为变址寄存器而PC、DPTR为基址寄存器。DPTR为基址寄存器时允许数表存放在程序存储器的任意单元称为远程查表PC为基址寄存器时数表只能放在当前PC往下的个单元中称为近程查表。编程时需计算A值与数表首址的偏移量。程序存储器数据传送指令(或称查表指令)例:求平方数(远程查表法)MOVDPTR#TABLE指向表首址MOVCAADPTR查表得到平方数MOVHA存平方数HERE:SJMPHERETABLEDBHHHH平方表~DBHHHDBHHH例:求平方数(近程查表)ADDA#rel修正偏移量MOVCAAPC查表得到平方数MOVHA存平方数HERE:SJMPHERETABLEDBHHHHH平方表~DBHHHHH注:rel=TABLE-(查表指令地址+)MOVC指令为单字节。数据交换指令⒈字节交换指令XCH组XCHARn(A)(Rn)、direct、RiXCHAdirectXCHARi 功能∶将累加器A与源操作数的字节内容互换。例:设(R)=H(A)=FH片内(H)=BBH。执行指令XCHAR执行结果(A)=BBH(H)=FH。数据交换指令⒉半字节交换指令组 ⑴XCHDARi 功能:将Ri间接寻址单元的低位内容与累加器A的低位内容互换而它们的高位内容均不变。例:设(R)=H(A)=H(B)(H)=H(lB)。执行指令:XCHDA@R结果为:(H)=B=H(A)=B=H。⑵SWAPA功能:将累加器A的高、低半字节交换该操作也可看作是位循环指令。见图–。例:设(A)=H(B)执行指令:SWAPA执行结果:(A)=H(B)。XCHD和SWAP指令主要用于实现十六进制数或BCD码的数位交换。 堆栈操作指令组堆栈操作指令组PUSHdirectPOPdirect入栈(PUSH)指令又称“压栈”操作。指令执行后SP+指向栈顶上一个空单元将直接地址direct单元内容送入SP所指示的堆栈单元。出栈(POP)指令又称“弹出”操作由SP所寻址的片内RAM中栈顶的内容((SP))送入直接寻址单元direct中然后执行(SP)-并送入SP。例:中断响应时(SP)=HDPTR的内容为H执行入栈指令:PUSHDPLDPL内容入栈PUSHDPHDPH内容入栈。执行结果:第条指令(SP)+=H→(SP)(DPL)=H→(H)第条指令(SP)+=H→(SP)(DPH)=H→(H)片内RAM中(H)=H(H)=H(SP)=H。例:设(SP)=H片内RAM的H~H单元中的内容分别为HHH执行下列指令的结果怎样?POPDPH((SP))=(H)=H→DPH(SP)-=H-=H→SPPOPDPL((SP))=(H)=H→DPL(SP)-=H-=H→SP例检查传送结果 已知内部RAM(H)=H(H)=H(H)=HP口为B分析指令执行后各单元内容。MOVR#HR=HMOVARA=HMOVRAR=HMOVBRB=HMOVRP(H)=BMOVPPP=P=BMOVH#H(H)=H执行结果:(H)=H,(H)=H,(H)=CAH,P=P=CAH,A=H,B=H,R=H,R=H例将位BCD码倒序设内部数据存储器AH、BH单元连续存放有位BCD码数符试编一程序把位BCD码数符倒序排列。AHBHAHBHaaaaaaaaMOVR#AHMOVR#BHMOVARAH单元内容送ASWAPAA的高位与低位交换(aa)MOVRAMOVARBH单元内容送ASWAPAA的高位与低位交换(aa)XCHA,RAH与BH单元内容交换MOVRAHERE:SJMPHERE算术运算类指令算术运算类指令通过算术逻辑运算单元ALU进行数据运算处理。包括加、减、乘、除四则运算还有带借位减法、比较指令。加法类指令包括加法、带进位的加法、加以及二一十进制调整。ALU仅执行无符号二进制整数的算术运算。对于带符号数则要进行其它处理。助记符种:ADD、ADDC、INC、DA、SUBB、DEC、MUL、DIV。除了加和减指令之外算术运算结果将使进位标志(CY)、半进位标志(AC)、溢出标志(OV)置位或复位。加法指令ADDARn(A)+(Rn)→(A)ADDAdirect(A)+(direct)→(A)ADDARi(A)+((Ri))→(A)ADDA#data(A)+data→(A)功能:将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的位无符号二进制数及立即数与累加器A中的内容相加相加的结果仍存放在A中。加法指令这类指令将影响标志位AC、CY、OV、P。当和的第位有进位时将AC标志置位否则为。当和的第位有进位时将CY标志置位否则为。对于带符号数运算,当和的第位与第位中有一位进位而另一位不产生进位时溢出标志OV置位,否则为。(OV)=表示两个正数相加,和为负数或两个负数相加而和为正数的错误结果。例:设(A)=CH(R)=AAH。执行指令:ADDARBBB执行结果:(A)=DH(CY)=(OV)=(AC)=P=。带进位位加法指令 ADDCARn(A)←(A)+(Rn)+(CY)ADDCAdirect(A)←(A)+(direct)+(CY)ADDCARi(A)←(A)+((Ri))+(CY)ADDCA#data(A)←(A)+#data+(CY) 功能:将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的位二进制数及立即数与累加器A的内容和当前进位标志CY的内容相加相加的结果仍存放在A中。常用于多字节数相加。带进位位加法指令这类指令将影响标志位AC、CY、OV、P。当和的第位有进位时将AC标志置位否则清。当和的第位有进位时将CY标志置位表示和数溢出否则清。对于带符号数运算当和的第位与第位中有一位进位而另一位不产生进位时溢出标志OV置位否则为。(OV)=表示两个正数相加和为负数或两个负数相加而和为正数的错误结果。例:设(A)=CH(R)=AAH(CY)=。执行指令:ADDCAR(CY)执行结果:(A)=EH(CY)=(OV)=l(AC)=。对于带符号数的带进位相加溢出标志为意味着出错上例为两个负数相加出现结果为正数的错误。例:已知(A)=BH(R)=H。执行ADDAR指令:BHHH CY=CY=OV=AC=若两个数是无符号数则BH+H=H答案正确。若两个数是带符号数则BH的原码是(–D)H原码为D(–D)+D=D答案也是正确的OV=。增量(加)指令INCRn(Rn)←(Rn)+INCdirect(direct)←(direct)+INC@Ri((Ri))←((Ri))+INCA(A)←(A)+lINCDPTR(DPTR)←(DPTR)+ 功能:将工作寄存器Rn、片内RAM单元中的内容、间接地址存储器中的位二进制数、累加器A和数据指针DPTR的内容加相加的结果仍存放在原单元中。增量(加)指令当指令中的direct为P~P端口(地址分别为内部RAM的H、H、AH、BH)时其功能是修改输出口的内容指令执行过程中首先读入端口内容在CPU中加,再输出到端口要注意的是读入来自端口的锁存器而不是端口的引脚。这类指令具有读-修改-写的功能。例:设(R)=EH(EH)=FFH.(FH)=H。INCRFFH+=H仍存入EH单元INCREH+=FH存入(R)INCRH+=H存入(FH)执行结果为(R)=FH(EH)=H.(FH)=H二一十进制调整指令 DAA 功能:对两个BCD码的加法结果进行调整。说明:BCD码采用位二进制数编码并且只采用了其中的个编码即~分别代表BCD码~而~为无效码。当相加结果大于说明已进入无效编码区当相加结果有进位说明已跳过无效编码区。凡结果进入或跳过无效编码区时结果是错误的相加结果均比正确结果小(差个无效编码)。二一十进制调整指令十进制调整的修正方法为:   当累加器低位大于或半进位标志AC=时则进行低位加修正(A~)+→(A~)即(A)=(A)+     当累加器高位大于或进位标志CY=时,进行高位加修正(A~)+→(A~)即(A)=(A)+H例:设(A)==BCD(R)==BCD(CY)=。执行指令:ADDCARDAA执行ADDCAR(A)(BCD)(R)(BCD)十(CY)(高、低位均大于)再执行DAA(加H操作)Cy=(BCD)即BCD码数++=。例:两个多字节无符号BCD码数相加设有两个位BCD码分别存在内部RAM的H、H和H、H单元中试编写程序求两个BCD码数之和结果存入内部H、H单元。MOVR#H被加数首址MOVR#H加数首址MOVAR取被加数ADDAR与加数相加DAA二-十进制调整MOVHA存和INCR高位相加INCRMOVARADDCARDAAMOVHA 例对累加器A中压缩BCD码数减ADDA#HDAAHERE:SJMPHERE说明:累加器A允许的最大BCD码数为BCD当对A实行加BCD码数时必然形成对BCD码百位数的进位而剩在A中的内容正是压缩BCD码数减。如BCD的H经加H和DAA的调整后为H且CY=不考虑进位CY则BCD码-=。带借位减法指令SUBBARn(A)-(Rn)-(CY)→(A)SUBBAdrect(A)一(drect)一(CY)→(A)SUBBARi(A)一((Ri))一(CY)→(A)SUBBA#dala(A)-data-(CY)→(A)功能:从A中减去进位位CY和指定的变量差存入A中。C:若第位有借位则CY置否则CY清。AC:若第位有借位则AC置否则AC清。OV:若第位和第位中有一位需借位而另一位不借位则OV置OV位用于带符号的整数减法。C指令系统中没有不带借位的减法。带借位减法指令减指令 DECA(A)-→(A)DECRn(Rn)-→(Rn)DECdirect(direct)-→(direct)DECRi((Ri))-→((Ri))减指令例:设(R)=FH(EH)=H(FH)=H。执行指令:DEC@R(FH)-=H-l=FH→(FH)DECR(R)一l=FH-l=EH→(R)DEC@R(EH)-l=H-l=FFH→(EH)执行结果:(R)=EH(EH)=FFH(FH)=FH。乘法除法指令 ⒈乘法指令 MULAB 功能:将A和B中两个无符号位二进制数相乘位积的低位存于A中高位存于B中。例:设(A)=H(D)(B)=AH(D)。执行指令:MULAB即×==H执行结果:乘积H()(A)=H(B)=H(OV)=(CY)=。乘法除法指令⒉除法指令DIVAB 除法指令的功能是将A中无符号位二进制数除以B中的无符号位二进制数所得商存于A余数存于B中并将CY和OV置。当除数(B)=时结果不定则OV置。CY总是清。例:设(A)=FBH(D)(B)=H(D)。执行指令:DIVAB执行结果:(A)=DH(商为)(B)=H(余数为I)(OV)=(CY)=。例数的码制转换。把累加器A中无符号二进制整数(~FFH)转换为位压缩BCD码(~)并存入内存H和H单元。BINBCD:MOVB#DIVABA÷百位数在A余数在BMOVHA百位数送HMOVABMOVB#AHDIVAB余数÷十位数在A低位,个位数在BSWAPA十位数放A的高位ADDAB十位数和个位数组合后送HMOVHARET逻辑运算类指令逻辑运算类指令逻辑运算类指令:与、或、异或、清除、求反、移位。助记符种:ANL、ORL、XRL、RL、RLC、RR、RRC、CPL、CLR。只按位进行逻辑运算结果不影响PSW中标志位。逻辑“与”运算指令 助记符为ANL用符号“∧”表示:ANLARn(A)←(A)∧(Rn)ANLAdirect(A)←(A)∧(direct)ANLA@Ri(A)←(A)∧((Ri))ANLA#data(A)←(A)∧#dataANLdirectA(direct)←(direct)∧(A)ANLdirect#data(direct)←(drect)∧#data功能:将目的地址单元中的数和源地址单元中的数按“位”相“与”其结果放回目的地址单元中。逻辑“与”运算指令例:设(A)=AH(B),(R)=AAH(B)。执行指令:ANLARn执行结果:(A)=AH(B)。例:设P=FFH执行指令:ANLP#FH执行结果:P=FHP~P位状态不变P~P位被清除。逻辑“与”运算指令用做清除或屏蔽某些位。逻辑“或”运算指令助记符为ORL用符号“∨”表示: ORLARn(A)←(A)∨(Rn)ORLAdirect(A)←(A)∨(direct)ORLA@Ri(A)←(A)∨((Ri))ORLA#data(A)←(A)∨#dataORLdirectA(direct)←(direct)∨(A)ORLdirect#data(direct)←(direct)∨#data 功能:将目的地址单元中的数和源地址单元中的数按“位”相“或”其结果放回目的地址单元中。逻辑“或”运算指令例:设(A)=AH(B)(R)=H(B)。执行指令:ORLAR执行结果:(A)=EH(B)。逻辑或运算指令用做指定位强迫置位。给某些位置合并两个数中的“”。逻辑“异或”运算指令 助记符为XRL用符号“⊕”表示其运算规则为:⊕=⊕=⊕=⊕= XRLARn(A)←(A)⊕(Rn)XRLAdrect(A)←(A)⊕(direct)XRLA@Ri(A)←(A)⊕((Ri))XRLA#data(A)←(A)⊕#dataXRLdirectA(direct)←(direct)⊕(A)XRLdirect#data(direct)←(direct)⊕#data 功能:将目的地址单元中的数和源地址单元中的数按“位”相“异或”其结果放回目的地址单元中。逻辑“异或”运算指令例:设(A)=AH(B)(R)=H(llB)。执行指令为XRLAR⊕ 执行结果为(A)=EH(lB)。用于对目的操作数的某些位取反也可以判两个数是否相等若相等则结果为。累加器移位循环指令 包括带进位C和不带进位C的循环左移和循环右移等条指令。对于带进位的循环移位C的状态由移入的数位决定其他状态标志位不受影响。 累加器移位循环指令⒈循环右移指令: RRA 将累加器的内容逐位循环右移一位并且a的内容移到a见图–(a)所示。不影响标志位。例:设(A)=AH()执行RRA指令执行结果=H(B)。⒉带进位循环右移指令: RRCA 将累加器的内容和进位位一起循环右移一位a移入进位位CYCY的内容移到a见图–(b)所示。不影响CY之外的标志位。例:设(A)=BH(B)(CY)=执行RRCA指令执行结果为:(A)=DAH(B)(CY)=⒊循环左移指令:RLA 将累加器的内容逐位循环左移一位a的内容移到a见图–(c)所示。不影响标志位。例:设(A)=AH(B)执行RLA指令执行结果:(A)=H(lB)。⒋带进位循环左移指令: RLCA将累加器的内容和进位位一起循环左移一位并且a移入进位位CYCY的内容移到a见图–(d)所示。不影响CY之外的标志位。例:设(A)=AH(

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/153

第三章 80C51单片微机的指令系统

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利