8086/8088指令系统一、数据传送指令1.通用数据传送指令MOV(Move)传送PUSH(Pushontothestack)进栈POP(Popfromthestack)出栈XCHG(Exchange)交换.MOV指令格式为:MOV DST,SRC执行的操作:(DST)<-(SRC).PUSH进栈指令格式为:PUSHSRC执行的操作:(SP)<-(SP)-2((SP)+1,(SP))<-(SRC).POP出栈指令格式为:POPDST执行的操作:(DST)<-((SP+1),(SP))(SP)<-(SP)+2.XCHG交换指令格式为:XCHGOPR1,OPR2执行的操作:(OPR1)<-->(OPR2)2.累加器专用传送指令IN(Input)输入OUT(Output)输出XLAT(Translate)换码这组指令只限于使用累加器 AX或 AL传送信息..IN输入指令长格式为:INAL,PORT(字节)INAX,PORT(字)执行的操作: (AL)<-(PORT)(字节)(AX)<-(PORT+1,PORT)(字)短格式为:INAL,DX(字节)INAX,DX(字)执行的操作: AL<-((DX))(字节)AX<-((DX)+1,DX)(字).OUT输出指令长格式为:OUTPORT,AL(字节)OUT PORT,AX(字)执行的操作: (PORT)<-(AL)(字节)(PORT+1,PORT)<-(AX)(字)短格式为:OUTDX,AL(字节)OUTDX,AX(字)执行的操作: ((DX))<-(AL)(字节)((DX)+1,(DX))<-AX(字)在IBM-PC机里,外部设备最多可有65536个 I/O端口,端口(即外设的端口地址)为0000~FFFFH.其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号.所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口.当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用 IN或 OUT指令来 传送信息..XLAT换码指令格式为:XLATOPR或:XLAT执行的操作:(AL)<-((BX)+(AL))3.有效地址送寄存器指令LEA(Loadeffectiveaddress)有效地址送寄存器LDS(LoadDSwithPointer)指针送寄存器和 DSLES(LoadESwithPointer)指针送寄存器和 ES.LEA有效地址送寄存器格式为: LEA REG,SRC执行的操作:(REG)<-SRC指令把源操作数的有效地址送到指定的寄存器中..LDS指针送寄存器和 DS指令格式为: LDSREG,SRC执行的操作:(REG)<-(SRC)(DS)<-(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及 DS寄存器中.该指令常指定SI寄存器..LES指针送寄存器和 ES指令格式为: LESREG,SRC执行的操作:(REG)<-(SRC)(ES)<-(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及 ES寄存器中.该指令常指定DI寄存器.4.标志寄存器传送指令LAHF(LoadAHwithflags)标志送 AHSAHF(storeAHintoflags)AH送标志寄存器PUSHF(pushth...