版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二節(jié)8086/8088的指令系統(tǒng)數(shù)據(jù)傳送指令算術(shù)運算指令邏輯運算、移位、循環(huán)指令串操作指令控制轉(zhuǎn)移指令處理器控制指令指令的功能——該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是指令功能的英文單詞或其縮寫形式指令支持的尋址方式——該指令中的操作數(shù)可以采用何種尋址方式指令對標(biāo)志的影響——該指令執(zhí)行后是否對各個標(biāo)志位有影響,以及如何影響其他方面——該指令其他需要特別注意的地方,如指令執(zhí)行時的約定設(shè)置、必須預(yù)置的參數(shù)、隱含使用的寄存器等學(xué)習(xí)指令的注意事項
數(shù)據(jù)傳送指令可以實現(xiàn)CPU的內(nèi)部寄存器之間,CPU和存儲器之間,CPU和I/O端口之間的數(shù)據(jù)傳送。這類指令均含兩個操作數(shù),而且除SAHF指令和POPF指令外,其它的指令均不影響狀態(tài)標(biāo)志位中。3.2.1數(shù)據(jù)傳送類指令通用數(shù)據(jù)傳送指令(DataTransfer)1.基本傳送指令(MOV)
MOVdst,src;(src)←(dst)src:通用寄存器、段寄存器、存儲器操作數(shù)、立即數(shù);dst:通用寄存器、段寄存器、存儲器操作數(shù)。
功能:將源操作數(shù)src復(fù)制到目的操作數(shù)dst中,結(jié)果目的操作數(shù)的內(nèi)容等于源操作數(shù)的內(nèi)容,源操作數(shù)src的內(nèi)容不變。1)寄存器之間傳送
MOVAL,BL;通用寄存器之間MOVAX,DX;MOVAX,ES;通用寄存其與段寄存器MOVDS,AX;3)立即數(shù)送寄存器或存儲器
MOVAL,0FH;立即數(shù)送通用寄存MOV[BP+SI],2300H;立即數(shù)送存儲器2)寄存器和存儲器之間傳送
MOVAL,[BX];通用寄存器和存儲器之間MOV[BX+DI],DX;MOV[BX],ES;段寄存器和存儲器之間MOVDS,50H[BP+SI];(1)dst與src必須類型匹配,即同時是字節(jié)或字類型;(2)兩個操作數(shù)不允許同時為存儲器操作數(shù);(3)不允許使用CS段寄存器作目的操作數(shù);(4)兩個操作數(shù)不允許同時為段寄存器;(5)不允許使用立即數(shù)作目的操作數(shù);(6)不允許直接向段寄存器中傳送立即數(shù)。
使用MOV指令應(yīng)注意以下幾點:例:錯誤的MOV指令如下所示:MOVBL,AX;類型不匹配MOVDS,1000H;不允許立即數(shù)送段寄存器MOV[BX],[SI];不允許內(nèi)存操作數(shù)之間傳送MOVES,CS;不允許段寄存器之間傳送MOVCS,AX;CS不能作為目的操作數(shù)
存儲單元
段寄存器DS、ES、SS
通用寄存器
立即數(shù)8位、16位
段寄存器CS(MOV)數(shù)據(jù)傳送示意圖堆棧是一個按“后進先出”原則操作的主存區(qū)域(暫存數(shù)據(jù)與地址),堆棧操作必須在SS段寄存器指向的堆棧中進行;堆棧只有一個出口,即當(dāng)前棧頂;用堆棧指針寄存器SP指定。堆棧只有兩種基本操作:進棧和出棧。對應(yīng)兩條指令:
PUSHsrc
POPdst2.堆棧操作指令
PUSHPOP堆棧作用:在調(diào)用一個過程時,保存返回地址;暫時存放寄存器或存儲器單元操作數(shù)的內(nèi)容。
CPU通用寄存器入/出棧(PUSH/POPreg)
例如:PUSHAXPOPBX
段寄存器入/出棧(PUSH/POPsreg)
例如:PUSHCSPOPDS(CS除外)存儲器單元入/出棧(PUSH/POPmem)
例如:PUSH[BX+DI]POP[2000H]
入棧和出棧指令都有3種格式:(1)入棧指令PUSH指令操作:
①使堆棧指針SP減2;
②將一個字操作數(shù)存入堆棧頂部:((SP))←低8位數(shù),((SP+1))←高8位數(shù)例PUSHAX
若已知(AX)=1234H,(SS)=1050H,(SP)=000EH則指令操作為:(SP)=(SP)-2=000CH;棧頂?shù)腜A=(SS)×16+(SP)=1050CH②
(AX)的內(nèi)容1234H存入堆棧,指令操作后,堆棧情況如圖:1050EH1050DH(SP)→1050CH12H34H原棧頂現(xiàn)棧頂(2)出棧指令POP指令操作:
①把棧頂?shù)囊粋€字彈出送至指定的目的操作數(shù);
②然后堆棧指針SP加2。如在上例完成后,執(zhí)行POPDS指令:1050CH1050DH(SP)→1050EH12H34H1234
(DS)出棧后的SP和SS的值SP=000EHSS=1050HSS=1050H(不變)通過PUSH和POP命令可以實現(xiàn)數(shù)據(jù)的傳送,但要注意堆棧先進后出的原則。8086通過賦值SS和SP建立堆棧建棧
MOVAX,1050HMOVSS,AXMOVSP,000EH
1050EH
10500H初始棧頂SP=000EHSS=1050H堆棧起地址建棧后SP和SS的值SP=000EHSS=1050H高低堆棧的特點與注意問題①堆棧操作指令中,目的操作數(shù)是隱含的,這個操作數(shù)就是(SP)指示的棧頂存儲單元。
②8086堆棧操作都是字操作,而不允許對字節(jié)操作,例如PUSHAL是錯誤的。③每執(zhí)行一條入棧指令,(SP)自動減2,入棧時,高位數(shù)先入棧;執(zhí)行彈出時,正好相反,每彈出一個字,(SP)自動加2。④CS寄存器可入棧,但不能隨意彈出一個數(shù)據(jù)到CS。⑤在使用堆棧操作保存多個寄存器內(nèi)容和恢復(fù)多個寄存器時,要按“先進后出”原則來組織入棧和出棧的順序。
⑥堆棧操作遵循先進后出原則,但可用存儲器尋址方式隨機存取堆棧中的數(shù)據(jù),如:MOVAX,[BP]。指令格式:XCHGoprd1,oprd2;指令功能:交換oprd1與oprd2的內(nèi)容3.交換指令XCHG(Exchange)寄存器與寄存器之間交換數(shù)據(jù)寄存器與存儲器之間交換數(shù)據(jù)。例如:
XCHGBL,CL;(BL)與(CL)間進行字節(jié)交換
XCHG(BX+SI),DX;(DX)與采用基址變址尋址方式尋址的字地址內(nèi)容進行字交換(1)不能在存儲器與存儲器之間對換數(shù)據(jù);(2)任一個操作數(shù)都不能是段寄存器,也不能使用立即數(shù)。(3)兩操作數(shù)類型必須一致。
指令格式:XLAT;AL←((BX)+(AL))指令功能:BX指定的內(nèi)存表格的首地址、AL指定的序號處一個字節(jié)的表數(shù)據(jù)取出賦給AL查表范圍:255個字節(jié);以BX為表基地址,則表存放在數(shù)據(jù)段,以DS為段基址;XLAT指令有兩種格式——帶或不帶表首地址。4.換碼指令(查表指令)例求數(shù)字0~9對應(yīng)的7段顯示代碼:方法:先建立表格如圖示,并將表首地址送BX中。取待查表項于AL中,再用查表指令求得對應(yīng)的7段顯示代碼。程序段如下:TABLEDB40H,79H,24H,30H,19HDB12H,02H,78H,00H,18HMOVBX,TABLEMOVAL,6XLATTABLETABLE40792430191202780018地址傳送指令1.取有效地址指令LEA
(LoadEffectiveAddres)格式:LEAdst,src;功能:將存儲器操作數(shù)SRC的有效地址送至指定的16位通用寄存器。例如:
LEASP,[0502H];執(zhí)行后,使堆棧指針(SP)=0502HLEABX,[BP+SI];執(zhí)行后,BX中為(BP)+(SI)的值地址傳送指令是用來對地址進行傳送。這類指令傳送到16位目標(biāo)寄存器中的是存儲器操作數(shù)的有效地址EA。LEA指令與MOV指令的區(qū)別:LEASI,BUFF指令是將標(biāo)號BUFF的偏移地址送入寄存器中;MOVSI,BUFF指令是將標(biāo)號BUFF所指存儲單元的內(nèi)容送入SI。LEASI,BUFF;執(zhí)行后:(SI)=0002HMOVSI,BUFF;執(zhí)行后:(SI)=0048HBUFF=若(DS)=2000H,BUFF=02H,存儲區(qū)內(nèi)容如圖,則:0120002H4800FEFF20003H20004H20005H20001H20000H2.雙字地址指針?biāo)虳S和寄存器指令格式:LDSdst,src;功能:將源操作數(shù)src指定的4個連續(xù)字節(jié)單元內(nèi)容(地址指針)分別送入指令指定的寄存器dst及DS中。其中:低16位送到dst,高16位送到DS。3.雙字地址指針?biāo)虴S和寄存器指令格式:LESdst,src;功能:將源操作數(shù)指src定的4個連續(xù)字節(jié)單元內(nèi)容(地址指針)分別送入指令指定的寄存器dst及ES中。其中:低16位送到dst,高16位送到ES。使用LDS和LES指令時應(yīng)注意:(1)指定的寄存器dst,不能是段寄存器;(2)src一定是存儲器操作數(shù)。例:若已知(DS)=C000H,(C2480H)=1357H,(C2482H)=2468H57H13H68H24HC2480HC2481HC2482HC2483HLDSSI,[2480]13572468SIDSLDSSI,[2480]狀態(tài)標(biāo)志傳送指令通過這類指令讀出當(dāng)前標(biāo)志寄存器中各狀態(tài)位的內(nèi)容,也可以對標(biāo)志寄存器的狀態(tài)設(shè)置新的值。這類指令共有4條,均為單字節(jié)指令,源操作數(shù)和目的操作數(shù)都隱含在操作碼中。指令格式:1.LAHF;(AH)←(F的低8位)2.SAHF;(F的低8位)←(AH)3.PUSHF;(SP)←(SP)-2,((SP)+1,(SP))←(F)4.POPF;(F)←((SP)+1,(SP)),(SP)←(SP)+2OF1115DF10IF9TF8SF7ZF65AF43PF21CF0FLAGS說明:
①LAHF/SAHF指令是寄存器AH與標(biāo)志寄存器F的低字節(jié)之間完成的字節(jié)型數(shù)據(jù)傳送。
②PUSHF/POPF指令是標(biāo)志寄存器F與堆棧間進行的字型數(shù)據(jù)傳送。
③指令SAHF/POPF將影響標(biāo)志位。例輸入輸出指令1)、直接尋址
INAL,nOUTn,ALINAX,NOUTN,AX尋址空間為:0~255字節(jié)INAL,20HINAX,30HOUT46H,ALOUT80H,AX例2)、間接尋址
INAL,DXOUTDX,ALINAX,DXOUTDX,AX尋址空間為:0000H~FFFFHMOVDX,1000HINAL,DX
INAX,DXOUTDX,AL§數(shù)據(jù)傳送類指令練習(xí)指出下列指令中的非法指令?
MOVBX,AL(2)MOVBH,ALMOV100,CL(4)MOVCL,100MOVSS,2400H(6)XCHGAH,ALMOVAL,AL(8)XCHG200,ALOUT21H,AL(10)OUT21H,AH(11)OUT260H,AL(12)MOV[BX],BX(13)MOV[AX],CX(14)MOV[BX],BL
(1)、(3)、(5)、(7)、(8)、(10)、(11)、(13)為非法指令算術(shù)運算類指令用來執(zhí)行二進制的算術(shù)運算:加、減、乘、除。算術(shù)運算指令的特點有:1)在加、減、乘、除基本運算指令中,除±1指令外,都具有兩個操作數(shù);2)這類指令執(zhí)行后,除±1指令不影響CF標(biāo)志外,對CF,OF,ZF,SF,PF和AF等6位標(biāo)志均可產(chǎn)生影響,3-2-2算術(shù)運算指令加法運算指令1.加法指令(ADD)指令格式:ADD
dst,src
;dst←dst+src標(biāo)志寄存器:影響AF、CF、PF、OF、ZF、SF目的操作數(shù):通用寄存器、存儲器;
源操作數(shù):通用寄存器、存儲器、立即數(shù);操作數(shù)類型:字或字節(jié)注意點:兩操作數(shù)必須類型一致;兩操作數(shù)不能同時為存儲器操作數(shù)。
例:
ADDAX,0F0F0H,設(shè)指令執(zhí)行前(AX)=5463H;
(AX)=0101010001100011+、1111000011110000[1]0100010101010011→AX
進位執(zhí)行后,結(jié)果(AX)=4553H,且CF=1,ZF=0,SF=0,OF=02.帶進位加法指令(AddwithCarry
)指令格式:ADCdst,src
標(biāo)志寄存器:影響OF、CF、SF、ZF、AF、PF;
目的操作數(shù):通用寄存器、存儲器;源操作數(shù):通用寄存器、存儲器、立即數(shù);操作數(shù)類型:字或字節(jié)用法:
多字節(jié)數(shù)相加例:有兩個4字節(jié)無符號數(shù)放在2000H和3000H單元中,低位在前,高位在后,將兩個數(shù)相加,結(jié)果放2000H開始的單元中。
10008432H+20007F00H=?1).算法分析:1).可以將兩個4字節(jié)無符號數(shù)相加看成2個字相加;2).兩個數(shù)的低位字相加后,將可能產(chǎn)生進位CF;3).高位字相加,應(yīng)再加上進位位;
2000H3000H32840010007F0020SIDI2).程序:
CLC ;清進位MOVSI,2000H ;取第一個數(shù)的首地址MOVAX,[SI] ;第一個數(shù)的低16位送到AXMOVDI,3000H ;取第二個字的首地址ADDAX,[DI] ;第一個數(shù)和第二個數(shù)相加MOV[SI],AX ;送低16位結(jié)果倒2000H單元MOVAX,[SI+2] ;第二個數(shù)的高16位送AXADCAX,[DI+2] ;高16位數(shù)據(jù)相加MOV[SI+2],AX3.加1指令
INC(Increment)指令格式:INCdst指令功能:dst←dst+1標(biāo)志寄存器:影響OF、SF、ZF、AF、PF;
操作數(shù):8位/16位通用寄存器或存儲器;INCCX;將CX的內(nèi)容加1后再送回CX中。INCBYTEPTR[BX+100H];將(BX)+100H所指的單元內(nèi)容加1后,送回此單元。注意:指令不影響CF標(biāo)志,當(dāng)用INC指令進行循環(huán)計數(shù),試圖以判斷CF=1結(jié)束循環(huán),是達不到目的的,而且還會導(dǎo)致程序運行進入死循環(huán)1.減法指令(
Subtract
)指令格式:SUB
dst,src
;dst←dst+src標(biāo)志寄存器:影響AF、CF、PF、OF、ZF、SF目的操作數(shù):通用寄存器、存儲器;
源操作數(shù):通用寄存器、存儲器、立即數(shù);注意點:兩操作數(shù)必須類型一致;兩操作數(shù)不能同時為存儲器操作數(shù)。
減法類指令SUBAX,BX;AX內(nèi)容減去BX中的內(nèi)容,結(jié)果在AX中SUBSI,[DI十100H];SI內(nèi)容減法(DI)+100H和(DI)+101H所指的兩單元內(nèi)容,結(jié)果在SI中;例:SUBWORDPTR[DI],1000H;(DI)所指的字單元;中的16位數(shù)減去立即數(shù)1000H,結(jié)果在字單元中SUB[BP+2],CL;將SS段中的(BP)+2所指的單元;內(nèi)容,減去CL內(nèi)容,結(jié)果在堆棧的該單元中。SUBSI,SI
;SI=0
;OF=0,SF=0,ZF=1,PF=1,CF=0
;寄存器自減清零2.帶借位的減法指令(SubtractwithBorrow
)
指令格式:SBBdst,src;dst←dst-src-CF
指令功能:SBB指令將目的操作數(shù)減去源操作數(shù),再減去借位CF(進位),結(jié)果送到目的操作數(shù)。
SBB指令與ADC指令一樣,主要用于與SUB配合,實現(xiàn)多字節(jié)減法運算。
例如:SBBAX,2010H的運算為:(AX)←(AX)-2010H-(CF)
3.減1指令(DEC)指令格式:DECdst;dst←dst-1減1指令只有1個操作數(shù)dst,和INC指令類似,dst可為寄存器或存儲器單元。DECCX;CX內(nèi)容減1后,送回CX;
DECBYTEPTR[DI+2];將(DI)+2所指字節(jié)單元內(nèi)容減1后,送回該單元。需要注意的是:DEC指令和INC指令一樣,執(zhí)行后對CF不產(chǎn)生影響。4.求補指令NEG指令格式:NEGdst;dst←0-dst指令功能:
對操作數(shù)執(zhí)行求補運算,即用零減去操作數(shù),然后結(jié)果返回操作數(shù);或表示為將操作數(shù)按位取反后加1。標(biāo)志寄存器:影響AF、PF、OF、ZF、SF,CF=1;
操作數(shù):8位/16位通用寄存器或存儲器。例:MOVAH,5NEGAH;AH=11111011B,是-5(補碼)MOVAX,-6(FFFAH)NEGAX;AX=0006H,是+6
注意點:連同符號一起求補,稱為變補。NEG應(yīng)用舉例設(shè)在內(nèi)存中從AREA1開始存放有100個帶符號數(shù),現(xiàn)需要將這些數(shù)的絕對值存放在以AREA2開始的內(nèi)存中;開始初始化置源地址,置目的地址指針置循環(huán)次數(shù)取一個帶符號數(shù)負數(shù)?求補送存地址指針+1循環(huán)次數(shù)-1循環(huán)次數(shù)=0?結(jié)束NYNY5.比較指令CMP
(Compare)
指令格式:CMPdst,src;dst-src指令功能:
CMP指令執(zhí)行的功能與SUB指令類似,但結(jié)果不回送目的操作數(shù),只是使結(jié)果影響標(biāo)志位。標(biāo)志寄存器:OF,SF,ZF,PF和CF;
操作數(shù):8位/16位通用寄存器或存儲器用法:由受影響的標(biāo)志位狀態(tài)便可判斷兩操作數(shù)比較的結(jié)果。比較指令執(zhí)行后目的-源(N1-N2)各標(biāo)志位的情況
1)N1=N2CFZFSFOF01002)無符號數(shù)N1>N200--N1<N210--3)
帶符號數(shù)N1<N2-010N1<N2-001N1>N2-000N1>N2-011關(guān)注ZF關(guān)注CF關(guān)注SF和OF乘法指令乘法指令中有兩個操作數(shù),其中一個是隱含固定在AL或AX中。1.無符號數(shù)的乘法指令MUL(Multiply
)指令格式:
MULsrcAL操作數(shù)AHAL(8位)(8位)(16位)AX操作數(shù)DXAX(16位)(16位)(32位)例如:MULBL;AL中和BL中的8位數(shù)相乘,乘積在AX中;MULCX;AX中和CX中的16位數(shù)相乘,乘積在DX和
;AX中;MULBYTEPTR[DI];AL中和(DI)所指的字節(jié)單元;中的8位數(shù)相乘,乘積在AX中MULWORDPTR[SI];AX中和(SI)所指的字單元中的
;16位數(shù)相乘,結(jié)果在DX中標(biāo)志寄存器:字節(jié)乘:若乘積高8位AH不為0,則CF=OF=1,若乘積高8位AH=0,則CF=OF=0;字乘:若乘積高16位DX不為0,則CF=OF=1,若乘積高16位DX=0,則CF=OF=0;操作數(shù):可以是通用寄存器、存儲器,不能是立即數(shù)。指令格式:
IMULsrc符號數(shù)乘法指令指令功能:IMUL指令和MUL指令在功能和格式上類似,只是要求兩個乘數(shù)均必須為帶符號數(shù)。例如:IMULAX;AX中和AX中的16位帶符號數(shù)自乘,;結(jié)果在DX和AX中IMULBYTEPTR[BX];AL中和(BX)所指的字節(jié)單元中的
;8位帶符號數(shù)相乘,結(jié)果在AX中標(biāo)志寄存器:若乘法結(jié)果AH或DX包含有效值,則OF=1、CF=1,
若乘法結(jié)果AH或DX只是低半部分的符號擴展,則OF=0、CF=0
2.帶符號數(shù)的乘法指令(IntegerMultiply)例:比較無符號數(shù)和帶符號數(shù)乘法指令設(shè)指令執(zhí)行前:(AL)=A4H(BL)=12H(A4H)無符號數(shù)帶符號數(shù)164D-92D(12H)無符號數(shù)帶符號數(shù)18D
18D執(zhí)行IMUL后:(AX)=F988H=-1656DCF=1,OF=1執(zhí)行MUL后:(AX)=0B88H=2952D CF=1,OF=1IMUL BLMUL BL除法指令(Division)
除法指令有兩個操作數(shù),其中被除數(shù)隱含固定在AX中(除數(shù)為8位時)或DX,AX中(除數(shù)為16位時)。
1.無符號數(shù)除法指令
DIVsrc
指令格式:DIVsrc
無符號除法指令
指令功能:字節(jié)除:AL(商)←(AX)/(src),余數(shù)在AH中,
字除:
AX(商)
←(DX、AX)/(src),余數(shù)在DX中。
若除數(shù)為0,或商超過AL(字節(jié)除)或AX(字除)所能存放的最大值(FFH或FFFFH)時,系統(tǒng)會自動產(chǎn)生0類(除法除出錯)中斷,且商和余數(shù)都不確定。
指令格式:IDIVsrc指令功能:字節(jié)除:AL(商)←(AX)/(src),余數(shù)在AH中,字除:AX(商)←(DX、AX)/(src),余數(shù)在DX中。IDIV指令用于兩個帶符號數(shù)相除,其功能和對操作數(shù)長度的要求和DIV指令類似,本指令執(zhí)行時,將被除數(shù)、除數(shù)都認作帶符號數(shù)。注意:余數(shù)的符號和被除數(shù)的符號相同。當(dāng)商超過AL或AX所能存放的范圍值-128~+127(字節(jié)除)或-32768~+32767(字除),時,系統(tǒng)會自動產(chǎn)生0(除法錯)類中斷。指令執(zhí)行后不產(chǎn)生有效標(biāo)志2.帶符號數(shù)的除法指令I(lǐng)DIV3.將字節(jié)擴展成字的指令CBW(ConvertBytetoWord
)
指令系統(tǒng)要求被除數(shù)長度是除數(shù)的兩倍,若不滿足可將被除數(shù)擴展,字節(jié)擴展指令用于對帶符號數(shù)的擴展。指令格式:CBW指令功能:將AL寄存器中的符號位擴展到AH中,從而使AL中的8位數(shù)據(jù)擴展成為AX中的16位數(shù)。注意:符號擴展雖然使數(shù)據(jù)位數(shù)加長,但數(shù)據(jù)大小并沒有改變,擴展的高部分僅是低部分的符號擴展。應(yīng)用:遇到兩個帶符號的字節(jié)數(shù)相除時,應(yīng)先執(zhí)行CBW指令,產(chǎn)生一個雙倍長度的被除數(shù),否則,不能正確執(zhí)行除法操作。CBW執(zhí)行后,不影響標(biāo)志位。指令格式:
CWD(ConvertWordtoDoubleWord
)指令功能:將AX中數(shù)的符號位擴展到整個DX中。CWD指令和CBW一樣,用于帶符號數(shù)擴展,其功能是將AX寄存器中的符號位擴展到DX中,從而得到(DX),(AX)組成的32位雙字。例:MOVAL,-16;AL=0F0H(-16)
CBW;AX=0FFF0H(-16)
CWD;DXAX=0FFFFFFF0H(-16)
IDIVBX;DX←余數(shù),AX←商4.將字擴展成雙字的指令CWD70AL70AH015AXDX150CBWCWD字節(jié)擴展到字指令CBW和字擴展到雙字CWD示意圖:例:如果在內(nèi)存中有一個緩沖區(qū)BUFFER,如果前兩個字節(jié)為一個16位帶符號的被除數(shù),第3,4字節(jié)為一個帶符號的除數(shù),第5,6字節(jié)放結(jié)果的商,7,8字節(jié)放余數(shù)。 則: LEABX,BUFFER ;偏移量到BX MOVAX,[BX] ;BX指向內(nèi)容(被除數(shù))到AX CWD ;符號擴展 IDIV[BX+2] ;16位帶符號除法 MOV[BX+4],AX ;商到BUFFER+4地址處 MOV[BX+6],DX ;余到BUFFER+6地址處指令格式:DAA(DecimalAdjustforaddition)指令功能:DAA指令用于對壓縮的BCD碼相加的結(jié)果進行調(diào)整,使結(jié)果仍為壓縮的BCD碼。標(biāo)志寄存器:影響CF、SF、ZF、AF、PF;
調(diào)整方法:指令執(zhí)行時,先對相加結(jié)果進行測試,若低4位(或高4位)大于9(非法碼)或產(chǎn)生進位CF或輔助進位AF時,DAA自動對低4位(或高4位)進行加6的調(diào)整。注意點:因調(diào)整是在AL中進行,因此加法運算后,必須把結(jié)果放在AL中;BCD碼運算時,必須用調(diào)整指令。1.加法十進制調(diào)整指令十進制調(diào)整指令2.十進制減法調(diào)整指令(DAS)
指令格式:DAS
指令功能:對在AL中的兩個壓縮型BCD數(shù)相減的結(jié)果,調(diào)整成正確的壓縮型BCD數(shù)在AL中;
用法:DAS與DAA對加法結(jié)果進行調(diào)整的作用相似,不同的是DAS對結(jié)果是進行減6的調(diào)整。該指令執(zhí)行后,對AF,CF,PF,SF和ZF均產(chǎn)生影響,但OF沒有意義。3.非壓縮的十進制數(shù)加法調(diào)整指令指令格式:AAA(unpackedBCD[ASCII]adjustforaddition
)指令功能:AL←對AL中的加法結(jié)果調(diào)整為非壓縮BCD碼AH←AH+調(diào)整的進位AAA指令用于對非壓縮BCD碼相加結(jié)果進行調(diào)整,調(diào)整操作仍在AL中進行,調(diào)整后的結(jié)果在AX中。
4.非壓縮十進制數(shù)減法調(diào)整指令(AAS)指令格式:AAS指令功能:AAS指令用于對非壓縮BCD碼相減結(jié)果進行調(diào)整,也是緊跟在減法指令之后,調(diào)整后的結(jié)果仍為非壓縮的BCD碼。
AAS指令執(zhí)行后,只影響AF,CF特征,而OF,PF,SF和ZF都沒有意義。指令格式:
AAM指令功能:AAM指令用于對8位的非壓縮BCD碼的乘積AX內(nèi)容進行調(diào)整。調(diào)整后的結(jié)果仍為一個正確的非壓縮BCD碼,放回AX中。其中高位非壓縮型BCD數(shù)在AH中,低位非壓縮型BCD數(shù)在AL中;
標(biāo)志寄存器:對PF,SF,ZF產(chǎn)生影響,對OF,AF和CF無意義。注意點:AAM緊跟在乘法指令之后,因為BCD碼總是當(dāng)作無符號數(shù)看待,所以對非壓縮BCD相乘是用MUL指令,而不是用IMUL指令。5、非壓縮十進制乘法調(diào)整指令例
求09X04的程序段為:MOVAL,09MOVCL,04;MULCL;(AL)X(CL)→(AX)=24HAAM;結(jié)果:(AH)=03H,(AL)=06H壓縮BCD碼相乘后,對所得結(jié)果無法調(diào)整,因此8086指令系統(tǒng)沒有提供對壓縮BCD碼乘法的調(diào)整指令。指令格式:AAD指令功能:用在兩位非壓縮型BCD數(shù)在相除之前,將AX中存放的非壓縮BCD碼表示的十進制數(shù)調(diào)整為二進制數(shù)。使得兩個未壓縮的十進制數(shù)相除之后可得到非壓縮的BCD數(shù)結(jié)果,商在AL中,余數(shù)在AH中;標(biāo)志寄存器:影響PF、SF、ZF。
注意點:該指令必須放在除法指令之前。對十進制數(shù)進行除法運算時,和乘法一樣,要求除數(shù)、被除數(shù)都用非壓縮的BCD碼,否則,不能進行調(diào)整。6.非壓縮十進制除法調(diào)整指令例:要實現(xiàn)0103÷06=02余01,程序段如下:MOVAX,0103H;取被除數(shù)MOVBL,06;取除數(shù)AAD;調(diào)整為:(AX)=000DHDIVBL;相除,得商(AL)=02,余數(shù)(AH)=13-2-3、邏輯運算指令、移位指令8086的邏輯運算指令包括AND(與),OR(或),XOR(異或),TEST(測試)和NOT(非)5條指令。
特點:
①按位操作,②根據(jù)結(jié)果設(shè)置SF、ZF和PF狀態(tài),而對AF未定義;③操作數(shù)與ADD、SUB等一樣
目的操作數(shù):通用寄存器、存儲器源操作數(shù):通用寄存器、存儲器、立即數(shù)
兩操作數(shù)不能都是存儲器操作數(shù)
④單操作數(shù)邏輯指令NOT不影響標(biāo)志位邏輯運算邏輯指令:TESTsrcdstNOTANDORXOR0010000100111010111101101.邏輯“與”運算AND指令格式:ANDdst,src指令功能:dst←dst∩src標(biāo)志寄存器:影響SF、ZF、PF,OF=0、CF=0,AF不確定
用AND指令可對指定位或指定的一些位進行屏蔽(清零)。
例如:ANDAL,0FH;將AL中的高4位清零
0FH稱為屏蔽字,屏蔽字中的0對應(yīng)于需要清0的位。
2.邏輯或運算OR
指令格式:ORdst,src
指令功能:dst←dst∨src其余同AND指令
用OR指令可對一些指定位置1。例如:ORAL,80H可將AL中的最高位置1,其他位保持不變。3.邏輯非運算NOTNOTreg/mem;reg/mem←reg/mem標(biāo)志寄存器:不影響;操作數(shù):通用寄存器、存儲器,指令功能:按位取反,原來是“0”的位變?yōu)椤?”;原來是“1”的位變?yōu)椤?”指令格式:例如:
NOTBX;(BX)變反碼,結(jié)果送回BX中;
NOTBYTEPTR(1000H);將1000H單元中內(nèi)容變反碼后,;送回1000H單元
4.邏輯異或指令XOR
指令格式:XORdst,src;dst←dst⊕src用法1:XORAX,AX在清CF和影響SF,ZF,PF的同時,也清除AX本身用法2:用XOR指令可以比較兩個操作數(shù)是否相同。例如:XORAL,3CH,若執(zhí)行后,ZF=1,說明(AL)=3CH,否則,就不等于3CH;用法3:通過XOR指令用“1”與某數(shù)的對應(yīng)位異或,可將該位取反,用“0”與某數(shù)的對應(yīng)位異或,可將指定位不變;
其他與AND、OR指令相同例如:XORAL,0FH若指令執(zhí)行前(AL)=3AH,其操作結(jié)果為00111010⊕0000
111100110101執(zhí)行后,(AL)=35H
4.測試指令TEST
TEST指令和AND指令執(zhí)行同樣的操作,對兩個操作數(shù)執(zhí)行邏輯與運算,結(jié)果并不送目的操作數(shù),僅按AND指令影響標(biāo)志。TESTdest,src ;dest∧src
AND與TEST指令的關(guān)系,同SUB與CMP指令的關(guān)系一樣注意點:TEST指令執(zhí)行后,目的操作數(shù)的值保持不變。TEST指令一般用來檢測指定位是1還是0TESTAL,80H;測AL的最高位D7是否為1,——由此可判正、負數(shù);TEST[BX],01H;測(BX)所指存儲單元的最低位D0是否為1,若是,ZF=0,否則ZF=1由此可判斷該數(shù)是奇數(shù),還是偶數(shù)例、使AL中的數(shù),第0、1位取反。MOVAL,51H;送操作數(shù)XORAL,03H;送特征數(shù)00000011HLT;暫停
01010001(AL)
XOR0000001101010010例、測試AL中的第0、1、2位是否為零。MOVAL,40HTESTAL,07H;測AL的0、1、2位HLT
01001000AND0000011100000000邏輯指令小結(jié)AND指令用于對一個數(shù)據(jù)的指定位清零OR指令用于對一個數(shù)據(jù)的指定位置1NOT指令用于取反碼,再加一,得補碼XOR指令用于對寄存器清零TEST指令用于測試一個數(shù)據(jù)的指定位是1還是0SHLdst,count;邏輯左移SHRdst,count;邏輯右移SALdst,count;算數(shù)左移SARdst,count;算數(shù)右移CML00MLCCML0MLC非循環(huán)移位指令注意:移位指令影響標(biāo)志位CF、OF、PF、SF和ZF。如果只移一位,指令中用1指出移位的位數(shù),如果超過1位,必須用CL預(yù)先指明移位的位數(shù)。例1:SALDX,1;DX中的數(shù)左移1位MOVCL,4SALAX,CL;AX中的數(shù)左移4位SHLAL,CL;SHRAL,CL;AL中的數(shù)右移4位例2、將兩個非壓縮BCD碼(高位存BL,低位存于AL中),轉(zhuǎn)換成一個壓縮的BCD碼,存于AL中。0000****BL0000****ALOR****0000BL
SHL程序段:MOVCL,4SHLBL,CLORAL,BLHLT例2、將AX中的內(nèi)容乘以10。左移一位,乘以2;右移一位,除以2。程序段:MOVBX,AXMOVCL,2SHLAX,CL;左移2位,乘以4ADDAX,BX;AX為原來5倍SHLAX,1;AX為原來的10倍HLT循環(huán)移位指令ROLdst,count;左小循環(huán)RORdst,count;右小循環(huán)RCLdst,count;左大循環(huán)RCRdst,count;右大循環(huán)例1、ROLAL,1AL:1001000100100011例2、MOVCL,2ROLBH,CLBH:10101111
10111110算術(shù)、邏輯移位可用于:改變數(shù)據(jù)二進制位的位置(丟失移出的位)二進制的整次冪的乘法(左移)、除法(右移)算術(shù)移位用于帶符號數(shù)操作邏輯移位用于無符號數(shù)操作循環(huán)移位可用于:改變數(shù)據(jù)二進制位的位置(不丟失移動的位)習(xí)題1、假設(shè)DL=10111001B,CL=3,指令SARDL,CL執(zhí)行后DL=?2、假設(shè)一個48位數(shù)存放在DX:AX:BX中,請編程把這個48位數(shù)乘以2。DL=10000111BSALBX,1RCLAX,1RCLDX,1MOVCL,3b.MOVCL,7MOVBX,0B7HMOVBX,8D16HROLBX,1SHRBX,CLRORBX,CLa.答案BX=C02DHb.答案BX=011AH3、下列程序執(zhí)行后,BX=?3-2-4、串(String)操作指令字串傳送:MOVSB/MOVSW字串比較:CMPSB/CMPSW字串掃描:SCASB/SCASW字串裝入:LODSB/LODSW字串存儲:STOSB/STOSW一、串操作的特點1、SI尋址源操作數(shù),段地址在DS,DI尋址目的操作數(shù),段地址在ES;2)每次操作后,SI、DI自動修改:DF=0,SI和DI加1或(+2),DF=1,SI、DI減一或減二。3)若源字串和目的字串在同一段中,則把DS和ES設(shè)成相同數(shù)字。4)可在串操作指令前加重復(fù)前綴(REP等),每重復(fù)執(zhí)行一次,CX內(nèi)容會自動減1。需注意的是,執(zhí)行帶有重復(fù)前綴的指令時,對CX的檢測是在執(zhí)行指令前進行的。5)串長度必須放在CX寄存器中二、重復(fù)前綴:
1、REP
MOVSB/MOVSW(1).若CX=0,退出重復(fù)操作;(2).CX≠0,執(zhí)行串操作一次,CXCX-1,修改SI、DI,轉(zhuǎn)(1)。2、相等重復(fù)前綴REPZ(REPE)(1).若CX=0,或ZF=0,退出重復(fù)操作;(2).CX≠0,執(zhí)行串操作一次,CXCX-1,修改SI、DI,轉(zhuǎn)(1)。用途:用于比較兩個字串,找出不同的字。
3、不相等重復(fù)前綴REPNZ(REPNE)(1).若CX=0,或ZF=1,退出重復(fù)操作;(2).CX≠0,執(zhí)行串操作一次,CXCX-1,修改SI、DI。用途:1)在一個字串中,找到需要的字。
2)用于比較兩個字串,找出相同的字串
。三、字串傳送指令:MOVS
字節(jié)操作:MOVSB字操作:MOVSW1).SI指向源串(數(shù)據(jù)段DS),DI指向目的(附加段ES);2).CX置入傳送的字節(jié)數(shù);3).用CLD 清DF=0:SI+1(或2),DI+1(或2);
用STD置DF=1:SI-1(或2),DI-1(或2);4).用帶REP重復(fù)前綴的串傳送指令,每傳送一次,CX中的值減一。例1.將100個數(shù)據(jù),從地址為1000H單元傳送到地址為2000H單元區(qū).LEASI,[1000H];SI指向源串地址LEADI,[2000H];DI指向源串地址MOVCX,100;置計數(shù)器CLD;清方向標(biāo)志REPMOVSB;將源地址的100個字節(jié)傳送到目的地址單元
HLT四、字串比較指令:
CMPSB/CMPSW;SRC-DST字操作指令:CMPSW字節(jié)操作指令:CMPSB功能:[SI]—[DI]DIDI1(2)SISI1(2)
操作結(jié)果影響標(biāo)志位。在CMPSW/CMPSB前使用重復(fù)前綴:用REPNZ/REPNE,表示兩個字串比較不相等時繼續(xù)下次比較,若相等則退出比較。
用REPZ/REPE,表示兩個字串比較相等時繼續(xù)下次比較,若不相等則退出比較。用途:用于比較兩個字串,找出第一個相等的字符或不相等的字符五、字串檢索指令:
SCASB/SCASW
操作:AL(AX)—[DI]DIDI1(2)用AL或AX中的一個字串和位于ES段由DI指出的內(nèi)存單元的字節(jié)或字比較。
功能:從一個字串中查找一個與AL或AX中不同的字符,或?qū)ふ乙粋€相同的字符.例2.從地址為1000單元開始,存放256個字節(jié)的字符串,找出第一個字符$(ASCII碼24H),將$的第一個地址存入BX中,否則將BX清零.
1)分析:要求找指定字符$,可以用指令SCASB;重復(fù)前綴用REPNZ,表示表示兩個字串比較不相等時繼續(xù),否則退出循環(huán)$的地址應(yīng)為多少?
1031332445DIDI1000H1001H1002H1003H….2).程序段:MOVDI,1000H;送目標(biāo)串首地址MOVCX,256CLD;清方向標(biāo)志MOVAL,‘$’REPNZSCANBJZZER;沒找到$,轉(zhuǎn)DECDI;退回到$所在地址MOVBX,DI;$所在地址送BXJMPST0ZER:MOVBX,0ST0:HLT
使用SCASB/SCASW注意:目的字串默認在ES段中,字串首址由DI指出。尋找與AL中字節(jié)相同的第一個字節(jié),用REPNZSCASB,若找到,退出循環(huán);若字串中沒有任何字節(jié)與AL的內(nèi)容相同,退出循環(huán)。六、取字串指令:
LODSB/LODSW
執(zhí)行的操作:AL(AX)[SI]SISI1(2)將位于DS段由SI指出的內(nèi)存單元的字節(jié)或字的內(nèi)容取到AL或AX中。注意:因為取來的字或字節(jié)放在AX或AL中,LODSB/LODSW前面不能加前綴。七、存儲指令:
STOSB/STOSW例3:將0404H單元開始的256單元清零。
CLD
;清方向標(biāo)志
LEADI,[0404H]
;DI指向字串地址
MOVCX,256;共256個字節(jié)
XORAX,AX;AX清零REPSTOSBHLT
執(zhí)行的操作:[DI]AL(AX)DIDI1(2)把AL或AX中的一個字串存到位ES段由DI指出的內(nèi)存單元,并自動修改地址。
8086的指令執(zhí)行順序由代碼寄存器CS和指令指針I(yè)P的內(nèi)容確定。
控制轉(zhuǎn)移類指令通過改變IP(和CS)值,實現(xiàn)程序執(zhí)行順序的改變8086的控制轉(zhuǎn)移類指令可分為四小類,即無條件轉(zhuǎn)移與調(diào)用返回、條件轉(zhuǎn)移、循環(huán)控制和中斷類指令。除中斷類指令外,其它類指令均不影響標(biāo)志位。控制轉(zhuǎn)移類指令用于實現(xiàn)分支、循環(huán)、過程等程序結(jié)構(gòu),是僅次于傳送指令的最常用指令3-2-5控制轉(zhuǎn)移指令
控制轉(zhuǎn)移指令的尋址方式8088/8086的尋址方式分為兩類:關(guān)于尋找數(shù)據(jù)的尋址方式關(guān)于尋找轉(zhuǎn)移地址的尋址方式轉(zhuǎn)移可以分成兩類:段內(nèi)轉(zhuǎn)移和段間轉(zhuǎn)移
段內(nèi)轉(zhuǎn)移——只需改變IP寄存器的內(nèi)容,在同一段的范圍之內(nèi)進行轉(zhuǎn)移,稱為段內(nèi)轉(zhuǎn)移也稱為近程轉(zhuǎn)移(稱為NEAR),還將(-128~+127)內(nèi)轉(zhuǎn)移稱為短轉(zhuǎn)移(稱為SHORT)。
段間轉(zhuǎn)移——是要轉(zhuǎn)到另一個段去執(zhí)行程序,即程序轉(zhuǎn)移后CS、IP均發(fā)生了改變,則稱為段間轉(zhuǎn)移或者稱為遠程轉(zhuǎn)移(也稱為FAR型轉(zhuǎn)移)
。1.段內(nèi)直接尋址段內(nèi)直接尋址方式也稱為相對尋址方式,轉(zhuǎn)移的目標(biāo)地址是當(dāng)前IP內(nèi)容和一個8位或16位的位移量之和.(IP)←(IP)+8位或16位位移量。2.段內(nèi)間接方式
有效的轉(zhuǎn)移地址EA是一個寄存器或是一個存儲單元的內(nèi)容,此內(nèi)容用來更新IP寄存器的內(nèi)容,所以是絕對偏移量。注意與段內(nèi)直接方式的相對偏移量的區(qū)別。
若目標(biāo)轉(zhuǎn)移地址為存儲單元內(nèi)容,則該存儲單元本身可以是存儲器操作數(shù)有關(guān)的任何尋址方式尋址。(IP)←16位通用寄存器或字存儲單元的內(nèi)容3.段間直接尋址這種方式用于段間轉(zhuǎn)移,指令中給出轉(zhuǎn)向地址的段地址(CS)和偏移地址(IP),用來更新當(dāng)前CS和IP,程序轉(zhuǎn)移到另一代碼段。4.段間間接方式這種方式同樣用于段間轉(zhuǎn)移,指令中將給出一個存儲器地址,用該存儲器地址所指的二個相繼字單元的內(nèi)容(32位)來取代當(dāng)前的IP和CS的內(nèi)容。
存儲器CS存放轉(zhuǎn)移地址首地址高字節(jié)低字節(jié)低字節(jié)高字節(jié)IP二、無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令1、無條件轉(zhuǎn)移指令
段內(nèi)轉(zhuǎn)移:JMP1000H;IPIP+1000HJMPSHORTLOP1;LOP1是標(biāo)號
段間轉(zhuǎn)移JMPFARPTRLOP2IPLOP2的段內(nèi)偏移地址CSLOP2的段地址
JMPDWORDPTR[BX]IP[BX]CS[BX+2]A∶Above高于B∶Below低于C∶Carry進位E∶Equal
等于Z:Zero零
G∶Graeter大于L∶Less小于N∶Not非、無O∶Over溢出S∶Sign符號PE∶ParityEven奇校驗PO∶ParityOdd偶校驗2、條件轉(zhuǎn)移指令
形式:JX短目標(biāo)地址X:1~3個英文字母跳轉(zhuǎn)范圍:-128~+127字節(jié)1)、JE/JZ;等于,A=BJNZ/JNE;不等于,A<>B2)、無符號數(shù)比較JB/JNAE:A<BJNB/JAE:A>=BJA/JNBE:A>B;JNA/JBE:A<=B3)、帶符號數(shù)比較指令JL:A<BJNL:A>=BJG:A>BJNG:A<=B4)其它轉(zhuǎn)移指令JS、JNS;JO、JNO;JP、JPE:P=1JPO、JNP;JCXZ:CX=0轉(zhuǎn)移
例1比較1000H、1001H單元的兩個無符號數(shù),將大數(shù)存2000H單元中。解:MOVBX,1000H MOVAL,[BX];第一數(shù)送ALINCBX;指向第二數(shù)CMPAL,[BX];兩數(shù)比較JALOP1;大于轉(zhuǎn)MOVAL,[BX];大數(shù)送ALLOP1:MOV[2000H],ALHLT三、循環(huán)指令LOOP、LOOPZ、LOOPNZ1)、LOOP短目標(biāo)地址操作:CXCX-1,CX不為零,循環(huán);若CX=0,退出循環(huán)。相當(dāng)于下面的指令:DECCXJNZ短目標(biāo)地址
例2:延遲子程序:MOVCX,0100H;設(shè)循環(huán)次數(shù)KKK:LOOPKKK;CX-1,CX;不為零,循環(huán)
或:MOVCX,0100HKKK:DECCXJNZKKKHLT2)LOOPZ/LOOPE
CX-1,CX不為零且ZF=1,循環(huán);若CX=0,或ZF=0,退出循環(huán)。3)LOOPNZ/LOOPNE
CX-1,CX不為零且ZF=0,循環(huán);若CX=0,或ZF=1,退出循環(huán)。四、子程序調(diào)用和返回指令
指令格式CALL
RET
(1)CALL指令
CALL1000H;段內(nèi)直接調(diào)用
1)、IP入棧:SPSP-2[SP]IP2)、入口地址:IPIP+1000HCALLNEARBCD1;段內(nèi)直接調(diào)用1)IP值入棧:SPSP-2[SP]IP2)入口地址:IPBCD1的偏移地址CALLAX;段內(nèi)間接調(diào)用1)IP值入棧:SPSP-2[SP]IP2)入口地址:IPAX的值CALL2500H:3600H;段間直接調(diào)用1)、CS值入棧2)、IP值入棧3)、IP2500HCS3600HCALLDWORDPTR[DI];段間間接調(diào)用1)、CS值入棧2)、IP值入棧3)、IP[DI]CS[DI+2](2)、返回指令:RET
1)段內(nèi)調(diào)用返回從堆棧彈出一個字到IP2)段間調(diào)用返回從堆棧彈出一個字到IP從堆棧彈出一個字到CS3)RETN:帶參數(shù)返回RET6,返回后,使SP+6。五、中斷指令
1)INTn(1)、標(biāo)志寄存器入棧;(2)、清標(biāo)志位TF、IF;(3)、CS、DS值入棧;(4)、計算中斷地址:n4:低地址單元入IP高地址單元入CS
2)INTO:溢出中斷3)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024固廢處理設(shè)施建設(shè)及運營管理合同
- 《城鎮(zhèn)污泥對沙地樟子松人工林土壤-植物系統(tǒng)的影響研究》
- 《MOFs基Pickering乳液的制備及其對Deacetalization-Knoevenagel串聯(lián)反應(yīng)的催化研究》
- 《農(nóng)民工市民化視角下的農(nóng)村土地流轉(zhuǎn)問題研究》
- 《武陵山湘鄂片區(qū)茶產(chǎn)業(yè)競爭力研究》
- 《大西洋真鱈魚皮膠原蛋白-肉桂精油復(fù)合膜的制備及應(yīng)用研究》
- 2024年興安c1客運從業(yè)資格證考試
- 2024年房產(chǎn)中介服務(wù)最高額傭金合同
- 2024年陜西客運資格證考試考什么
- 2024年鄭州申請客運從業(yè)資格證條件
- (試卷)建甌市2024-2025學(xué)年第一學(xué)期七年級期中質(zhì)量監(jiān)測
- 《安徽省二年級上學(xué)期數(shù)學(xué)期末試卷全套》
- 2024年企業(yè)業(yè)績對賭協(xié)議模板指南
- “全民消防生命至上”主題班會教案(3篇)
- 2024年海南省高考歷史試卷(含答案解析)
- 2024年湖北武漢大學(xué)化學(xué)與分子科學(xué)學(xué)院招聘1人(實驗中心)歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 2024新能源光伏電站運行規(guī)程和檢修規(guī)程
- 三年級美術(shù)上冊全冊教案(湘教版)
- 2024版成人術(shù)中非計劃低體溫預(yù)防與護理培訓(xùn)課件
- 24秋國家開放大學(xué)《當(dāng)代中國政治制度》形考任務(wù)1-4參考答案
- “以德育心,以心育德”
評論
0/150
提交評論