




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本教案內(nèi)容第4章
匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)基礎(chǔ)源程序的匯編、連接與調(diào)試分支程序設(shè)計(jì)技術(shù)循環(huán)程序設(shè)計(jì)技術(shù)子程序設(shè)計(jì)技術(shù)綜合程序設(shè)計(jì)示例4.5
子程序設(shè)計(jì)技術(shù)
利用子程序可以大大地簡化匯編語言的程序設(shè)計(jì)。宏指令是以存儲空間作為代價(jià)提高執(zhí)行速度的,而子程序是以降低執(zhí)行速度來節(jié)省存儲空間的。建議在多次調(diào)用較短的程序時使用宏指令,在多次調(diào)用較長的程序時使用子程序。在子程序設(shè)計(jì)過程中,有幾個問題需要特別注意:一:主程序與子程序之間的參數(shù)傳遞在設(shè)計(jì)子程序時,需要從主程序獲取數(shù)據(jù),這種數(shù)據(jù)稱為入口參數(shù),同時子程序執(zhí)行后可能有結(jié)果數(shù)據(jù)要送給主程序,這種數(shù)據(jù)稱為出口參數(shù)。主程序與子程序之間對入口參數(shù)和出口參數(shù)的傳遞有三種方式:(一)寄存器參數(shù)傳遞方式(二)存儲單元參數(shù)傳遞方式(三)堆棧參數(shù)傳遞方式4.5
子程序設(shè)計(jì)技術(shù)
二、子程序說明文件子程序?yàn)楣δ塥?dú)立的程序段,而且會為主程序多次調(diào)用。因此為方便使用,在編寫并調(diào)試好子程序后,應(yīng)該及時給子程序編寫相應(yīng)的說明文件,其內(nèi)容應(yīng)該包含下列6個部分:1、子程序名2、子程序所完成的功能3、入口參數(shù)及其傳遞方式4、出口參數(shù)及其傳遞方式5、子程序用到的寄存器6、典型例子4.5
子程序設(shè)計(jì)技術(shù)
這里,子程序用到的寄存器是指執(zhí)行子程序后可能被改變的寄存器,子程序中應(yīng)該盡量少改變幾個寄存器的內(nèi)容,為此,需要在子程序的入口處對某些寄存器進(jìn)行保護(hù),而在出口處再恢復(fù)其內(nèi)容,這樣,雖然子程序中使用了這些寄存器,但從入口到出口看,這些寄存器的內(nèi)容并沒有改變,它們就不屬于子程序用到的寄存器。在主程序設(shè)計(jì)時,就不必關(guān)心這些寄存器的內(nèi)容。4.5
子程序設(shè)計(jì)技術(shù)
三、子程序的嵌套在子程序中還可以調(diào)用其他的子程序,這時就形成的子程序的嵌套如圖4-5。采用嵌套子程序設(shè)計(jì),可以使程序結(jié)構(gòu)模塊化,便于編程和應(yīng)用。但子程序的嵌套級數(shù)不是越多越好,而是應(yīng)該適可而止,嵌套級數(shù)越多,出錯的可能性就越多,這樣不利于程序設(shè)計(jì)。
在設(shè)計(jì)嵌套子程序時,編程時可以從上到下設(shè)計(jì),調(diào)試時應(yīng)該由下至上進(jìn)行,因?yàn)橹挥刑幱谙聦拥淖映绦蛘_后,才能對上層的子程序進(jìn)行調(diào)試。圖4-5多層子程序嵌套示意圖4.5
子程序設(shè)計(jì)技術(shù)
四、遞歸子程序在嵌套調(diào)用中,被調(diào)用的子程序?yàn)槠渌映绦?。?dāng)被調(diào)用的子程序是其自身時,就形成了遞歸調(diào)用,這種子程序稱為遞歸子程序。不是所有的子程序都可以遞歸調(diào)用的,設(shè)計(jì)遞歸子程序是一個較為復(fù)雜的過程,遞歸子程序必須具備兩個基本條件:(1)采用堆棧參數(shù)傳遞方式,這樣才能保證本次調(diào)用與下次調(diào)用采用不同的參數(shù),即每次調(diào)用給入口和出口參數(shù)都分配不同的存儲區(qū)域。(2)必須設(shè)定遞歸結(jié)束條件。設(shè)計(jì)遞歸子程序還應(yīng)該有清晰的編程思路和明確的程序結(jié)構(gòu)。設(shè)計(jì)遞歸子程序可以降低程序?qū)Υ鎯θ萘啃枨?,但現(xiàn)在計(jì)算機(jī)的存儲容量已經(jīng)不是問題了,因此,用戶應(yīng)該盡量避免采用遞歸子程序。4.5
子程序設(shè)計(jì)技術(shù)
五、可再入性子程序在執(zhí)行子程序期間,CPU可能會因?yàn)橛兄袛嗾埱蠖D(zhuǎn)向中斷服務(wù)子程序,如果在中斷服務(wù)程序中又調(diào)用了該子程序,這樣就形成了如圖4.6所示的情況(①②③為執(zhí)行流程),子程序的一次調(diào)用還沒有執(zhí)行完成,又調(diào)用了該子程序,如果這兩次調(diào)用都能夠得到正確的結(jié)果,則該子程序稱為可再入性子程序。4.5
子程序設(shè)計(jì)技術(shù)
可再入性子程序也需要采用堆棧參數(shù)傳遞方式,而且設(shè)計(jì)過程較為復(fù)雜,因此建議用戶盡量避免設(shè)計(jì)可再入性子程序。這里給出一種回避的較好方式,即將原本要求為可再入性的子程序復(fù)制出一份,專門供中斷服務(wù)子程序調(diào)用,這樣可以巧妙地回避可再入性子程序的設(shè)計(jì)。
例4.9編寫子程序?qū)崿F(xiàn)給緩沖區(qū)BUF中的一組字符的ASCII碼加上偶校驗(yàn)位。解:每個字符的ASCII碼只占用7位二進(jìn)制數(shù),其最高位為0。我們可以根據(jù)這7位二進(jìn)制數(shù)中“1”的個數(shù),給最高位加上“0”或“1”,使得一個字節(jié)內(nèi)容的“1”個數(shù)為偶數(shù),這稱為偶檢驗(yàn)。4.5
子程序設(shè)計(jì)技術(shù)
設(shè)計(jì)的子程序(SETEVEN)用于對BUFFER中的字符ASCII碼加上偶檢驗(yàn)位,其入口參數(shù)為:DI(緩沖區(qū)首地址,默認(rèn)為DS段),(CX)緩沖區(qū)長度;出口參數(shù):無(實(shí)際上是緩沖區(qū)的內(nèi)容);用到的寄存器:無。匯編語言程序如下:STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDS N=22DATASEGMENTBUFFERDB'xidianuniversity2006'DATAENDSCODESEGMENT4.5
子程序設(shè)計(jì)技術(shù)
ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP MOVCX,N LEADI,BUFFER CALLSETEVENMOVAH,4CH;返回DOSMOVAL,0INT21H4.5
子程序設(shè)計(jì)技術(shù)
SETEVENPROCNEAR ;加上偶校驗(yàn)子程序 PUSHAX PUSHBX PUSHCX PUSHDISETEVEN1: MOVAL,[DI] CALLCOUNTBYTE ANDBL,01H ;測試“1”的個數(shù)是否為偶數(shù) JZSETEVEN2 ORAL,80H ;最高位置入“1” MOV[DI],AL4.5
子程序設(shè)計(jì)技術(shù)
SETEVEN2: INCDI LOOPSETEVEN1 POPDI POPCX POPBX POPAX RETSETEVEN ENDPCOUNTBYTEPROCNEAR ;子程序:統(tǒng)計(jì)一個字節(jié)內(nèi)容中“1”的個數(shù)PUSHAX PUSHCX MOVCX,8 XORBL,BL4.5
子程序設(shè)計(jì)技術(shù)
COU1: SHRAL,1 ADCBL,0 LOOPCOU1 POPCXPOPAXRETCOUNTBYTEENDPCODE ENDS ENDSTART這里調(diào)用了統(tǒng)計(jì)一個字節(jié)內(nèi)容中“1”的個數(shù)的子程序COUNTBYTE,其入口參數(shù)為AL,出口參數(shù)為BL,子程序用到的寄存器為BL。
4.5
子程序設(shè)計(jì)技術(shù)
例4.10編寫子程序TRANS16TO10,將16位二進(jìn)制數(shù)(AX)轉(zhuǎn)換成十進(jìn)制數(shù),并保存在指定的緩沖區(qū)中。解:16位二進(jìn)制數(shù)x至多可以用5位十進(jìn)制數(shù)進(jìn)行表示,其轉(zhuǎn)換算法和步驟為:●將x除以10得到商x1和余數(shù)y1,其中y1就是轉(zhuǎn)換結(jié)果的最低位(個位);●將x1再除以10得到商x2和余數(shù)y2,其中y2就是轉(zhuǎn)換結(jié)果的十位;●依次類推,得到y(tǒng)3、y4和y5,分別為轉(zhuǎn)換結(jié)果第三~五位??梢钥隙?,x5=0,y5位為轉(zhuǎn)換結(jié)果的最高位。設(shè)計(jì)的子程序TRANS16TO10,其入口參數(shù):AX(待轉(zhuǎn)換的數(shù)據(jù)),DI(轉(zhuǎn)換結(jié)果存儲區(qū)域首地址),出口參數(shù):存儲區(qū)域的內(nèi)容。4.5
子程序設(shè)計(jì)技術(shù)
匯編語言子程序如下:TRANS16TO10 PROCNEAR PUSHAX PUSHBX PUSHCX PUSHDX PUSHDI MOVBX,10 MOVCX,5TRANS1: XORDX,DX DIVBX
MOV[DI],DL INCDI LOOPTRANS14.5
子程序設(shè)計(jì)技術(shù)
POPDI POPDX POPCX POPBX POPAX RETTRANS16TO10 ENDP例4.11編寫子程序DISPAXD,將16位二進(jìn)制數(shù)(AX)轉(zhuǎn)換成十進(jìn)制數(shù),并在顯示在屏幕上。解:利用上例將AX轉(zhuǎn)換成5個十進(jìn)制數(shù)位,然后利用INT21H的02號功能進(jìn)行顯示,這時需要將十進(jìn)制的數(shù)位變換成相應(yīng)的ASCII碼。設(shè)計(jì)出的子程序DISPAXD,其入口參數(shù):AX,出口參數(shù):屏幕顯示,這里要用到一個5字節(jié)的臨時存儲單元,用于存放十進(jìn)制的數(shù)位。4.5
子程序設(shè)計(jì)技術(shù)
匯編語言程序如下:STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTDECIMALDB5DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AX4.5
子程序設(shè)計(jì)技術(shù)
MOVAX,STACKMOVSS,AXLEASP,TOPMOVAX,23456CALLDISPAXDMOVAH,4CH;返回DOS操作系統(tǒng)MOVAL,0INT21HDISPAXD PROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDI4.5
子程序設(shè)計(jì)技術(shù)
LEADI,DECIMAL
CALLTRANS16TO10MOVCX,5LEADI,DECIMAL+4MOVAH,2DISPAXD2:MOVDL,[DI]ADDDL,30HDECDIINT21HLOOPDISPAXD2POPDIPOPDXPOPCX4.5
子程序設(shè)計(jì)技術(shù)
POPBXPOPAXRETDISPAXDENDPTRANS16TO10PROCNEAR;內(nèi)容參見例4.10TRANS16TO10ENDPCODEENDSENDSTART例4.12編寫子程序?qū)崿F(xiàn):將輸入緩沖區(qū)中以ASCII碼表示的十進(jìn)制數(shù)轉(zhuǎn)換成16位二進(jìn)制數(shù)。緩沖區(qū)的第一個字節(jié)表示位數(shù),后續(xù)單元存儲十進(jìn)制數(shù),高位在前,低位在后。如果轉(zhuǎn)換結(jié)果超出一個字的范圍,則在BX中置出錯標(biāo)志(FFFFH)。
4.5
子程序設(shè)計(jì)技術(shù)
解:這種存放格式與通過鍵盤輸入十進(jìn)制數(shù)的格式一致。變換算法與例4.9相反,設(shè)十進(jìn)制數(shù)字符變換成數(shù)值后為x1~x5,x1為最低位,則變換結(jié)果y為:
y=10*(10*(10*(10*x5+x4)+x3)+x2)+x1據(jù)此可以編寫出子程序TRANS10TO16,入口參數(shù):SI(緩沖區(qū)首地址);出口參數(shù):AX(變換結(jié)果)和BX(變換結(jié)果是否出錯標(biāo)志);用到的寄存器:AX和BX。子程序如下:TRANS10TO16 PROCNEAR PUSHCX PUSHDX PUSHSI XORAX,AX4.5
子程序設(shè)計(jì)技術(shù)
XORCX,CX MOVCL,[SI] INCSI MOVAL,[SI] INCSI SUBAL,30H DECCX JCXZTRANSF2 MOVBX,10TRANSF1: MULBX JCTRANSF_ERR MOVDL,[SI] INCSISUBDL,30H4.5
子程序設(shè)計(jì)技術(shù)
ADDAL,DL ADCAH,0 JCTRANSF_ERR LOOPTRANSF1 MOVBX,0 TRANSF2: JMPTRANSF_OKTRANSF_ERR: MOVBX,-1TRANSF_OK: POPSI POPDX POPCX RETTRANS10TO16 ENDP4.5
子程序設(shè)計(jì)技術(shù)
例4.13利用鍵盤輸入十進(jìn)制的無符號數(shù),編寫程序完成轉(zhuǎn)換成相應(yīng)的16位二進(jìn)制數(shù)。解:可以直接利用例4.11編寫的子程序完成轉(zhuǎn)換操作。通過鍵盤輸入數(shù)據(jù)時,需要定義鍵盤緩沖區(qū),并調(diào)用INT21H的0AH號功能。匯編語言程序如下:STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTKEYBUFFER DB100 ;鍵盤緩沖區(qū) DB? DB100DUP(?)STRING1 DB'Pleaseinputdecimaldata:','$' ;輸入提示字符串4.5
子程序設(shè)計(jì)技術(shù)
DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP LEADX,STRING1 ;顯示出“輸入提示字符串” MOVAH,09H INT21H MOVAH,0AH ;輸入十進(jìn)制數(shù)據(jù) LEADX,KEYBUFFER4.5
子程序設(shè)計(jì)技術(shù)
INT21H LEASI,KEYBUFFER+1 ;變換 CALLTRANS10TO16 CALLDISPCR ;屏幕光標(biāo)回車換行 CALLDISPAX ;顯示變換結(jié)果 CALLDISPCR MOVAX,BX CALLDISPAX ;顯示變換結(jié)果是否正確的標(biāo)志(BX)的內(nèi)容MOVAH,4CH;返回DOSMOVAL,0INT21HDISPAXPROCNEAR ;顯示寄存器AX的內(nèi)容子程序,詳見例3.34DISPAXENDP4.5
子程序設(shè)計(jì)技術(shù)
DISPCRPROCNEAR ;屏幕光標(biāo)回車換行子程序PUSHAXPUSHDXMOVAH,2MOVDL,0AHINT21HMOVAH,2MOVDL,0DHINT21HPOPDXPOPAXRETDISPCRENDP4.5
子程序設(shè)計(jì)技術(shù)
TRANS10TO16 PROCNEAR ;詳見例4.12TRANS10TO16 ENDPCODE ENDS ENDSTART
這里,為了方便,設(shè)計(jì)了顯示AX寄存器內(nèi)容的子程序DISPAX,它又調(diào)用了顯示AL寄存器內(nèi)容的子程序。另外給出了使屏幕上光標(biāo)回車換行的子程序DISPCR。這樣,執(zhí)行程序的結(jié)果可以直接顯示在屏幕上,圖4.5給出了三次執(zhí)行的結(jié)果,這說明前兩次程序執(zhí)行的結(jié)果正確,而第三次程序執(zhí)行的結(jié)果出錯。4.5
子程序設(shè)計(jì)技術(shù)
圖4.5程序執(zhí)行過程及其結(jié)果4.5
子程序設(shè)計(jì)技術(shù)
例4.14設(shè)一組16位有符號數(shù)存放在緩沖區(qū)BUFFER中,前兩個字節(jié)用于存放數(shù)據(jù)個數(shù),編寫子程序COMPUTMEAN計(jì)算這組數(shù)據(jù)平均值。解:計(jì)算數(shù)據(jù)平均值的子程序COMPUTMEAN,采用堆棧參數(shù)傳遞方式,人口參數(shù):緩沖區(qū)首地址壓入堆棧;出口參數(shù):計(jì)算出的平均值存入堆棧,采用與保存緩沖區(qū)首地址相同的堆棧單元。匯編語言程序如下:STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDS4.5
子程序設(shè)計(jì)技術(shù)
DATASEGMENTBUFFERDW10 ;假設(shè)有10個數(shù)據(jù)DW521,112,3654,-564,45,-166,771,1288,32709,-32014DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP MOVAX,OFFSETBUFFER4.5
子程序設(shè)計(jì)技術(shù)
PUSHAX ;入口參數(shù)壓入堆棧進(jìn)行傳遞 CALLCOMPUTMEAN POPAX ;出口參數(shù)也通過堆棧得到 CALLDISPAX ;調(diào)用子程序DISPAX顯示AX的內(nèi)容,即數(shù)據(jù)的平均值MOVAH,4CH;返回DOS系統(tǒng)INT21HCOMPUTMEANPROCNEAR ;計(jì)算平均值子程序 PUSHBP MOVBP,SP ;利用指針BP指向堆棧中的固定位置 PUSHSI PUSHDI PUSHAX PUSHBX4.5
子程序設(shè)計(jì)技術(shù)
PUSHCX PUSHDX MOVSI,[BP+4] ;從堆棧中取出入口參數(shù),即數(shù)據(jù)區(qū)的首地址 XORDX,DX XORBX,BX XORDI,DI MOVCX,[SI] ;取數(shù)據(jù)區(qū)長度 PUSHCX ;暫存數(shù)據(jù)個數(shù) ADDSI,2CPTM1: MOVAX,[SI] ADDSI,2 CWD ADDBX,AX4.5
子程序設(shè)計(jì)技術(shù)
ADCDI,DX LOOPCPTM1 MOVDX,DI MOVAX,BX POPBX ;取出數(shù)據(jù)個數(shù) IDIVBX ;求數(shù)據(jù)的平均值CPTM2: MOV[BP+4],AX ;在堆棧中保存數(shù)據(jù)的平均值POPDX POPCX POPBX POPAX POPDI POPSI POPBP4.5
子程序設(shè)計(jì)技術(shù)
RETCOMPUTMEANENDPCODEENDSENDSTART利用堆棧參數(shù)傳遞方式時,一定要搞清楚堆棧的結(jié)構(gòu)和指針的位置,在進(jìn)入子程序后,其堆棧結(jié)構(gòu)與指針如圖4.6所示,隨著子程序中PUSH和POP指令的操作,堆棧指針SP在移動,但BP指針的位置固定不變,因此,可以利用BP指針取出入口參數(shù),同時將處理結(jié)果存放到指定的堆棧區(qū)域。這樣的子程序?yàn)榭稍偃胄宰映绦颉?.5
子程序設(shè)計(jì)技術(shù)
例4.15遞歸子程序設(shè)計(jì)。設(shè)計(jì)子程序完成y=n!的計(jì)算。解:假設(shè)已經(jīng)設(shè)計(jì)了計(jì)算k階階乘的子程序factorial,為說明方便采用f(k)表示,則k+1階階乘可以表示成: f(k+1)=(k+1)×f(k)這樣,計(jì)算n階階乘的過程可以用圖4.7所示。因此,當(dāng)計(jì)算n!時,要調(diào)用n次factorial子程序,每次調(diào)用使k值減1,直到k=1,這時將1!=1作為已知結(jié)果,然后一層一層返回。4.5
子程序設(shè)計(jì)技術(shù)
4.5
子程序設(shè)計(jì)技術(shù)
為設(shè)計(jì)遞歸子程序factorial,需要定義一個字單元RESULT用于存放計(jì)算結(jié)果,因此,factorial的入口參數(shù)為:正整數(shù)k(≤8)和RESULT單元的偏移地址,出口參數(shù)為RESULT單元的內(nèi)容。匯編語言子程序factorial如下:N=7;計(jì)算7!,其結(jié)果應(yīng)該為5040(13B0H)STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTRESULTDW?DATAENDS4.5
子程序設(shè)計(jì)技術(shù)
CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOPLEASI,RESULTPUSHSI ;結(jié)果單元的偏移地址壓入堆棧MOVAX,NPUSHAX ;N值壓入堆棧CALLFACTORIAL4.5
子程序設(shè)計(jì)技術(shù)
MOVAX,RESULT ;取出結(jié)果,并顯示 CALLDISPAXMOVAH,4CH ;返回DOS操作系統(tǒng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川建筑職業(yè)技術(shù)學(xué)院《第二外語(日、韓)》2023-2024學(xué)年第二學(xué)期期末試卷
- 無錫商業(yè)職業(yè)技術(shù)學(xué)院《西方戲劇表演實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年家政技能大賽保潔理論知識復(fù)習(xí)題庫(170題)含答案
- 記賬實(shí)操-因做賬不及時發(fā)言稿
- 休閑圍巾風(fēng)格創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)療設(shè)備管理系統(tǒng)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 古埃及文明博物館行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 神經(jīng)退行性疾病藥物原料創(chuàng)新行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)療知識付費(fèi)與內(nèi)容服務(wù)平臺企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 神經(jīng)退行性疾病藥物原料創(chuàng)新行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 幼兒園繪本故事《三只小豬蓋房子》教學(xué)課件全文
- 機(jī)械工程技術(shù)訓(xùn)練(北京航空航天大學(xué))知到智慧樹章節(jié)答案
- 2023年北京市先農(nóng)壇體育運(yùn)動技術(shù)學(xué)校招聘筆試真題
- 食品行業(yè)供貨周期管理方案
- 傅里葉級數(shù)和傅里葉變換課件
- 國家漢語主題詞表
- (新版)特種設(shè)備安全管理取證考試題庫(濃縮500題)
- 國家開放大學(xué)??啤稒C(jī)械制圖》形考任務(wù)1-4試題及答案
- 四年級下冊數(shù)學(xué)方程題100道及答案
- 小學(xué)數(shù)學(xué)小專題講座《數(shù)學(xué)教學(xué)生活化-》
- 軍隊(duì)文職人員招聘(軍需保管員)歷年考試真題試題庫(含答案)
評論
0/150
提交評論