版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理第3章微型计算机原理及应用教案幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!寻址方式3.2中断及中断返回3.4指令与指令系统3.18086指令系统3.3计算机系统包括硬件和软件两大组成局部。硬件是指构成计算机的中央处理机、主存储器、外部设备等物理装置,软件那么指由软件厂家为方便用户使用计算机而提供的系统软件,和用户用于完成自己的特定事务和信息处理任务而设计的用户程序软件。计算机能直接识别和运行的软件程序通常由该计算机的指令代码组成。寻址方式3.2中断及中断返回3.4指令与指令系统3.18086指令系统3.33.1指令与指令系统要确定一台计算机的指令系统并评价其优劣,通常应从如下4个方面考虑:1、指令系统的完备性,常用指令齐全,编程方便。2、指令系统的高效性,程序占内存空间少,运行速度快。3、指令系统的规整性,指令和数据使用规那么统一简单,易学易记。4、指令系统的兼容性,同一系列的低档计算机的程序能在高档机上直接运行。要完全同时满足上述标准是困难的,但它可以指导我们设计出更加合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。通常情况下,一条指令要由两局部内容组成,其格式为:第一局部,是指令的操作码opcode。操作码用于指明本条指令的操作功能,例如,是算术加运算、减运算还是逻辑与、或运算功能,是否是读、写内存或读、写外设操作功能,是否是程序转移和子程序调用或返回操作功能等,计算机需要为每条指令分配一个确定的操作码。第二局部,是指令的操作数opd/地址addr,用于给出被操作的信息〔数据〕或操作数的地址,包括参加运算的一或多个操作数所在的地址,运算结果的保存地址,程序的转移地址、被调用的子程序的入口地址等。操作码操作数/地址从用到的操作数个数区分,可能有如下4种情况:1.无操作数指令有的指令不涉及操作数,或使用约定的某个〔些〕操作数,既已约定那么没有必要再在指令中加以表示,称这类指令为无操作数指令,它仅有操作码局部,例如停机指令、空操作指令、关中断指令、堆栈构造的计算机系统中对堆栈中数据运算的指令等。2.单操作数指令有些指令只用一个操作数,必须在指令中指明其地址,如一个存放器内容增1或减1运算的指令;或还使用约定的某个操作数,既已约定那么无需再在指令中加以表示,如完成从〔向〕外设读〔写〕数据的指令,就可以只在指令中指明该外设地址,而把承受〔送出〕数据的通用存放器约定下来。此外,在短字长的、采用单个累加器的计算机中,已约定目的操作数〔如被加数、被减数等〕和保存计算结果都使用唯一的那个累加器,指令中只需表示另一个源操作数即可。称这类指令为单操作数指令。.3.双操作数指令对于常用的算术和逻辑运算指令,往往要求使用两个操作数,一个叫做原操作数/地址,另一个叫做目的操作数/地址,需分别给出目的操作数和源操作数的地址,其中目的操作数地址还用于保存本次的运算结果。称这类指令为双操作数指令。4.多操作数指令另外一些指令可能使用多个操作数,如3个操作数,其中两个操作数地址分别给出目的操作数和源操作数的地址,第三个操作数地址用于指出保存本次的运算结果的去处。可以称这类指令为三操作数指令;在有些性能更高的计算机〔甚至PC机〕中,还有在指令中使用更多个操作数地址的指令,用于完成对一批数据的处理过程,如字符串复制指令,向量、矩阵运算指令等,称这类指令为多操作数指令。指令系统是指一台计算机所能执行的各种不同类型指令的总和。即一台计算机所能执行的全部操作。不同计算机的指令系统包含的指令种类和数目也不同。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件构造,而且也直接影响到系统软件,影响到机器的适用范围。寻址方式3.2中断及中断返回3.4指令与指令系统3.18086指令系统3.33.2寻址方式操作数作为指令的一局部而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。【例3-1】MOVAX,1234H注意:立即数不能能够作为目的操作数。不能直接给段存放器和标志存放器赋予立即数。这种寻址方式操作数在指令中。指令所要的操作数已经在某存放器中,表示指令时,或把目标操作数存入存放器。把在指令中指出所使用存放器(即:存放器的名字)的寻址方式称为存放器寻址方式。指令中可以引用的存放器及其符号名称如下:8位存放器有:AH、AL、BH、BL、CH、CL、DH和DL等;16位存放器有:AX、BX、CX、DX、SI、DI、SP、BP和段存放器等;1.源操作数是存放器寻址方式如:ADDVARW,AXMOVVARB,BH等。其中:VARW和VARB是双字,字和字节类型的内存地址,叫做符号地址。2.目的操作数是存放器寻址方式如:ADDBH,78HADDAX,1234H等。3.源和目的操作数都是存放器寻址方式如:MOVAX,BXMOVDH,BL等。【例3-2】MOVAX,BX指令执行前:〔AX〕=3064H〔BX〕=1234H指令执行后:〔AX〕=1234H,BX内容未改变。注意:源存放器与目的存放器的位数必须一致。这种寻址方式操作数在CPU中。Opd也可以存放在存储器中,这种寻址方式叫做存储器寻址,存储器寻址的关键是如何给出存储器的地址,给出方式不同,寻址方式也有多种。1.直接寻址方式【例3-3】MOVAX,[2000H]指令执行前:〔DS〕=3000H,〔32000H〕=50H,〔32001H〕=30H操作数的物理地址=3000H*10H+2000H=32000H指令的操作是把32000H字存储单元的内容送AX存放器。指令执行后:〔AX〕=3050H.2.存放器间接寻址方式操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个存放器之一来指定,称这种寻址方式为存放器间接寻址方式。该寻址方式物理地址的计算方法如下:假设指令中指定的存放器是BP,操作数在堆栈段,段基值在SS中。物理地址=〔SS〕*10h+(BP)----基地址指针存放器,可对指针进展修改形成下一个地址。(BX)--基址寄存器(SI)--源变址寄存器(DI)--目的变址寄存器物理地址=(DS)*10H+3.存放器相对寻址方式该寻址方式是以指定的存放器内容,加上指令中给出的位移量〔8位或16位〕,并以一个段存放器为基准,作为操作数的地址。指定的存放器一般是一个基址存放器或变址存放器。存放器相对寻址通过基址存放器BX,BP或变址存放器SI,DI与一个位移量相加形成有效地址〔EA〕,计算物理地址〔PA〕的缺省段仍然是SI,DI和BX为DS,BP为SS。(BX)(SI)(DI)DISP8DISP16PA=(ES)*10H++DISP叫做位移量,实际上它是一个数值,可以是8位也可以是16位。4.基址加变址寻址方式这是一种基址加变址来定位操作数地址的方式,操作数的有效地址是一个基址存放器〔BP或BX〕和一个变址存放器〔SI或DI〕的内容之和。MOVCL,[BX+SI]PA=(DS)*10H+(BX)+(SI)MOVCH,[BX+DI]PA=(DS)*10H+(BX)+(DI)4.基址加变址寻址方式这是一种基址加变址来定位操作数地址的方式,操作数的有效地址是一个基址存放器〔BP或BX〕和一个变址存放器〔SI或DI〕的内容之和。MOVAX,[BP+SI]PA=(SS)*10H+(BP)+(SI)MOVDX,[BP+DI]PA=(SS)*10H+(BP)+(DI)5.相对基址加变址寻址方式操作数的有效地址是基址加变址,再加上一个位移量得到。一般用于寻址复杂的数组中的元素。MOVDH,[BX+DI+20H]源操作数PA=〔DS〕*10H+〔BX〕+〔SI〕+20H ;其中20H即为DISP5.相对基址加变址寻址方式MOVAX,FILE[BX+SI] ;FILE为符号表示的DISP源操作数PA=〔DS〕*10H+〔BX〕+〔SI〕+FILEMOVLIST[BP+SI],AX目的操作数PA=〔SS〕*10H+〔BP〕+〔SI〕+LIST寻址方式3.2中断及中断返回3.4指令与指令系统3.18086指令系统3.33.38086指令系统1.通用数值传送指令〔MOV〕格式:MOVDST,SRC其中,DST表示目的操作数或地址,SRC表示源操作数或地址。功能:把一个字节或字从源操作数传送到目的操作数,即DST(SRC),目的操作数原有内容消失。本卷须知:立即树不能为目的操作数。CS不能是目的操作数,只能作为源操作数。目的操作数与源操作数不能同时用存储器寻址方式。〔这一点适用于所有指令〕不同类型的数据不能传送。立即数不能直接送段存放器。MOV指令不影响标志位。2.堆栈指令:格式1:PUSHSRC功能:PUSH是压栈指令。把栈顶指针减2,即SP(SP)-2;将源操作数送到栈顶指针所指示的栈顶单元。格式2:POPDST功能:退栈指令,把栈顶的字数据从堆栈中弹出送目的操作数。DST((SP));〔SP〕(SP)+2本卷须知:PUSH和POP指令只能是字操作,不能是字节操作。POP的DST不允许是CS存放器。PUSH和POP指令不能使用立即数方式。PUSH和POP不影响标志位。3.交换指令:(XCHG)格式:XCHGOPR1,OPR2其中,OPR代表操作数存放器。功能:〔OPR1〕〔OPR2〕注意:两个操作数不能同时在存储器中。也不能为立即数。不允许使用段存放器。不影响标志位。4.换码指令:XLAT〔查表指令〕格式:XLAT或XLATOPR功能:(AL)((DS)*10H+(BX)+(AL))根据AL存放器提供的位移量,将BX指示的字节表格中的代码换存到AL中.本卷须知:所建字节表格长度不能超过256B.不影响标志位.5.累加器专用传送指令:IN指令:固定端口:格式:INAL,Port//Port<=0FFH功能:将I/O端口号送AL或AX。〔AL〕(PORT)或(AX)(PORT+1:PORT)可变端口:格式:INAL,DX//Port>0FFH功能:将I/O端口经DX送AL或AX存放器。(AL)((DX))(AX)((DX)+1:(DX))OUT指令:格式1:OUTPort,AL//Port<=0FFH功能:将AL或AX中的数据输出到I/O端口.(port)(AL)或:(port+1,port)(AX)格式2:OUTDX,AL//Port>0FFH功能:将AL或AX中的数据经DX存放器送往I/O端口.((DX))(AL)((DX)+1:(DX))(AX)本卷须知:不影响标志位。1.有效地址装入指令〔LEA〕格式:LEAREG,SRC功能:把源操作数的有效地址装入指定的目标存放器。本卷须知:源操作数的数据类型可以是字节或字,而目的存放器必须是16位的通用存放器。LEA处理的是存储单元的有效地址,MOV指令处理的是存储单元的内容。2.双指针装入指令〔LDS,LES〕格式:LDSREG,SRCLESREG,SRC功能:把双字长操作数低地址之中内中的偏移量装入指定的目的存放器。标志存放器传送〔有四条标志传送指令〕1.LAHF〔LOADAHWITHFLAG〕将标志存放器中的SF、ZF、AF、PF和CF〔即低8位〕传送至AH存放器的指定位,空位没有定义。2.SAHF〔STORE AHWITHFLAG〕将存放器AH的指定位,送至标志存放器的SF、ZF、AF、PF和CF位〔即低8位〕。根据AH的内容,影响上述标志位,对OF、DF和IF无影响。3.PUSHF〔PUSHFLAG〕将标志存放器压入堆栈顶部,同时修改堆栈指针,不影响标志位。4.POPF〔POPFLAG〕堆栈顶部的一个字,传送到标志存放器,同时修改堆栈指针,影响标志位。1.加法指令:格式1:ADDDST,SRC功能:不带进位的加法,将源操作数与目的操作数相加,将和放入目的操作数地址中。DST〔SRC〕+〔DST〕格式2:ADCDST,SRC功能:带进位的加法,将源操作数、目的操作数以及标志存放器中的进位标志位CF相加,并将和放入目的操作数中。DSTSRC+DST+CF格式3:INCOPR功能:将目的操作数加1,放入目的操作数中.OPROPR+1本卷须知:ADD和ADC指令是双操作数指令,它们的两个操作数不能同时为存储器寻址方式,源操作数和目的操作数必须有一个是存放器寻址方式。INC可以是除立即数以外的任何寻址方式。ADD、ADC影响条件标志位,INC影响除了CF之外的其他条件码。条件码的设置情况:SF=1加法结果为负数SF=0加法结果为正数ZF=1加法结果为0ZF=0加法结果不为0CF=1最高有效位向高位有进位CF=0最高有效位向高位无进位OF=1两个同符号数相加,结果符号与其相反OF=0不同符号数相加时,或同符号数相加,结果符号与其一样2.减法指令:格式1:SUBDST,SRC功能:(DST)(DST)-(SRC)格式2:SBBDST,SRC功能:(DST)(DST)-(SRC)-CF格式3:DECOPR功能:(OPR)(OPR)-1格式4:CMPOPR1,OPR2功能:(OPR1)-(OPR2),根据相减的结果设置条件码,但不回送结果.格式5:NEGOPR功能:(OPR)-(OPR)+1,求操作数的补码,即对OPR取非后,末位再加1.条件码设置:CF=1二进制减法运算中最高有效位向更高位有借位(被减数<减数)CF=0二进制减法运算中最高有效位向更高位无借位(被减数>=减数)OF=1两数符号相反,而结果符号与减数一样OF=0同符号数相减时,或不同符号数相减时,其结果符号与减数不同3.乘法指令:格式1:MULSRC//无符号数乘法功能:(AX)(AL)*(SRC)格式2:IMULSRC//带符号数乘法功能:(DX,AX)(AX)*(SRC)注意:影响CF,OF.对于MUL,CFOF=00乘积高一半为0CFOF=11乘积高一半不为0对于IMUL,CFOF=00乘积的高一半为低一半的符号扩展.CFOF=11其他情况.4.除法指令:格式1:DIVSRC//无符号数除法格式2:IDIVSRC//有符号数除法功能:字节除法:〔AL〕(AX)/SRC的商(AH)(AX)/SRC的余数字除法:(AX)(DX,AX)/SRC的商(DX)(DX,AX)/SRC的余数本卷须知:不影响条件码。当除数为0或商溢出时由系统直接转入0型中断来处理。格式1:ANDDST,SRC功能:逻辑与,〔DST〕(DST)∧(SRC)格式2:ORDST,SRC功能:逻辑或,(DST)(DST)∨(SRC)格式3:NOTOPR功能:逻辑非,〔OPR〕(OPR#)格式4:XORDST,SRC功能:逻辑异或,(DST)(DST)◎(SRC)格式5:TESTOPR1,OPR2功能:根据与运算结果,设置条件码,结果不回送.本卷须知:这是一组位操作指令,它们可以对字或字节按位执行逻辑操作,因此源操作数经常为一个位串。NOT不影响标志位。其他指令指令后,CF、OF置0,AF无定义,SF、ZF、PF根据运算结果设置。移位指令格式1:SHLDST,CNT功能:逻辑左移,最低位补0,最高位移到CF中。格式2:SHRDST,CNT功能:逻辑右移,最高位补0,最低位移到CF中。格式3:SALDST,CNT功能:算术左移,最高位移到CF中,最低位补0。格式4:SARDST,CNT功能:算术右移,最高位用符号位的值补充,最低位移到CF中。格式5:ROLDST,SRC功能:循环左移,最高位移到最低位,其余各位依次左移。格式6:RORDST,SRC功能:循环右移,最低位移到最高位,其余各位依次右移。格式7:RCLDST,SRC功能:带进位的循环左移。CF移到最低位,操作数最高位移到CF,其余各位依次左移。格式8:RCRDST,SRC功能:带进位的循环右移。CF移到最高位,最低位移到CF,其余各位依次右移。1.无条件转移指令无条件转移指令JMP分直接转移和间接转移两种。一般格式:JMPOPRD;OPRD是转移的目的地址〔1〕短程转移JMPSHORTOPRD;IP=IP+8位位移量目的地址与JMP指令所处地址的距离应在-128~127范围之内。〔2〕近程转移JMPNEARPTROPRD;IP=IP+16位位移量或JMPOPRD;NEAR可省略目的地址与JMP指令应处于同一地址段范围之内。〔3〕远程转移JMPFARPTROPRD;IP=OPRD的段内位移量,CS=OPRD所在段地址。远程转移是段间的转移,目的地址与JMP指令所在地址不在同一段内。执行该指令时要修改CS和IP的内容。间接转移指令的目的地址可以由存储器或存放器给出。〔4〕段内间接转移JMPWORDPTROPRD;IP=[EA]〔由OPRD的寻址方式确定〕。JMPWORDPTR[BX]IP=〔〔DS〕*16+〔BX〕〕JMPWORDPTRBXIP=〔BX〕〔5〕段间间接转移JMPDOWRDPTROPRD;IP=[EA],CS=[EA+2]该指令指定的双字节指针的第一个字单元内容送IP,第二个字单元内容送CS。JMPDWORDPTR[BX+SI]2.条件转移8086有18条不同的条件转移指令。它们根据标志存放器中各标志位的状态,决定程序是否进展转移,满足条件转移,不满足条件那么顺序执行。条件转移指令的目的地址必须在现行的代码段(CS)内,并且以当前指针存放器IP内容为基准,其位移必须在十127~—128的范围之内。3.循环指令对于需要重复进展的操作,微机系统可用循环程序构造来进展,8086/8088系统为了简化程序设计,设置了一组循环指令,这组指令主要对CX或标志位ZF进展测试,确定是否循环表3-2循环指令表指令格式执行操作LOOPOPRDCX=CX-1;若CX<>0,则循环LOOPNZ/LOOPNEOPRDCX=CX-1,若CX<>0且ZF=0,则循环LOOPZ/LOOPEOPRDCX=CX-1,若CX<>0且ZF=1,则循环4.子程序调用与返回CALL指令用来调用一个过程或子程序。由于过程或子程序有段间(即远程FAR)和段内调用(即近程NEAR)之分。所以CALL也有FAR和NEAR之分。因此RET也分段间与段内返回两种。调用指令一般格式为:段内调用CALLNEARPTROPRD;操作SP=SP-2,〔〔SP〕+1,〔SP〕〕=IP,IP=IP+16位位移量CALL指令首先将当前IP内容压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中。段间调用CALLFARPTROPRD;操作SP=SP-2,〔〔SP〕+1〕,〔SP〕〕=CS;SP=SP-2,〔〔SP〕+1〕,〔SP〕〕=IP;IP=[EA];CS=[EA+2]CALL指令先把CS压入堆栈,再把IP压入堆栈。当执行RET指令而返回时,从堆栈中取出一个字放入IP中,然后从堆栈中再取出第二个字放入CS中,作为段间返回地址。返回指令格式有:RET;SP=〔〔SP+1〕,SP〕,SP=SP+2RETn;SP=〔〔SP+1〕,SP〕,SP=SP+2SP=SP+nRETn指令要求n为偶数,当RET正常返回后,再做SP=SP+n操作。字符串操作指令处理放在存储器中的字节串或字串,串处理的方向有方向标志位DF决定,串处理指令之前可加重复前缀,在执行串处理指令时,源串的指针SI和目的串的指针DI根据DF的指示自动增量〔+1或+2〕或自动减量〔-1或-2〕1.设置方向标志指令:格式1:CLD功能:DF置0,串处理的方向是自动增量。格式2:STD功能:DFZ置1,串处理的方向是自动减量。2.串处理指令格式1:MOVSB或MOVSW功能:串传送,传字节或传字。(ES:DI)(DS:SI)(SI)(SI)±1(字节)或±2(字)(DI)(DI)±1(字节)或±2(字)格式2:STOSB或STOSW功能:存串。(ES:DI)(AL)或(AX) (DI)(DI)±1(字节)或±2(字)格式3:LODSB或LODSW功能:取串.(AL)或(AX)(ES:SI) (SI)(SI)±1(字节)或±2(字)格式4:CMPSB或CMPSW功能:串比较。〔DS:SI〕-〔ES:DI〕,根据比较的结果设置条件码.(SI)(SI)±1(字节)或±2(字)(DI)(DI)±1(字节)或±2(字)格式5:SCASB或SCASW功能:串扫描.(AL)-(ES:DI)或(AX)-(ES:DI),根据扫描比较的结果设置条件码. (DI)(DI)±1(字节)或±2(字)3.串重复前缀格式1:REP功能:重复执行串指令,〔CX〕=重复次数。〔CX〕=0时,串指令执行完毕,否那么执行:〔CX〕(CX)-1执行串指令(MOVS或STOS)重复执行格式2:REPE/REPZ功能:相等或为零时重复执行串指令,(CX)=比较或扫描的次数.(CX)=0或ZF=0时,完毕执行串指令.否那么继续执行:(CX)(CX)-1执行串指令(CMPS或SCAS)重复执行格式3:REPNE/REPNZ功能:不等或不为零时重复执行串指令.(CX)=比较或扫描的次数.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026陕西蒲城高新医院招聘25人备考题库【典优】附答案详解
- 2026广东茂名信宜市朱砂镇旺沙卫生院招聘编外人员1人备考题库含答案详解【新】
- 2026上海师范大学康城实验学校第二批教师招聘4人备考题库(b卷)附答案详解
- 2026广东佛山市顺德区乐从第一实验学校(教务文员)招聘1人备考题库(名校卷)附答案详解
- 2026湖南省中南林业科技大学涉外学院人才招聘备考题库含完整答案详解【必刷】
- 2026安徽芜湖市第一人民医院第一次招聘劳务派遣人员16人备考题库附参考答案详解【达标题】
- 2026湖南娄底市人力资源和社会保障局娄底市就业见习岗位备考题库含答案详解【预热题】
- 2026河南周口市公益性岗位补录招聘37人备考题库及一套参考答案详解
- 2026湖北恩施州来凤县绿水镇中心幼儿园带班教师1名备考题库【巩固】附答案详解
- 2026广东清远市阳山县融媒体中心招聘新闻人员4人备考题库及1套参考答案详解
- 《痛经妇产科学》课件
- 重庆市2017年中考数学试卷B卷(含答案)
- 北师大版二年级数学下册全册10套试卷(附答案)
- 西方哲学史复习笔记
- 集团公司战略协议管理办法
- JP柜的生产工艺
- 非煤地下矿山风险辨识与评估
- 批判性思维与创新思维
- 绿植花卉租摆及园林养护服务 投标方案(技术方案)
- 小肠切除术护理查房课件
- 学生编著:《雷雨》剧本
评论
0/150
提交评论