版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【數(shù)據(jù)傳輸指令】一、通用數(shù)據(jù)傳送指令1、傳送指令MOV(move)
指令的匯編格式:MOVDST,SRC
指令的根本功能:(DST)<-(SRC)將原操作數(shù)(字節(jié)或字)傳送到目的地址。
指令支持的尋址方式:目的操作數(shù)和源操作數(shù)不能同時用存儲器尋址方式,這個限制適用于所有指令。指令的執(zhí)行對標(biāo)志位的影響:不影響標(biāo)志位。
指令的特殊要求:目的操作數(shù)DST和源操作數(shù)SRC不允許同時為段存放器;
目的操作數(shù)DST不能是CS,也不能用立即數(shù)方式。
2、進(jìn)棧指令PUSH(pushontothestack)
出棧指令POP(popfromthestack)
指令的匯編格式:PUSHSRC;POPDST
指令的根本功能:PUSH指令在程序中常用來暫存某些數(shù)據(jù),而POP指令又可將這些數(shù)據(jù)恢復(fù)。PUSHSRC(SP)<-(SP)-2;(SP)<-(SRC)
POPDST(DST)<-((SP));(SP)<-(SP)
指令支持的尋址方式:push和pop指令不能不能使用立即數(shù)尋址方式。
指令對標(biāo)志位的影響:PUSH和POP指令都不影響標(biāo)志位。
指令的特殊要求:PUSH和POP指令只能是字操作,因此,存取字?jǐn)?shù)據(jù)后,SP的修改必須是+2或者-2;POP指令的DST不允許是CS存放器;
3、交換指令XCHG(exchange)
指令的匯編格式:XCHGOPR1,OPR2
指令的根本功能:(OPR1)<->(OPR2)
指令支持的尋址方式:一個操作數(shù)必須在存放器中,另一個操作數(shù)可以在存放器或存儲器中。
指令對標(biāo)志位的影戲:不影響標(biāo)志位。
指令的特殊要求:不允許使用段存放器。
二、累加器專用傳送指令4、輸入指令I(lǐng)N(input)
輸出指令OUT(output)
指令的匯編格式:INac,portport<=0FFH
INac,DXport>0FFH
OUTport,acport<=0FFH
OUTDX,acport>0FFH
指令的根本功能:對8086及其后繼機(jī)型的微處理機(jī),所有I/O端口與CPU之間的通信都由輸入輸出指令I(lǐng)N和OUT來完成。IN指令將信息從I/O輸入到CPU,OUT指令將信息從CPU輸出到I/O端口,因此,IN和OUT指令都要指出I/O端口地址。
INac,portport<=0FFH(AL)<-(port)傳送字節(jié)或(AX)<-(port+1,port)傳送字
INac,DXport>0FFH(AL)<-((DX))傳送字節(jié)或(AX)<-((DX)+1,(DX))傳送字
OUTport,acport<=0FFH(port)<-(AL)傳送字節(jié)或(port+1,port)<-(AX)傳送字
OUTDX,acport>0FFH(DX)<-(AL)傳送字節(jié)或((DX)+1,(DX))<-(AX)傳送字
指令對標(biāo)志位的影響:不影響標(biāo)志位。指令的特殊要求:只限于在AL或AX與I/O端口之間傳送信息。傳送16位信息用AX,傳送8位信息用AL,這取決于外設(shè)端口的寬度。
5、換碼指令XLAT(translate)
指令的匯編格式:XLATopr或XLAT
指令的根本功能:這條指令根據(jù)AL存放器提供的位移量,將BX指使的字節(jié)表格中的代碼換存在AL中。(AL)<-((DS)*16+(BX)+(AL))
指令對標(biāo)志位的影響:不影響標(biāo)志位。
指令的特殊要求:所建字節(jié)表格的長度不能超過256字節(jié),因為存放位移量的是8位存放器AL。opr為表格的首地址,因為opr所表示的偏移地址已存入BX存放器,所以opr在換碼指令中可有可無,有那么提高程序的可讀性。
三、地址傳送指令
6、有效地址傳送器LEA(loadeffectiveaddress)
指令的匯編格式:LEAreg,src
指令的根本功能:LEA指令把源操作數(shù)的有效地址送到指定的存放器,這個有效地址是由src選定的一種存儲器尋址方式確定的。
指令支持的尋址方式:各種存儲器尋址方式。
指令對標(biāo)志位的影響:不影響標(biāo)志位。
指令的特出要求:指令中reg不能是段存放器;
7、指針?biāo)痛娣牌骱虳SLDS(loadDSwithpoint)
指針?biāo)痛娣牌骱虴SLES(loadESwithpoint)
指令的匯編格式:LDSreg,srcLESreg,src
指令的根本功能:LDS和LES指令把確定內(nèi)存單元位置的偏移地址送存放器,段地址DS或ES。這個偏移地址和段地址〔也稱地址指針〕是由src指定的兩個相繼字單元提供的。
LDSreg,src(reg)<-(src)(DS)<-(src+2)
LESreg,src(reg)<-(src)(ES)<-(src+2)
指令支持的尋址方式:src必須為存儲器尋址方式
指令對標(biāo)志位的影響:不影響標(biāo)志位。
指令的特殊要求:指令中REG不能是段存放器;
四、標(biāo)志存放器傳送指令8、標(biāo)志存放器的低字節(jié)送AHLAHF(loadAHwithFLAGS)
指令的匯編格式:LAHF
指令的根本功能:(AH)<-(FLAGS)0-7
指令對標(biāo)志位的影響:不影響標(biāo)志位
9、AH送標(biāo)志存放器低字節(jié)SAHF(storeAHintoFLAGS)
指令的格式:SAHF
指令的根本功能:(FLAGS)0-7<-(AH)
指令對標(biāo)志位的影響:由裝入值來確定標(biāo)志位的值。
10、標(biāo)志進(jìn)棧PUSHF(pushtheflags)
指令的匯編格式:PUSHF
指令的根本功能:(SP)<-(SP)-2((SP)+1,(SP))<-(FLAGS)0-15
指令對標(biāo)志位的影響:不影響標(biāo)志位。
11、標(biāo)志出棧POPF(poptheFLAGES)
指令的匯編格式:POPF
指令的根本功能:(FLAGS)0-15<-((SP)+1,(SP))(SP)<-(SP)+2
指令對標(biāo)志位的影響:由裝入值來確定標(biāo)志位的值。【算術(shù)指令】
一、加法指令
12、加法指令A(yù)DD(addition)
指令的匯編格式:adddst,src
指令的根本功能:(dst)<-(src)+(dst)
指令支持的尋址方式:他們兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0加法結(jié)果為正數(shù)〔符號位為0〕
ZF=1加法結(jié)果為零
ZF=0加法結(jié)果不為零
CF=1最高有效位向高位有進(jìn)位
CF=0最高有效位向高位無進(jìn)位
OF=1兩個同符號數(shù)相加〔正數(shù)+正數(shù)或負(fù)數(shù)+負(fù)數(shù)〕,結(jié)果符號與其相反。
OF=0兩個不同符號數(shù)相加,或同符號數(shù)相加,結(jié)果符號與其相同。
13、帶進(jìn)為加法指令A(yù)DC(addwithcarry)
指令的匯編格式:ADDdst,src
指令的根本功能:(dst)<-(src)+(dst)+CF
指令支持的尋址方式:他們兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)
SF=0加法結(jié)果為正數(shù)
ZF=1加法結(jié)果為零
ZF=0加法結(jié)果不為零
CF=1最高有效位向高位有進(jìn)位
CF=0最低有效位相高位無進(jìn)位
OF=1兩個同符號數(shù)相加,結(jié)果符號與其相反,
OF=0兩個同符號數(shù)相加,或同符號相加,結(jié)果符號與其相同
14、加1指令I(lǐng)NC(increament)
指令的匯編格式:INCopr
指令的根本功能:(opr)<-(opr)
指令支持的尋址方式可以使用除立即數(shù)方式外的任何尋址方式
指令對標(biāo)志位的影響:SF=1加法結(jié)果為負(fù)數(shù)
SF=0加法結(jié)果為正數(shù)
ZF=1加法結(jié)果為零
ZF=0加法結(jié)果不為零
OF=1兩個同符號數(shù)相加,結(jié)果符號與其相反,
OF=0兩個同符號數(shù)相加,或同符號相加,結(jié)果符號與其相同。
二、減法指令
15、減法指令SUB(subtract)
指令的匯編格式:SUBdst,src
指令的根本功能:(dst)<-(dst)-(src)
指令支持的尋址方式:他們兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0減法結(jié)果為正數(shù)〔符號位為0〕
ZF=1減法結(jié)果為零
ZF=0減法結(jié)果不為零
CF=1二進(jìn)制減法運算中最高有效位向高位有借位〔被減數(shù)小于減數(shù),不夠減的情況〕
CF=0二進(jìn)制減法運算中最高有效為向高位無借位〔被減數(shù)〉=減數(shù),夠減的情況〕
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
16、帶借位減法指令SBB(subtractwithborrow)
指令的匯編格式:SBBdst,src
指令的根本功能:(dst)<-(dst)-(src)-CF
指令支持的尋址方式:他們兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0減法結(jié)果為正數(shù)〔符號位為0〕
ZF=1減法結(jié)果為零
ZF=0減法結(jié)果不為零
CF=1二進(jìn)制減法運算中最高有效位向高位有借位〔被減數(shù)小于減數(shù),不夠減的情況〕
CF=0二進(jìn)制減法運算中最高有效為向高位無借位〔被減數(shù)〉=減數(shù),夠減的情況〕
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
17、減1指令DEC(decrement)
指令的匯編格式:DECopr
指令的根本功能:(opr)<-(opr)-1
指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。
指令對標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0減法結(jié)果為正數(shù)〔符號位為0〕
ZF=1減法結(jié)果為零
ZF=0減法結(jié)果不為零
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
18、比擬指令CMP(compare)
指令的匯編格式:CMPopr1,opr2
指令的根本功能:(opr1)-(opr2),根據(jù)相減結(jié)果設(shè)置條件碼,但不回送結(jié)果。
指令支持的尋址方式:他們兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:SF=1減法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0減法結(jié)果為正數(shù)〔符號位為0〕
ZF=1減法結(jié)果為零
ZF=0減法結(jié)果不為零
CF=1二進(jìn)制減法運算中最高有效位向高位有借位〔被減數(shù)小于減數(shù),不夠減的情況〕
CF=0二進(jìn)制減法運算中最高有效為向高位無借位〔被減數(shù)〉=減數(shù),夠減的情況〕
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
19、求補指令NEG(negate)
指令的匯編格式:NEGopr
指令的根本功能:(opr)<--(opr)
指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。
指令對標(biāo)志位的影響:CF=1不為0的操作數(shù)求補時
CF=0為0的操作數(shù)求補時
OF=1操作數(shù)為-128〔字節(jié)運算〕或操作數(shù)為-32768〔字運算〕
OF=0當(dāng)求補運算的操作數(shù)不為-128〔字節(jié)〕或-32768〔字〕時三、乘法指令
20、無符號乘法指令NUL(unsignedmultiple)
有符號乘法指令I(lǐng)MUL(signedmuliple)
指令的匯編格式:NULsrcIMULsrc
指令的根本功能:(AX)<-(AL)*(src)(DX,AX)<-(AX)*(src)
指令支持的尋址方式:src可以使用除立即數(shù)方式以外的任一種尋址方式。
指令對標(biāo)志位的影響:乘法指令只影響標(biāo)志位CF和OF,其他條件碼位無定義。
MUL指令的條件碼設(shè)置為:
CFOF=00乘積的高一半為0〔字節(jié)操作的〔AH〕或字操作的〔DX〕〕
CFOF=11乘積的高一半不為0
IMUL指令的條件碼設(shè)置為:
CFOF=00乘積的高一半為低一半的符號擴(kuò)展.
CFOF=11其他情況
指令的特殊要求:MUL和IMUL指令的區(qū)別僅在于操作數(shù)是無符號還是帶符號數(shù),它們的共同點是,指令中只給出源操作數(shù)src,目的操作數(shù)是隱含的,它只能是累加器〔字運算為AX,字節(jié)運算為AL〕。隱含的乘積存放器是AX或DX〔高位〕和AX〔低位〕。
四、符號擴(kuò)展指令21、節(jié)擴(kuò)展為字CBW(convertbytetoword)
指令的匯編格式:CBW
指令的根本功能:(AH)=00H當(dāng)(AL)的最高有效位為0時
(AH)=FFH當(dāng)(AL)的最高有效位為1時
指令對標(biāo)志位的影響:不影響標(biāo)志位
指令的特殊要求:這是條無操作數(shù)的指令,進(jìn)行符號擴(kuò)展的操作數(shù)必須存放在AL存放器AX存放器中。
22、字?jǐn)U展為雙字CWD(convertwordtodoubleword)
指令的匯編格式:CWD
指令的根本功能:(DX)=0000H當(dāng)(AX)的最高有效位為0時
(DX)=FFFFH當(dāng)(AX)的最高有效位為1時
指令對標(biāo)志位的影響:不影響標(biāo)志位
指令的特殊要求:這是條無操作數(shù)的指令,進(jìn)行符號擴(kuò)展的操作數(shù)必須存放在AL存放器或AX存放器中。
五、除法指令
23、無符號數(shù)除法DIV(unsigneddivide)
帶符號數(shù)除法IDIV(singeddivide)
指令的匯編格式:DIVsrcIDIVsrc
指令的根本功能:字操作
(AL)<-(AX)/src的商(AH)<-(AX)/src的余數(shù)
字節(jié)操作
(AX)<-(DX,AX)/src的商(DX)<-(DX,AX)/src的余數(shù)
指令支持的尋址方式:src作為除數(shù),可用除立即數(shù)以外的任一種尋址方式來取得。
指令對標(biāo)志位的影響:不影響條件碼。
指令的特殊要求:除法指令要求字操作時,被除數(shù)必須為32位,除數(shù)是16位,商和余數(shù)是16位的;字節(jié)操作時,被除數(shù)必須為16位,除數(shù)是8位,得到的商和余數(shù)是8位的。六、十進(jìn)制調(diào)整指令【邏輯指令】一、邏輯運算
指令的格式:ANDdst,src
指令的根本功能:(dst)<-(dst)與(src)
指令支持的尋址方式:兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:指令執(zhí)行后CF和OF置零,AF無定義。
SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0指令執(zhí)行后的結(jié)果為正數(shù)〔符號位為0〕
ZF=1指令執(zhí)行后的結(jié)果為零
ZF=0指令執(zhí)行后的結(jié)果不為零
PF=1結(jié)果操作數(shù)中1的個數(shù)為偶數(shù)時置1
PF=0結(jié)果操作數(shù)中1的個數(shù)為奇數(shù)時置0
25、邏輯或OR(logicor)
指令的匯編格式:ORdst,src
指令的根本功能:(dst)<-(dst)或(src)
指令支持的尋址方式:兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,原操作數(shù)和目的操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:令執(zhí)行后CF和OF置零,AF無定義。
SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0指令執(zhí)行后的結(jié)果為正數(shù)〔符號位為0〕
ZF=1指令執(zhí)行后的結(jié)果為零
ZF=0指令執(zhí)行后的結(jié)果不為零
PF=1結(jié)果操作數(shù)中1的個數(shù)為偶數(shù)時置1
PF=0結(jié)果操作數(shù)中1的個數(shù)為奇數(shù)時置0
26、邏輯非NOT(logicnot)
指令的匯編格式:NOTorc
指令的根本功能:(dst)<-(opr)
指令支持的尋址方式:除立即數(shù)尋址方式以外的其余尋址方式
指令對標(biāo)志位的影響:對標(biāo)志位無影響
27、異或XOR(exclusiceor)
指令的匯編格式:XORdst,src
指令的根本功能:(dst)<-(dst)異或(src)
指令支持的尋址方式:兩個操作數(shù)不能同時為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,原操作數(shù)和目的操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:令執(zhí)行后CF和OF置零,AF無定義。
SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0指令執(zhí)行后的結(jié)果為正數(shù)〔符號位為0〕
ZF=1指令執(zhí)行后的結(jié)果為零
ZF=0指令執(zhí)行后的結(jié)果不為零
PF=1結(jié)果操作數(shù)中1的個數(shù)為偶數(shù)時置1
PF=0結(jié)果操作數(shù)中1的個數(shù)為奇數(shù)時置0
28、測試指令TEST指令的匯編格式:TESTopr1,opr2
指令的根本功能:(opr1)與(opr2)
指令支持的尋址方式:兩個操作數(shù)不能同時為存儲器尋址,即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目的操作數(shù)必須有一個存放器尋址方式。
指令對標(biāo)志位的影響:令執(zhí)行后CF和OF置零,AF無定義。
SF=1指令執(zhí)行后的結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0指令執(zhí)行后的結(jié)果為正數(shù)〔符號位為0〕
ZF=1指令執(zhí)行后的結(jié)果為零
ZF=0指令執(zhí)行后的結(jié)果不為零
PF=1結(jié)果操作數(shù)中1的個數(shù)為偶數(shù)時置1
PF=0結(jié)果操作數(shù)中1的個數(shù)為奇數(shù)時置0
二、移位指令
29、邏輯左移SHL(shiftlogicalleft)
指令的匯編格式:SHLdst,cnt
指令的根本功能:SHL指令向左逐位移動cnt次,每次逐位移動后,最低位用0來補充,最高位移入CF。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置30、邏輯右移SHR(shiftlogicalright)
指令的匯編格式:SHRdst,cnt
指令的根本功能:SHR指令向右逐位移動cnt次,每次逐位移動后,最高位用0來補充,最低位移入CF。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置。
31、算術(shù)左移SAL(shiftarithmeticleft)
指令的匯編格式:SALdstcnt
指令的根本功能:SAL指令向左逐位移動cnt次,每次逐位移動后,最低位用0來補充,最高位移入CF。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置。
32、算術(shù)右移SAR(shiftarithmeticright)
指令的匯編格式:SARdst,cnt
指令的根本功能:SAR指令向右逐位移動cnt次,每次逐位移動后,最高位用符號位來補充,最低位移入CF。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移位次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置。
33、循環(huán)左移ROL(rotateleft)
指令的匯編格式:ROLdst,cnt
指令的根本功能:ROL對由dst指定的存放器或存儲器操作數(shù)左移循環(huán)移動cnt所指定的次數(shù),每左移一次,把最高位同時移入CF和操作數(shù)最低位。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移動次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置。
34、循環(huán)右移ROR(rotateright)
指令的匯編格式:RORdst,cnt
指令的根本功能:ROR對由dst指定的存放器或存儲器操作數(shù)右移循環(huán)移動cnt所指定的次數(shù),每右移一次,把最低位同時移入CF和操作數(shù)最高位。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移動次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt>1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值
OF=1當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
OF=0當(dāng)cnt=1時,移動時最高位的值未發(fā)生變化。
SF、ZF、PF根據(jù)移動后的結(jié)果設(shè)置。
35、帶進(jìn)位的循環(huán)左移RCL(rotateleftthroughcarry)
指令的匯編格式:RCLdst,cnt
指令的根本功能:RCL對由dst指定的存放器或存儲器操作數(shù),連同進(jìn)位標(biāo)志CF左循環(huán)移動,m所指定的次數(shù),每左移一次,把操作數(shù)的最高位移入CF,而CF中原有內(nèi)容移入操作數(shù)的最低位。
指定支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移動次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫在指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值。
OF=1當(dāng)cnt=1時,移動后最高位的值未發(fā)生變化。
OF=0當(dāng)cnt=1時,移動后最高位的值發(fā)生變化。
SF、ZF、PF標(biāo)志位不受影響。
36、帶進(jìn)位的循環(huán)右移RCR(rotaterightthroughcarry)
指令的匯編格式:RCRdst,cnt
指令的根本功能:RCR對由dst指定的存放器或存儲器操作數(shù),連同進(jìn)位標(biāo)志CF右循環(huán)移動,m所指定的次數(shù),每右移一次,把操作數(shù)的最上下位移入CF,而CF中原有內(nèi)容移入操作數(shù)的最高位。
指令支持的尋址方式:目的操作數(shù)dst可以是除立即數(shù)外的任何尋址方式。移動次數(shù)〔或位數(shù)〕cnt=1時,1可以直接寫入指令中,cnt〉1時,cnt必須放入CL存放器中。
指令對標(biāo)志位的影響:CF=移入的數(shù)值。
OF=1當(dāng)cnt=1時,操作數(shù)最高位的值未發(fā)生變化。
OF=0當(dāng)cnt=1時,操作數(shù)最高位的值發(fā)生變化。
SF、ZF、PF標(biāo)志位不受影響?!敬幚碇噶睢?/p>
一、設(shè)置方向標(biāo)志指令
37、DF置零CLD(cleardirectionflag)
DF置一STD(setdirectionflag)
指令的匯編格式:CLD
STD
指令的根本功能:CLDDF=0
STDDF=1
二、串處理指令
38、串傳送MOVSB/MOVSW(movestringbyte/word)
指令的匯編格式:MOVSB
MOVSW
指令的根本功能:(ES:DI)<-(DS:SI)
(SI)<-(SI)+/-1(字節(jié))或+/-2(字)
(DI)<-(DI)+/-1(字節(jié))或+/-2(字)
指令對條件碼的影響:不影響條件碼。
指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是SI和DI存放器的間接尋址方式。源串允許使用段跨越前綴來指定段。
39、存串STOSB/STOSW(stroefromstringbyte/word)
指令的匯編格式:STOSB
STOSW
指令的根本功能:(ES:DI)<-(AL)或(AX)
(DI)<-(DI)+/-1(字節(jié))或+/-2(字)
指令對條件碼的影響:不影響條件碼。
指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是SI和DI存放器的間接尋址方式。源串允許使用段跨越前綴來指定段。
40、取串LODSB/LODSW(loadfromstringbyte/word)
指令的匯編格式:LODSB
LODSW
指令的根本功能:(AL)或(AX)<-(DS:SI)
(SI)<-(SI)+/-1(字節(jié))或+/-2(字)
指令對條件碼的影響:不影響條件碼。
指令的特殊要求:源串必須在數(shù)據(jù)段中,目的串必須在附加段中,串處理指令隱含的尋址方式是SI和DI存放器的間接尋址方式。源串允許使用段跨越前綴來指定段。
41、串比擬CMPSB/CMPSW(comparestringbyte/word)
指令的匯編格式:CMPSB
CMPSW
指令的根本功能:(DS:SI)-(ES:DI)根據(jù)比擬結(jié)果設(shè)置條件碼
(SI)<-(SI)+/-1(字節(jié))或+/-2(字)
(DI)<-(DI)+/-1(字節(jié))或+/-2(字)
指令對條件碼的影響:SF=1減法結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0減法結(jié)果為正數(shù)〔符號位為0〕
ZF=1減法結(jié)果為零
ZF=0減法結(jié)果不為零
CF=1二進(jìn)制減法運算中最高有效位向高位有借位〔被減數(shù)小于減數(shù),不夠減的情況〕
CF=0二進(jìn)制減法運算中最高有效為向高位無借位〔被減數(shù)〉=減數(shù),夠減的情況〕
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
42、串掃描SCASB/SCASW(scanstringbyte/word)
指令的格式:SCASB
SCASW
指令的根本功能:(AL)<-(ES:DI)或(AX)<-(ES:DI)根據(jù)掃描比擬的結(jié)果設(shè)置條件碼。
(DI)<-(DI)+/-1(字節(jié))或+/-2(字)
指令對條件碼的影響:SF=1結(jié)果為負(fù)數(shù)〔符號位為1〕
SF=0結(jié)果為正數(shù)〔符號位為0〕
ZF=1結(jié)果為零
ZF=0結(jié)果不為零
CF=1二進(jìn)制減法運算中最高有效位向高位有借位〔被減數(shù)小于減數(shù),不夠減的情況〕
CF=0二進(jìn)制減法運算中最高有效為向高位無借位〔被減數(shù)〉=減數(shù),夠減的情況〕
OF=1兩數(shù)符號相反〔正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)〕,而結(jié)果符號與減數(shù)相同。
OF=0同符號數(shù)相減時,或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
三、串重復(fù)前綴
43、重復(fù)執(zhí)行串REP
指令的匯編格式:REP(CX)=重復(fù)次數(shù)
指令的根本功能:①(CX)=0時,串指令執(zhí)行完畢,否那么執(zhí)行②~④
②(CX)←(CX)-1③執(zhí)行串指令〔MOVS或STOS〕④重復(fù)執(zhí)行①
44、相等/為零時重復(fù)執(zhí)行串指令REPE/REPZ
指令的匯編格式:REPE/REPZ(CX)=比擬/掃描的次數(shù)
指令的根本功能:①(CX)=0或ZF=0時,結(jié)束執(zhí)行串指令,否那么繼續(xù)②~④
②(CX)←(CX)-1③執(zhí)行串指令〔CMPS或SCAS〕④重復(fù)執(zhí)行①
45、不等/不為零時重復(fù)執(zhí)行串指令REPNE/PEPNZ
指令的匯編格式:REPNE/PEPNZ(CX)=比擬/掃描的次數(shù)
指令的根本功能:①(CX)=0或ZF=1,結(jié)束執(zhí)行串指令,否那么繼續(xù)②~④
②(CX)←(CX)-1③執(zhí)行串指令〔CMPS或SCAS〕④重復(fù)執(zhí)行①【控制轉(zhuǎn)移指令】
一、無條件轉(zhuǎn)移指令
46、短轉(zhuǎn)移JMPSHORTlabel(shortjump)
指令的匯編格式:JMPSHORTlabel
指令的根本功能:(IP)<-當(dāng)前(IP)+8位位移量8位位移量是匯編程序在匯編源程序時,根據(jù)目標(biāo)地址和當(dāng)前IP之間的距離自動生成的。
指令對條件碼的影響:對標(biāo)志位無影響。
47、近轉(zhuǎn)移JMPNEARPTRlabel(nearjump)
指令的匯編格式:直接轉(zhuǎn)移JMPlabel(directjump)
存放器間接轉(zhuǎn)移JMPreg(registerindirectjump)
存儲器間接轉(zhuǎn)移JMPWORDPTROPR(memoryindirectjump)
指令的根本功能:JMPlabel(IP)<-OFFSETlabel=(IP)當(dāng)前+16位位移量
JMPreg(IP)<-(reg)
JMPWORDPTROPR(IP)<-(PA+1,PA)
指令支持的尋址方式:指令中的轉(zhuǎn)向地址可以是直接尋址方式、存放器尋址方式、存放器間接尋址方式和存儲器尋址方式。
指令對條件碼的影響:對標(biāo)志位無影響。
48、遠(yuǎn)轉(zhuǎn)移JMPFARPTRlabel(forjump)
指令的匯編格式:JMPFARPTRlabel
指令的根本功能:(IP)<-label的段內(nèi)偏移地址(CS)<-label所在段的段地址
指令支持的尋址方式:遠(yuǎn)轉(zhuǎn)移的目的地址可以使用除立即尋址方式外的任何尋址方式來表示。指令對條件碼的影響:對標(biāo)志位無影響。
二、條件轉(zhuǎn)移指令
指令的匯編格式及功能
根據(jù)條件碼的值轉(zhuǎn)移:
49、JZ(JE)OPRZF=1
ZF=0〔運算結(jié)果為0,ZF就置1〕
50、JNZ(JNE)OPRZF=0
51、JSOPRSF=1
SF=0〔二進(jìn)制最高位是什么,SF就是什么,如最高位為1那么SF=1〕
52、JNSOPRSF=0
53、JOOPROF=1
OF=1(兩個負(fù)數(shù)相加變成正數(shù),溢出〕
54、JNOOPROF=0
55、JPOPRPF=1
PF=0(反映結(jié)果“1”的個數(shù),奇數(shù)?0偶數(shù)個?1〕
56、JNPOPRPF=0
57、JCOPRCF=1
CF=1〔最高位有進(jìn)位或借位就置1〕
58、JNCOPRCF=0
比擬兩個無符號數(shù),根據(jù)比擬的結(jié)果轉(zhuǎn)移
59、JB(JNAE,JC)OPRCF=1被減數(shù)小于減數(shù)那么轉(zhuǎn)移
60、JNB(JAE,JNC)OPRCF=0被減數(shù)大于或等于減數(shù)那么轉(zhuǎn)移
61、JBE(JNA)OPRCF或ZF=1被減數(shù)小于或等于減數(shù)那么轉(zhuǎn)移
62、JNBE(JA)OPRCF或ZF=0被減數(shù)大于減數(shù)那么轉(zhuǎn)移
比擬兩個帶符號數(shù),根據(jù)比擬結(jié)果轉(zhuǎn)移
63、JL/JNGEOPRSF異或OF=1被減數(shù)小于減數(shù)那么轉(zhuǎn)移
64、JNL/JGESF異或OF=0被減數(shù)不小于減數(shù)那么轉(zhuǎn)移
65、JLE/JNE(SF異或OF)與ZF=1被減數(shù)不大于減數(shù)那么轉(zhuǎn)移
66、JNLE/JG(SF異或OF)與ZF=0被減數(shù)大于減數(shù)那么轉(zhuǎn)移
根據(jù)CX存放器的值轉(zhuǎn)移
67、JCXZ(CX)=0CX內(nèi)容為零那么轉(zhuǎn)移
指令的特殊要求:所有條件轉(zhuǎn)移指令都是短轉(zhuǎn)移指令,轉(zhuǎn)移的目標(biāo)地址必須在當(dāng)前IP地址的-128至+127字節(jié)范圍之內(nèi),因此條件轉(zhuǎn)移指令是2字節(jié)指令。
三、循環(huán)指令
68、循環(huán)LOOP(loop)
指令的匯編格式:LOOPlabel
指令的根本功能:①(CX)←(CX)-1②假設(shè)(CX)≠0,那么(IP)←(IP)當(dāng)前+位移量,否那么循環(huán)結(jié)束。
指令的特殊要求:循環(huán)指令都是短轉(zhuǎn)移格式的指令,也就是說,位移量是用8位帶符號數(shù)來表示的,轉(zhuǎn)向地址在相對于當(dāng)前IP值的-128~+127字節(jié)范圍之內(nèi)。
69、為零/相等時循環(huán)LOOPZ/LOOPE(loopwhilenonzeroorequal)
指令的匯編格式:LOOPNZ/LOOPNElabel
指令的根本功能:①(CX)←(CX)-1
②假設(shè)ZF=1且(CX)≠0,那么(IP)←(IP)當(dāng)前+位移量,否那么循環(huán)結(jié)束。
指令的特殊要求:循環(huán)指令都是短轉(zhuǎn)移格式的指令,也就是說,位移量是用8位帶符號數(shù)來表示的,轉(zhuǎn)向地址在相對于當(dāng)前IP值的-128~+127字節(jié)范圍之內(nèi)。
70、不為零/不相等時循環(huán)LOOPNZ/LOOPNE(loopwhilenonzeroornotequal)
指令的匯編格式:LOOPNZ/LOOPNElabel
指令的根本功能:①(CX)←(CX)-1
②假設(shè)ZF=0且(CX)≠0,那么(IP)←(IP)當(dāng)前+位移量,否那么循環(huán)結(jié)束。
指令的特殊要求:循環(huán)指令都是短轉(zhuǎn)移格式的指令,也就是說,位移量是用8位帶符號數(shù)來表示的,轉(zhuǎn)向地址在相對于當(dāng)前IP值的-128~+127字節(jié)范圍之內(nèi)。
四、子程序調(diào)用
71、段內(nèi)直接近調(diào)用CALLSUBROUT
指令的根本功能:(SP)<-(SP)-2
((SP)+1,(sp))<-(IP)
(IP)<-(IP)+16位位移量
段內(nèi)間接近調(diào)用CALLDESTIN
指令的根本功能:(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(EA)
72、段間直接調(diào)用CALLFARPTRSUBROUT
指令的根本功能:(SP)<-(SP)-2,((SP))<-(CS)當(dāng)前
(SP)<-(SP)-2,((SP))<-(IP)當(dāng)前
(IP)<-偏移地址(在指令的第2、3個字節(jié))
(CS)<-段地址(在指令的第4、5個字節(jié))
五、返回指令
73、段內(nèi)返回(近返回)RET
指令的根本功能:(IP)<-((SP)+1,(SP))
(SP)<-(SP)+2
段間返回(遠(yuǎn)返回)RET
指令的根本功能:(IP)<-((SP)),(SP)<-(SP)+2
(CS)<-((SP)),(SP)<-(SP)+2
帶立即數(shù)返回RETN
執(zhí)行操作:①返回地址出棧〔操作同段內(nèi)或段間返回〕②修改堆棧指針:(SP)←(SP)+N
六、中斷及中斷返回指令
74、INTn中斷指令〔interrupt〕,n為中斷類型號
執(zhí)行操作:①入棧保存FLAGS:(SP)←(SP)-2,((SP))←(FLAGS)
②入棧保存返回地址:(SP)←(SP)-2,((SP))←(CS)
(SP)←(SP)-2,((SP))←(IP)
③轉(zhuǎn)中斷處理程序:(IP)←(n×4)
(CS)←(n×4+2)
75、IRET中斷返回指令〔returnfrominterrupt〕
執(zhí)行操作:①返回地址出棧:(IP)←((SP)),(SP)←(SP)+2
(CS)←((SP)),(SP)←(SP)+2
②FLAGS出棧:(FLAGS)←((SP)),(SP)←(SP)+2
76、INTO溢出那么中斷〔中斷類型為4〕
執(zhí)行操作:假設(shè)OF=1〔有溢出〕,那么:
①入棧保存FLAGS:(SP)←(SP)-2,((SP))←(FLAGS)
②入棧保存返回地址:(SP)←(SP)-2,((SP))←(CS)
(SP)←(SP)-2,((SP))←(IP)
③轉(zhuǎn)中斷處理程序:(IP)←(4×4)=(10H)
(CS)←(4×4+2)=(12HHELLO,WORLD進(jìn)階匯編程序系列Editor:adminTime:2004-3-2112:49Read:9785Score:8PrintWriter:LLUCTExcerpt:80x86匯編小站Preface:感謝網(wǎng)友lluct為本站提供原創(chuàng)......適合初學(xué)者學(xué)習(xí)哦Content:TITLE***HELLO,WORLD進(jìn)階程序之選擇分支BYLLUCT***DATASEGMENT;定義數(shù)據(jù)段MSG1DB'***WELCOMETOMYPROGRAMBYLLUCT***','$';定義輸出的第一個字符串信息,字符串必須用DB定義,$為結(jié)束標(biāo)志MSG2DB'1:BASICMESSAGE2:ADVANCEDMESSAGE','$';定義輸出的字符串信息:選擇菜單MSG3DB'PLEASECHOOSE:','$';定義輸出的字符串信息:選擇前綴MSG4DB'HELLO,WORLD!^-^','$';定義輸出的字符串信息:分支1的信息MSG5DB'THISISMYFIRSTASM_86PROGRAM!@^-^@','$';定義輸出的字符串信息:分支2的信息ERRMSGDB'CHOOSEERROR!-_-b','$';定義輸出的字符串信息:選擇錯誤信息DATAENDS;數(shù)據(jù)段結(jié)尾CODESEGMENT;定義代碼段ASSUMECS:CODE;規(guī)定CS的內(nèi)容ASSUMEDS:DATA;規(guī)定DS的內(nèi)容START:MOVAX,DATA;程序從START開始MOVDS,AX;DS置初值,DATA的段地址CALLENTER;調(diào)用顯示回車換行子程序LEADX,MSG1;輸出第一個字符串的偏移地址CALLDISPCHS;調(diào)用顯示字符串子程序CALLENTER;調(diào)用顯示回車換行子程序CALLENTER;這個...同上啊^-^LEADX,MSG2;輸出第二個字符串的偏移地址CALLDISPCHS;調(diào)用顯示字符串子程序AGAIN:CALLENTER;定義AGAIN標(biāo)號.用于選擇錯誤循環(huán)LEADX,MSG3;輸出第三個字符串的偏移地址CALLDISPCHS;調(diào)用顯示字符串子程序MOVAH,01H;調(diào)用1號功能:從鍵盤輸入一個字符并回顯INT21H;完成輸入回顯CMPAL,'1';輸入的字符和1相比擬JEBASICP;如果相等,轉(zhuǎn)移到BASICP標(biāo)號(JE=JumpifEqual)CMPAL,'2';輸入的字符和2相比擬||JEADVANP;如果相等,轉(zhuǎn)移到ADVANP標(biāo)號(JE=如果相等就轉(zhuǎn)移)JMPERROR;否那么就無條件轉(zhuǎn)移到ERROR標(biāo)號EXIT:MOVAH,4CH;4C號功能調(diào)用:終止當(dāng)前程序并返回調(diào)用程序INT21H;返回DOSBASICP:CALLENTER;什么,還要解釋啊.暈-_-!!!LEADX,MSG4;輸出第三個字符串的偏移地址CALLDISPCHS;調(diào)用顯示字符串子程序CALLENTER;..........JMPEXIT;無條件轉(zhuǎn)移到EXIT標(biāo)號ADVANP:CALLENTER;55555555LEADX,MSG5;解釋了四次,應(yīng)該懂了吧CALLDISPCHS;調(diào)用顯示字符串子程序CALLENTER;再問就死給你看JMPEXIT;無條件轉(zhuǎn)移到EXIT標(biāo)號ERROR:CALLENTERLEADX,ERRMSG;輸出選擇錯誤信息CALLDISPCHS;調(diào)用顯示字符串子程序MOVDL,07H;輸出ASCII碼的報警(響鈴)控制符BEL(07H)CALLDISPCH;調(diào)用顯示單個字符子程序CALLENTERJMPAGAINDISPCHPROCNEAR;顯示單個字符子程序,NEAR說明子程序和主程序在同一個代碼段中(現(xiàn)無主程序調(diào)用)MOVAH,02H;2號功能調(diào)用:顯示器輸出字符INT21H;完成輸出顯示RET;返回DISPCHENDP;子程序結(jié)尾ENTERPROCNEAR;顯示回車換行子程序MOVDL,0DH;輸出ASCII碼的回車控制符CR(0DH)CALLDISPCH;調(diào)用顯示單個字符子程序MOVDL,0AH;輸出ASCII碼的換行控制符LF(0AH)CALLDISPCH;調(diào)用顯示單個字符子程序RET;返回ENTERENDP;子程序結(jié)尾DISPCHSPROCNEAR;顯示字符串子程序,NEAR說明子程序和主程序在同一個代碼段中(現(xiàn)無主程序調(diào)用)MOVAH,09H;9號功能調(diào)用:顯示字符串INT21H;完成輸出顯示RETDISPCHSENDPCODEENDS;代碼段結(jié)尾ENDSTART;結(jié)束匯編;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如helloch.asm);編譯:masmhelloch.asm;連接:linkhelloch.obj;執(zhí)行:helloch.exe======================================================title***hello,world進(jìn)階之字符串輸入輸出bylluct***datasegment;定義數(shù)據(jù)段inputdb100dup(?);定義輸入的字符串,字符串必須用db定義,長度為100個字節(jié)msg1db'Hello,','$';定義輸出的前綴字符串信息,字符串必須用db定義,$為結(jié)束標(biāo)志(24h)msg2db',Welcometohere!','$';定義輸出的后綴字符串信息headmsgdb'PLEASEINPUTYOURNAME:','$';開始顯示的字符串信息dataends;數(shù)據(jù)段結(jié)尾codesegment;定義代碼段assumecs:code;規(guī)定cs的內(nèi)容assumeds:data;規(guī)定ds的內(nèi)容start:movax,data;程序從start開始movds,ax;ds置初值,data的段地址movsi,0;變址存放器置初值0callenter;調(diào)用顯示回車換行子程序leadx,headmsg;輸出開始顯示的字符串的偏移地址calldispchs;調(diào)用顯示字符串子程序repeat:movah,01h;定義repeat標(biāo)號,用于循環(huán)輸入單個字符.調(diào)用1號功能:從鍵盤輸入一個字符并回顯int21h;完成輸入回顯cmpal,0dh;輸入的字符和CR(回車)比擬jeexit;如果等于回車就轉(zhuǎn)移到exitmovinput[si],al;把al的值傳送到input的si地址中(好似是這樣吧)incsi;si加1jmprepeat;無條件轉(zhuǎn)移到repeatexit:callentermovinput[si],24h;給輸入完成的字符串加上結(jié)束標(biāo)志($)callenterleadx,msg1;輸出前綴字符串的偏移地址calldispchs;調(diào)用顯示字符串子程序leadx,input;輸出剛剛輸入的字符串calldispchsleadx,msg2calldispchscallentermovah,4ch;4c號功能調(diào)用:終止當(dāng)前程序并返回調(diào)用程序int21h;返回dosenterprocnear;顯示回車換行子程序movdl,0dh;輸出ascii碼的回車控制符cr(0dh)calldispchmovdl,0ah;輸出ascii碼的換行控制符lf(0ah)calldispchret;返回enterendp;子程序結(jié)束dispchprocnearmovah,02h;2號功能調(diào)用:顯示器輸出字符int21h;完成輸出顯示ret;返回dispchendpdispchsprocnearmovah,09h;9號功能調(diào)用:顯示字符串int21h;完成輸出顯示ret;返回dispchsendpcodeends;代碼段結(jié)尾endstart;結(jié)束匯編;把以上代碼復(fù)制到記事本等文本程序中,并保存.(如heinout.c);編譯:masmheinout.asm;連接:linkheinout.obj;執(zhí)行:heinout.exe中斷是指CPU對系統(tǒng)發(fā)生的某個事件作出的一種反響:CPU暫停正在執(zhí)行的程序,保存現(xiàn)場后自動轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,處理完該事件后再返回斷點繼續(xù)執(zhí)行被"打斷"的程序在我們所用的電腦中,所有的硬件都需要執(zhí)行中斷請求的動作,簡單說它的作用就是用來停止其相關(guān)硬件的工作狀態(tài)。我們可以舉一個日常生活中的例子來說明,假設(shè)你正在給朋友寫信,鈴響了,這時你放下手中的筆去接,通話完畢再繼續(xù)寫信。這個例子就表現(xiàn)了中斷及其處理的過程:鈴聲使你暫時中止當(dāng)前的工作,而去處理更為急需處理的事情——接,當(dāng)把急需處理的事情處理完畢之后,再回過頭來繼續(xù)原來的事情。在這個例子中,鈴聲就可以稱為“中斷請求”,而你暫停寫信去接就叫作“中斷響應(yīng)”,那么接的過程就是“中斷處理”。由此我們可以看出,在計算機(jī)執(zhí)行程序的過程中,由于出現(xiàn)某個特殊情況(或稱為“事件”),使得系統(tǒng)暫時中止現(xiàn)行程序,而轉(zhuǎn)去執(zhí)行處理這一特殊事件的程序,處理完畢之后再回到原來程序的中斷點繼續(xù)向下執(zhí)行,而這個過程就被稱為中斷。中斷的作用我們可以再舉一個例子來說明中斷的作用。假設(shè)有一個朋友來拜訪你,但是由于不知何時到達(dá),你只能在門口等待,于是什么事情也干不了;但如果在門口裝一個門鈴,你就不必在門口等待而可以在家里去做其他的工作,朋友來了按門鈴?fù)ㄖ?,這時你才中斷手中的工作去開門,這就防止了不必要的等待。而計算機(jī)也一樣,例如打印文稿的操作。因為cpu傳送數(shù)據(jù)的速度高,而打印機(jī)速度較慢,如果不采用中斷技術(shù),cpu將經(jīng)常處于等待狀態(tài),這會使得電腦的工作效率極低。而采用了中斷方式后,cpu就可以在打印的同時進(jìn)行其他的工作,而只在打印機(jī)緩沖區(qū)內(nèi)的當(dāng)前內(nèi)容打印完畢,而發(fā)出中斷請求之后才予以響應(yīng),這時才暫時中斷當(dāng)前的工作轉(zhuǎn)去執(zhí)行停止打印的操作,之后再返回執(zhí)行原來的程序。這樣就大大地提高了計算機(jī)系統(tǒng)的效率。irq中斷計算機(jī)中的中斷有好幾種,根據(jù)中斷信號產(chǎn)生的來源可以分為:硬件中斷和軟件中斷。硬件中斷多由外圍設(shè)備和計算機(jī)系統(tǒng)控制器發(fā)出,軟件中斷一般由軟件命令產(chǎn)生。在硬件中斷中又有“可屏蔽中斷”和“不可屏蔽中斷”之分。顧名思義,可屏蔽中斷可以由計算機(jī)根據(jù)系統(tǒng)的需要來決定是否進(jìn)行接收處理或是延后處理(即屏蔽),而不可屏蔽中斷便是直接激活相應(yīng)的中斷處理程序,它不能也不會被延誤。而irq中斷就是可屏蔽的硬件中斷,它的全稱為interruptrequest即“中斷請求”。在電腦的系統(tǒng)中,是由一個中斷控制器8259或是8259a的芯片(現(xiàn)在此芯片大都集成到其他的芯片內(nèi))來對系統(tǒng)中每個硬件的中斷進(jìn)行控制。目前共有16組irq,去掉其中用來作橋接的一組irq,實際上只有15組irq可供硬件調(diào)用。而這些irq都有自己建議的配置。分配irq中斷我們?nèi)粘K玫牟僮飨到y(tǒng)對于irq的設(shè)置也不盡相同,所以在安裝新硬件的時候,系統(tǒng)往往并不能自動檢測正確的irq來分配給所需調(diào)用的硬件,這就會造成此硬件設(shè)備或是原來的舊硬件出現(xiàn)不能正常工作的現(xiàn)象。其實這是系統(tǒng)自動將該硬件的irq分配給了其他與此irq相同的硬件上,從而發(fā)生沖突使硬件不能正常工作。一般如果遇到這種情況,只要將新舊兩個硬件的irq配置手動調(diào)開就可以解決了。對于一些常用的硬件一般都有其默認(rèn)的irq數(shù)值。比方聲卡常常使用irq5或7。雖然這些配件使用其他的irq值大多數(shù)也能工作,但假設(shè)碰到特別“挑剔”的軟件或游戲等程序,例如只能識別irq值為5或7的聲卡,那么如果將它設(shè)成irq9就白費心機(jī)了。中斷的根本概念中斷(Interrupt)是指計算機(jī)在實行期間,系統(tǒng)內(nèi)發(fā)生非尋常的或非預(yù)期的急需處理事件,使得CPU暫時中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行響應(yīng)的事件處理程序。待處理完畢后又返回原來中斷處繼續(xù)執(zhí)行或調(diào)度新的程序執(zhí)行的過程。
現(xiàn)代計算機(jī)系統(tǒng)一般都具有處理突發(fā)事件的能力。例如:從磁帶上讀入一組信息,當(dāng)發(fā)現(xiàn)讀入信息有錯誤時,只要讓磁帶退回重讀該組信息就可能克服錯誤,而得到正確的信息。
這種處理突發(fā)事件的能力是由硬件和軟件協(xié)作完成的。首先由硬件的中斷裝置發(fā)現(xiàn)產(chǎn)生的事件,然后,中斷裝置中止現(xiàn)行程序的執(zhí)行,引出處理該事件的程序來處理。計算機(jī)系統(tǒng)不僅可以處理由于硬件或軟件錯誤而產(chǎn)生的事件,而且可以處理某種預(yù)定處理偽事件。例如:外圍設(shè)備工作結(jié)束時,也發(fā)出中斷請求,向系統(tǒng)報告它已完成任務(wù),系統(tǒng)根據(jù)具體情況作出相應(yīng)處理。引起中斷的事件稱為中斷源。發(fā)現(xiàn)中斷源并產(chǎn)生中斷的硬件稱中斷裝置。在不同的硬件結(jié)構(gòu)中,通常有不同的中斷源和平不同的中斷裝置,但它們有一個共性,即:當(dāng)中斷事件發(fā)生后,中斷裝置能改變處理器內(nèi)操作執(zhí)行的順序。中斷源:引起中斷發(fā)生的事件被稱為中斷源。
中斷請求:中斷源向CPU發(fā)出的請求中斷處理信號。
中斷響應(yīng):CPU收到中斷請求后轉(zhuǎn)相應(yīng)的事件處理程序。
禁止中斷〔關(guān)中斷〕:CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位已被去除,不允許CPU響應(yīng)中斷。
開中斷:PSW的中斷允許位的設(shè)置。
中斷屏蔽:在中斷請求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖局部中斷而允許蓁局部的中斷仍能得到響應(yīng)。中斷處理過程
中斷處理過程:
(1)CPU檢查響應(yīng)中斷的條件是否滿足。CPU響應(yīng)中斷的條件是:有來自于中斷源的中斷請求、CPU允許中斷。如果中斷響應(yīng)條件不滿足,那么中斷處理無法進(jìn)行。
(2)如果CPU響應(yīng)中斷,那么CPU關(guān)中斷,使其進(jìn)入不可再次響應(yīng)中斷的狀態(tài)。
(3)保存被中斷進(jìn)程現(xiàn)場。為了在中斷處理結(jié)束后能使進(jìn)程正確地返回到中斷點,系統(tǒng)必須保存當(dāng)前處理機(jī)狀態(tài)字PSW和程序計數(shù)器PC等的值。這些值一般保存在特定堆?;蛴布娣牌髦小?/p>
(4)分析中斷原因,調(diào)用中斷處理子程序。在多個中斷請求同時發(fā)生時,處理優(yōu)先級最高的中斷源發(fā)出的中斷請求。
(5)執(zhí)行中斷處理子程序。對陷阱來說,在有些系統(tǒng)中那么是通過陷阱指令向當(dāng)前執(zhí)行進(jìn)程發(fā)軟中斷信號后調(diào)用對應(yīng)的處理子程序執(zhí)行。
(6)退出中斷,恢復(fù)被中斷進(jìn)程的現(xiàn)場或調(diào)度新進(jìn)程占據(jù)處理機(jī)。
(7)開中斷,CPU繼續(xù)執(zhí)行。1.什么叫中斷?
簡單來說,中斷是一種使CPU中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。這些引起中斷的事件稱為中斷源,它們可能是來自外設(shè)的輸入輸出請求,也可能是計算機(jī)的一些異常事故或其它內(nèi)部原因。
更具體地,我們定義CPU中斷為這樣一個過程:在特定的事件〔中斷源,也稱中斷請求信號〕觸發(fā)下引起CPU暫停正在運行的程序〔主程序〕,轉(zhuǎn)而先去處理一段為特定事件而編寫的處理程序〔中斷處理程序〕,等中斷處理程序處理完成后,再回到主程序被打斷的地方繼續(xù)運行。2.中斷的作用
一方面,有了中斷功能,PC系統(tǒng)就可以使CPU和外設(shè)同時工作,使系統(tǒng)可以及時地響應(yīng)外部事件。而且有了中斷功能,CPU可允許多個外設(shè)同時工作。這樣就大大提高了CPU的利用率,也提高了數(shù)據(jù)輸入、輸出的速度。
另一方面,有了中斷功能,就可以使CPU及時處理各種軟硬件故障。計算機(jī)在運行過程中,往往會出現(xiàn)事先預(yù)料不到的情況或出現(xiàn)一些故障,如電源掉電、存儲出錯,運算溢出等等。計算機(jī)可以利用中斷系統(tǒng)自行處理,而不必停機(jī)或報告工作人員。3.中斷類型
在PC機(jī)系統(tǒng)中,根據(jù)中斷源的不同,中斷常分為兩大類:硬件中斷和軟件中斷。
硬件中斷也稱為外部中斷,它又可以分為兩種:
1〕.可屏蔽中斷:是可以被CPU屏蔽的由中斷電路發(fā)出的中斷請求信號在CPU的INTR端引起的中斷,它常常由PC機(jī)的外設(shè)或一些接口功能產(chǎn)生,如鍵盤、打印機(jī)、串行口等??善帘我馕吨@類型中斷可以在CPU要處理其它緊急操作時,被軟件屏蔽或忽略。
2〕.非屏蔽中斷:是由CPU的NMI端引起的中斷,如當(dāng)系統(tǒng)出現(xiàn)掉電、內(nèi)存奇偶校驗錯誤等,系統(tǒng)都將使用非屏蔽中斷。非屏蔽是指CPU不能用軟件指令來禁止對這種中斷響應(yīng),也就是CPU必須響應(yīng)由NMI端送來的中斷信號。
軟件中斷,又稱為內(nèi)部中斷,是指程序中使用INT中斷指令引起的中斷。4.CPU響應(yīng)中斷的條件
除了非屏蔽中斷外,其它中斷都可以用軟件來屏蔽或開放。系統(tǒng)只有具備如下的中斷條件,CPU才可能對中斷請求進(jìn)行響應(yīng)。
1)設(shè)置中斷請求觸發(fā)器
2)設(shè)置中斷屏蔽觸發(fā)器
3)設(shè)置中斷允許觸發(fā)器5.CPU處理中斷過程
當(dāng)滿足了中斷的條件后,CPU就會響應(yīng)中斷,轉(zhuǎn)入中斷程序處理。具體的工作過程如下所述。
1)關(guān)中斷
2)保存斷點
3)保護(hù)現(xiàn)場
4)給出中斷入口,轉(zhuǎn)入相應(yīng)的中斷效勞程序
5)恢復(fù)現(xiàn)場
6)開中斷與返回6.中斷沖突
雖然現(xiàn)在Windows操作系統(tǒng)從Win9X開始已經(jīng)支持即插即用功能,大大簡化了用戶的操作,但是如果不能認(rèn)出要安裝的新設(shè)備,那么自動分配中斷時就會產(chǎn)生沖突。現(xiàn)在新的硬件產(chǎn)品層出不窮,各種產(chǎn)品又相互兼容,功能類似,這就導(dǎo)致了操作系統(tǒng)常常不能正確檢測出新設(shè)備,中斷沖突也就不可防止了。7.中斷控制器8259A的結(jié)構(gòu)
Intel8259A是與8088/8086系列兼容的可編程的中斷控制器。后來的微機(jī)系統(tǒng)也沿用這種中斷機(jī)制及其功能,只是因為集成芯片技術(shù)的提高,不單獨以8259A芯片的形式出現(xiàn),而是集成到一個叫做"南橋芯片"或"HUB芯片"的芯片里了。
8259A包括以下幾個局部:
1〕.中斷請求存放器IRR〔InterruptRequestRegister〕:有8條外界中斷請求線IR0~I(xiàn)R7,每一條請求線有一個相應(yīng)的觸發(fā)器來保存請求信號。
2〕.中斷效勞存放器ISR〔INServiceRegister〕:保存正在效勞的中斷。
3〕.優(yōu)先權(quán)電路:對保存在IRR中的各個中斷請求,經(jīng)過判斷確定最高的優(yōu)先權(quán),并在中斷響應(yīng)周期把它選通至中斷效勞存放器。
4〕.中斷屏蔽存放器IMR〔InterruptMaskRegister〕:存放器的每一位,可以對IRR中的相應(yīng)的中斷源進(jìn)行屏蔽。但對于較高優(yōu)先權(quán)的輸入線實現(xiàn)屏蔽并不影響較低優(yōu)先權(quán)的輸入。
5〕.?dāng)?shù)據(jù)總線緩沖器:是8259A與系統(tǒng)數(shù)據(jù)總線的接口,它是8位的雙向三態(tài)緩沖器。但凡CPU對8259A編程時的控制字,都是通過它寫入8259A的,8259A狀態(tài)信息,也是通過它讀入CPU的;在中斷響應(yīng)周期,8259A送至數(shù)據(jù)總線的CALL指令或中斷向量也是通過它傳送的。
6〕.讀/寫控制邏輯:CPU能通過它實現(xiàn)對8259A的讀出〔狀態(tài)信號〕和寫入〔初始化編程〕。
7〕.級連緩沖器:實現(xiàn)8259A芯片之間的級連,使得中斷源可由8級擴(kuò)展至64級。
8〕.控制邏輯局部:對芯片內(nèi)部的工作進(jìn)行控制,使它按編程的規(guī)定工作。8.8259A的級連
在一個系統(tǒng)中,8259A可以級連,有一個主8259A,假設(shè)干個從8259A,最多可以有8個從8259A,把中斷源擴(kuò)展到64個。非法傳送種種1.兩個操作數(shù)的類型不一致–-----例如源操作數(shù)是字節(jié),而目的操作數(shù)是字;或相反?絕大多數(shù)雙操作數(shù)指令,除非特別說明,目的操作數(shù)與源操作數(shù)必須類型一致,否那么為非法指令MOVAL,050AH;非法指令:050Ah為字,而AL為字節(jié)?存放器有明確的字節(jié)或字類型,有存放器參與的指令其操作數(shù)類型就是存放器的類型?對于存儲器單元與立即數(shù)同時作為操作數(shù)的情況,必須顯式指明;byteptr指示字節(jié)類型,wordptr指示字類型。2.兩個操作數(shù)不能都是存儲器–------傳送指令很靈活,但主存之間的直接傳送卻不允許?8086指令系統(tǒng)不允許兩個操作數(shù)都是存儲單元〔除串操作指令〕,要實現(xiàn)這種傳送,可通過存放器間接實現(xiàn)movax,buffer1;ax←buffer1〔將buffer1內(nèi)容送ax〕movbuffer2,ax;buffer2←ax;這里buffer1和buffer2是兩個字變量、;實際表示直接尋址方式3.段存放器的操作有一些限制–----段存放器屬專用存放器,對他們的操作能力有限?不允許立即數(shù)傳送給段存放器MOVDS,100H;非法指令:立即數(shù)不能傳送段存放器?不允許直接改變CS值MOVCS,[SI];不允許使用的指令?不允許段存放器之間的直接數(shù)據(jù)傳送MOVDS,ES;非法指令:不允許段存放器間傳送MOVBL,AX〔數(shù)據(jù)長度不匹配〕MOVDS,2000H(不允許給段存儲器用立即數(shù)賦值)MOVCS,AX(禁止用MOV指令給CS賦值)MOV[AX],[2000H](禁止直接在存儲器間傳送)MOV[2000H],20H(數(shù)據(jù)長度不確切,應(yīng)改為MOVBYTEPTR[2000H],20H)1、〔1〕狀態(tài)標(biāo)志:CF-進(jìn)位標(biāo)志,ZF-零標(biāo)志,SF-符號標(biāo)志,PF-奇偶標(biāo)志OF-溢出標(biāo)志,AF-輔助進(jìn)位標(biāo)志?!玻病晨刂茦?biāo)志:DF-方向標(biāo)志,IF-中斷允許標(biāo)志,TF-陷井標(biāo)志。2、8086機(jī)器代碼格式一般是:操作碼尋址方式偏移量立即數(shù)。3、〔1〕源操作數(shù)為立即尋址,目的操作數(shù)為存放器尋址?!玻病吃床僮鲾?shù)為存放器相對尋址,目的操作數(shù)為存放器尋址?!玻场吃床僮鲾?shù)為存放器尋址,目的操作數(shù)為存放器間接尋址?!玻础吃床僮鲾?shù)和目的操作數(shù)均為固定尋址。4、此題要求出物理地址,物理地址的計算公式為:段地址〔段首地址〕*10H+偏移地址〔有效地址〕〔1〕源操作數(shù)為立即尋址方式,操作數(shù)地址就在本條指令中?!玻病吃床僮鲾?shù)為直接尋址方式,其物理地址為DS*10H+100H=20100H〔3〕源操作數(shù)為存放器間接尋址,其物理地址為SS*10H+BP=15010H〔4〕源操作數(shù)為基址變址尋址,其物理地址為DS*10H+BX+SI+VAL=201E0H8086有14個16位存放器,這14個存放器按其用途可分為(1)通用存放器、(2)指令指針、(3)標(biāo)志存放器和(4)段存放器等4類。
(1)通用存放器有8個,又可以分成2組,一組是數(shù)據(jù)存放器(4個),另一組是指針存放器及變址存放器(4個).
數(shù)據(jù)存放器分為:
AH&AL=AX(accumulator):累加存放器,常用于運算;在乘除等指令中指定用來存放操作數(shù),另外,所有的I/O指令都使用這一存放器與外界設(shè)備傳送數(shù)據(jù).
BH&BL=BX(base):基址存放器,常用于地址索引;
CH&CL=CX(count):計數(shù)存放器,常用于計數(shù);常用于保存計算值,如在移位指令,循環(huán)(loop)和串處理指令中用作隱含的計數(shù)器.
DH&DL=DX(data):數(shù)據(jù)存放器,常用于數(shù)據(jù)傳遞。
他們的特點是,這4個16位的存放器可以分為高8位:AH,BH,CH,DH.以及低八位:AL,BL,CL,DL。這2組8位存放器可以分別尋址,并單獨使用。
另一組是指針存放器和變址存放器,包括:
SP〔StackPointer〕:堆棧指針,與SS配合使用,可指向目前的堆棧位置;
BP〔BasePointer〕:基址指針存放器,可用作SS的一個相對基址位置;
SI〔SourceIndex〕:源變址存放器可用來存放相對于DS段之源變址指針;
DI〔DestinationIndex〕:目的變址存放器,可用來存放相對于ES段之目的變址指針。
這4個16位存放器只能按16位進(jìn)行存取操作,主要用來形成操作數(shù)的地址,用于堆棧操作和變址運算中計算操作數(shù)的有效地址。
(2)指令指針I(yè)P(InstructionPointer)
指令指針I(yè)P是一個16位專用存放器,它指向當(dāng)前需要取出的指令字節(jié),當(dāng)BIU從內(nèi)存中取出一個指令字節(jié)后,IP就自動加1,指向下一個指令字節(jié)。注意,IP指向的是指令地址的段內(nèi)地址偏移量,又稱偏移地址(OffsetAddress)或有效地址(EA,EffectiveAddress)。
(3)標(biāo)志存放器FR(FlagRegister)
8086有一個18位的標(biāo)志存放器FR,在FR中有意義的有9位,其中6位是狀態(tài)位,3位是控制位。
OF:溢出標(biāo)志位OF用于反映有符號數(shù)加減運算所得結(jié)果是否溢出。如果運算結(jié)果超過當(dāng)前運算位數(shù)所能表示的范圍,那么稱為溢出,OF的值被置為1,否那么,OF的值被清為0。
DF:方向標(biāo)志DF位用來決定在串操作指令執(zhí)行時有關(guān)指針存放器發(fā)生調(diào)整的方向。
IF:中斷允許標(biāo)志IF位用來決定CPU是否響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求。但不管該標(biāo)志為何值,CPU都必須響應(yīng)CPU外部的不可屏蔽中斷所發(fā)出的中斷請求,以及CPU內(nèi)部產(chǎn)生的中斷請求。具體規(guī)定如下:
(1)、當(dāng)IF=1時,CPU可以響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求;
(2)、當(dāng)IF=0時,CPU不響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求。
TF:跟蹤標(biāo)志TF。該標(biāo)志可用于程序調(diào)試。TF標(biāo)志沒有專門的指令來設(shè)置或清楚。
〔1〕如果TF=1,那么CPU處于單步執(zhí)行指令的工作方式,此時每執(zhí)行完一條指令,就顯示CPU內(nèi)各個存放器的當(dāng)前值及CPU將要執(zhí)行的下一條指令。
〔2〕如果TF=0,那么處于連續(xù)工作模式。
SF:符號標(biāo)志SF用來反映運算結(jié)果的符號位,它與運算結(jié)果的最高位相同。在微機(jī)系統(tǒng)中,有符號數(shù)采用補碼表示法,所以,SF也就反映運算結(jié)果的正負(fù)號。運算結(jié)果為正數(shù)時,SF的值為0,否那么其值為1。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度互聯(lián)網(wǎng)企業(yè)派遣員工網(wǎng)絡(luò)安全合同3篇
- 2025年全新公對公借款合同模板下載及服務(wù)支持10篇
- 二零二五年度體育館租賃合同附體育賽事推廣及贊助招商服務(wù)
- 2025版智能工廠生產(chǎn)線改造施工合同4篇
- 二零二五年度新能源產(chǎn)品銷售代理合作合同范本3篇
- Bobath技術(shù)閆秀麗講解
- 2025年度個人藝術(shù)品租賃借款合同范本及租賃期限約定
- 2025年室內(nèi)墻面批白工程售后服務(wù)合同
- 二零二五年度戶外廣告照明外接電源供應(yīng)合同
- 2025年度個人房屋抵押貸款擔(dān)保及養(yǎng)老保障服務(wù)合同
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 電力電纜工程施工組織設(shè)計
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
- 高中物理選擇性必修2教材習(xí)題答案
- 應(yīng)急預(yù)案評分標(biāo)準(zhǔn)表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
- 鋰離子電池健康評估及剩余使用壽命預(yù)測方法研究
評論
0/150
提交評論