资源描述:
《汇编语言复习资料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、数据传送指令1*通用数据传送指令MOV(Move)传送PUSH(Pushontothestack)进栈POP(Popfromthestack)出栈XCHG(Exchange)交换*MOV指令格式为:MOV DST,SRC执行的操作:(DST)<-(SRC)*PUSH进栈指令格式为:PUSH SRC执行的操作:(SP)<-(SP)-2 ((SP)+1,(SP))<-(SRC)*POP出栈指令格式为:POP DST执行的操作:(DST)<-((SP+1),(SP)) (SP)<-(SP)+2*XCHG交换指令格式
2、为:XCHG OPR1,OPR2执行的操作:(OPR1)<-->(OPR2)2*累加器专用传送指令IN(Input) 输入OUT(Output) 输出XLAT(Translate) 换码这组指令只限于使用累加器AX或AL传送信息**IN输入指令长格式为: IN AL,PORT(字节) IN AX,PORT(字)执行的操作: (AL)<-(PORT)(字节) (AX)<-(PORT+1,PORT)(字)短格式为: IN AL,DX(字节) IN AX,DX(字)执行的操作: AL<-((DX)
3、)(字节) AX<-((DX)+1,DX)(字)*OUT输出指令长格式为: OUT PORT,AL(字节) OUT PORT,AX(字)执行的操作: (PORT)<-(AL)(字节) (PORT+1,PORT)<-(AX)(字)短格式为: OUT DX,AL(字节) OUT DX,AX(字)执行的操作: ((DX))<-(AL)(字节) ((DX)+1,(DX))<-AX(字) 在IBM-PC机里,外部设备最多可有65536个I
4、/O端口,端口(即外设的端口地址)为0000~FFFFH*其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号*所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口*当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用IN或OUT指令来传送信息*XLAT 换码指令格式为: XLAT OPR或: XLAT执行的操作:(AL)<-((BX)+(AL))3*有效地址送寄存器指令LEA
5、(Loadeffectiveaddress)有效地址送寄存器LDS(LoadDSwithPointer)指针送寄存器和DSLES(LoadESwithPointer)指针送寄存器和ES*LEA有效地址送寄存器格式为: LEA REG,SRC执行的操作:(REG)<-SRC 指令把源操作数的有效地址送到指定的寄存器中*LDS指针送寄存器和DS指令格式为: LDS REG,SRC执行的操作:(REG)<-(SRC) (DS)<-(SRC+2) 把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中*该指令常指定SI
6、寄存器**LES指针送寄存器和ES指令格式为: LES REG,SRC执行的操作:(REG)<-(SRC) (ES)<-(SRC+2) 把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中*该指令常指定DI寄存器*4*标志寄存器传送指令LAHF(LoadAHwithflags)标志送AHSAHF(storeAHintoflags)AH送标志寄存器PUSHF(pushtheflags)标志进栈POPF(poptheflags)标志出栈*LAHF标志送AH格式为: LAHF执行的操作:(AH)<-(PWS的低字节
7、)*SAHFAH送标志寄存器格式为: SAHF执行的操作:(PWS的低字节)<-(AH)*PUSHF标志进栈格式为: PUSHF执行的操作:(SP)<-(SP)-2 ((SP)+1,(SP))<-(PSW)*POPF标志出栈格式为: POPF执行的操作:(PWS)<-((SP)+1,(SP)) (SP)<-(SP+2)二、算术指令1*加法指令ADD(add)加法ADC(addwithcarry)带进位加法INC(increment)加1*ADD 加法指令格式: ADD DST,SRC执行的操作:
8、(DST)<-(SRC)+(DST)*ADC 带进位加法指令格式: ADC DST,SRC执行的操作:(DST)<-