已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
13.3匯編語(yǔ)言和高級(jí)語(yǔ)言程序的連接 由于使用高級(jí)語(yǔ)言編寫(xiě)及調(diào)試程序比匯編語(yǔ)言的開(kāi)發(fā)效率高,可移植性好,所以,高級(jí)語(yǔ)言比匯編語(yǔ)言使用更廣泛。但是在要求實(shí)時(shí)性高、占用空間少或要求直接控制硬件的場(chǎng)合,仍然要用到匯編語(yǔ)言,實(shí)現(xiàn)對(duì)硬件直接控制和更快的控制速度。但匯編語(yǔ)言編程復(fù)雜、表達(dá)能力也差,因此比較好的解決辦法是C語(yǔ)言與匯編語(yǔ)言混合編程。 目前主要的語(yǔ)言程序開(kāi)發(fā)環(huán)境有:urbo 、orland C/C+,Visual C+等,都支持與匯編語(yǔ)言的混合編程。語(yǔ)言與匯編語(yǔ)言的混合編程方法一般有兩種方法可以實(shí)現(xiàn),即在C語(yǔ)言中嵌入?yún)R編語(yǔ)言,也稱(chēng)嵌入式編程和用 語(yǔ)言調(diào)用匯編語(yǔ)言模塊,即多模塊混合編程。,1.匯編語(yǔ)言的嵌入式編程 1內(nèi)嵌匯編語(yǔ)句格式,在urbo 中,C程序中嵌入的匯編語(yǔ)句前必須以關(guān)鍵字ASM開(kāi)頭,其格式為: ASM /*注釋*/ 其中ASM為關(guān)鍵字,操作碼可以是處理器指令也可以是偽指令,操作數(shù)是操作碼可以接受的數(shù)據(jù),可以是指令允許的立即數(shù),寄存器名,也可以是C程序中的常量、變量和標(biāo)號(hào)。C程序中嵌入?yún)R編代碼后可以有分號(hào)也可無(wú)分號(hào),如果匯編代碼后無(wú)分號(hào)則必須以換行符結(jié)束(嵌入的匯編語(yǔ)句是C語(yǔ)言中唯一可以換行結(jié)束的語(yǔ)句),如果匯編代碼后有分號(hào),則一行中可以有多條嵌入的匯編語(yǔ)句,但一條匯編指令不能跨越兩行。 特別要注意的是,嵌入的匯編語(yǔ)句的注釋方式須采用C語(yǔ)言的注釋方式,即必須用/*/來(lái)標(biāo)記注釋。而不能像純匯編那樣用(;)作為一條注釋的開(kāi)始。如:,ASM MOV AX,DX; /*單個(gè)語(yǔ)句*/ ASM PUSH AX;ASM POP AX;ASM MOV BX, AX;/*多個(gè)語(yǔ)句寫(xiě)在一行 */ 如果在C語(yǔ)言程序中要嵌入多個(gè)ASM語(yǔ)句,可以將它們放在花括號(hào)內(nèi)。如: ASM MOV AX,DX PUSH AX /*注釋*/ 在C程序中,函數(shù)內(nèi)部的匯編語(yǔ)句都是一條可執(zhí)行的語(yǔ)句,它被編進(jìn)程序的代碼段,在函數(shù)外部的匯編語(yǔ)句是一個(gè)外部說(shuō)明,在編譯時(shí)放在程序的數(shù)據(jù)段中。這些外部數(shù)據(jù)可以被其他程序引用。,2轉(zhuǎn)移指令的執(zhí)行 內(nèi)嵌匯編指令可以使用轉(zhuǎn)移指令和LOOP循環(huán)指令,但是它們只能在函數(shù)體內(nèi)有效,不允許進(jìn)行段間轉(zhuǎn)移。由于ASM語(yǔ)句中不能給出標(biāo)號(hào),因而轉(zhuǎn)移指令只能使用C語(yǔ)言程序中GOTO語(yǔ)句使用的標(biāo)號(hào)。例如: int fun1( ) label: asm jmp label ,3.直接嵌入?yún)R編代碼的C語(yǔ)言程序示例,例 編寫(xiě)一個(gè)三個(gè)整數(shù)的求和的C函數(shù),用在C語(yǔ)言中嵌入?yún)R編語(yǔ)言方法實(shí)現(xiàn)。 int Sum ( int X, int Y, int Z) ASM PUSH AX; /*保護(hù)現(xiàn)場(chǎng),否則可能影響前面的程序執(zhí)行*/ ASM MOV AX, X; ASM ADD AX, Y; ASM ADD AX, Z; ASM MOV X , AX; ASM POP AX; /*恢復(fù)現(xiàn)場(chǎng)*/ return (X) ,例 .用嵌入?yún)R編的方法編寫(xiě)實(shí)現(xiàn)求兩個(gè)整數(shù)中的最小值的C語(yǔ)言函數(shù)。 int min(int v1,int v2) ASM MOV AX,v1 ASM CMP AX,v2 ASM JLE over; ASM MOV AX,v2 over: return(_AX); /*_AX為AX寄存器*/ ,內(nèi)嵌匯編指令的C程序只能采用TCC命令行的編譯連接方法。用TCC命令行實(shí)現(xiàn)的編譯連接的方法是: TCC -B-L: LIB 文件名 庫(kù)文件名 其中-L選擇項(xiàng)指定了連接所需的庫(kù)文件路徑,文件名指有內(nèi)嵌匯編指令的C程序名,庫(kù)文件指程序重要用到的庫(kù)函數(shù)所在的庫(kù)文件(Turbo C標(biāo)準(zhǔn)庫(kù)可省略)。 內(nèi)嵌匯編指令的C程序進(jìn)行編譯時(shí),必須要有-B選擇項(xiàng),否則編譯時(shí),一旦遇到匯編代碼,便立即給出警告信息,并以-B選項(xiàng)重新進(jìn)行編譯,若在C程序中加上#program inline預(yù)處理語(yǔ)句,則可省略-B選擇,2.在C程序中直接調(diào)用匯編子程序,在C語(yǔ)言中直接嵌入?yún)R編語(yǔ)句的方法限制較多,不能充分發(fā)揮匯編語(yǔ)言的功能。一種更好的方法是把需要用匯編實(shí)現(xiàn)的工作設(shè)計(jì)成匯編子程序,然后由C語(yǔ)言調(diào)用。 在設(shè)計(jì)能被C調(diào)用的匯編子程序時(shí),可以使用完整的段定義或者簡(jiǎn)化的段定義結(jié)構(gòu)。 2.1編寫(xiě)匯編子程序注意的問(wèn)題 (1)變量和函數(shù)的使用 (2)參數(shù)傳遞 (3)寄存器使用規(guī)則 (4).存儲(chǔ)模式規(guī)則,(1)變量和函數(shù)的使用,C程序中可以調(diào)用匯編子程序及定義的變量,匯編子程序也可以調(diào)用C語(yǔ)言書(shū)寫(xiě)的函數(shù)和定義的變量。但是,C語(yǔ)言編譯系統(tǒng)在編譯C語(yǔ)言源程序時(shí),要在其中的變量名、過(guò)程名、函數(shù)名等標(biāo)識(shí)符前面加下劃線“_”。 例如,在C語(yǔ)言程序中變量name,在編譯以后變量變?yōu)開(kāi)name。依次在匯編語(yǔ)言中調(diào)用C語(yǔ)言的函數(shù)和變量時(shí),應(yīng)在函數(shù)名和變量名前面加上下劃線“_”。并在匯編語(yǔ)言程序的開(kāi)始部分,應(yīng)對(duì)調(diào)用的函數(shù)和變量用EXTERN加以說(shuō)明。 其格式為: EXTERN_函數(shù)名:函數(shù)類(lèi)型 EXTERN_函數(shù)名:變量類(lèi)型,其中,函數(shù)類(lèi)型指明該函數(shù)是一個(gè)近程或遠(yuǎn)程函數(shù)(NEAR或FAR),變量類(lèi)型為變量的數(shù)據(jù)類(lèi)型。 其對(duì)應(yīng)關(guān)系: C語(yǔ)言 匯編語(yǔ)言 數(shù)據(jù)長(zhǎng)度(字節(jié)) Char DB(BYTE) 1 int short DW(WORD) 2 long DD(DWORD) 4 float double DQ(QWORD) 8 例如調(diào)用C程序中名為myfunc( )的函數(shù)和變量mem等,則在C語(yǔ)言程序中說(shuō)明為: int myfunc(vido); int mem; char ch; long result,在調(diào)用它的匯編子程序中說(shuō)明為: extern _ myfunc:char extrn_mem:word,ch:byte,result:dword 若C程序調(diào)用匯編語(yǔ)言中的子程序或變量,則在匯編語(yǔ)言中用public進(jìn)行說(shuō)明,且函數(shù)名和變量名前用下劃線。如: public _myfunc01 public_num 而在C語(yǔ)言中則應(yīng)將其說(shuō)明為extern,即: extern myfunc01( ); extern num; 要注意此處不能帶有下劃線,同時(shí)要注意C語(yǔ)言對(duì)大小寫(xiě)敏感的問(wèn)題。,(2)參數(shù)傳遞 C語(yǔ)言調(diào)用匯編子程序時(shí),參數(shù)是通過(guò)堆棧傳遞給匯編子程序的,要注意C語(yǔ)言程序參數(shù)入棧的的順序是從右到左,在執(zhí)行匯編子程序前還要將返回地址壓入堆棧。由于堆棧是向下生長(zhǎng)的,故每入棧一次。棧指針都相應(yīng)減少;而在出棧時(shí)相反。 例如,在C程序中說(shuō)明一個(gè)用匯編書(shū)寫(xiě)的函數(shù),若在小內(nèi)存模式下編譯,則表示為: void abc(char*p1,int p2); 在大內(nèi)存模式下編譯,則要說(shuō)明為遠(yuǎn)程的,如下所示: void far abc(char*p1,int p2); 在大內(nèi)存模式下,要將相應(yīng)的段地址和便移地址入棧。,3.寄存器使用規(guī)則 在C語(yǔ)言中調(diào)用的匯編語(yǔ)言模塊中,通常匯編程序可以任意使用計(jì)算機(jī)內(nèi)部的通用寄存器,如AX、BX、CX、DX、ES等。這些通用寄存器的值在調(diào)用后可以發(fā)生改變,標(biāo)志寄存器的值也可以發(fā)生改變。但有些寄存器如:DS、CS、SS、BP、SP等,如果在調(diào)用的匯編語(yǔ)言程序中有用到,則必須先進(jìn)行保護(hù)(入棧),退出前加以恢復(fù)(出棧)。變址寄存器SI和DI如在調(diào)用匯編語(yǔ)言程序中使用到也要加以保護(hù)。,4.存儲(chǔ)模式規(guī)則 在TURBO C中提供了6種不同的存儲(chǔ)模式,分別對(duì)應(yīng)6種不同的匯編語(yǔ)言存儲(chǔ)模式。即對(duì)不同的C語(yǔ)言存儲(chǔ)模式(極小、小、緊湊、中、大和巨)要選用相應(yīng)的匯編語(yǔ)言存儲(chǔ)模式,如C程序?yàn)樾∧J?匯編程序也用小模式,C程序?yàn)榇竽J?匯編也用大模式等。 設(shè)定匯編語(yǔ)言的存儲(chǔ)模式可采用.MODEL偽指令,設(shè)定TUBRO C的存儲(chǔ)模式可利用TCC命令行的選項(xiàng)-m。 下面是一個(gè)C語(yǔ)言程序調(diào)用匯編語(yǔ)言子程序的例子,假定C語(yǔ)言主程序存放在文件c_main.c和masm_sub.asm中,c_main.c文件: extern int divs(int,int); /*聲明divs為外部函數(shù)*/ main ( ) printf(“%dn”,divs(16,3);/*調(diào)用外部函數(shù)*/ ,masm_sub.asm文件 .MODEL SMALL ;采用小模式 .CODE PUBLIC divs ;指明該過(guò)程可被外部調(diào)用 divs proc PUSH BP ;保護(hù)bp MOV BP,SP MOV AX,BP+4 ;參數(shù) MOV CX,BP+6 ;另一個(gè)參數(shù) SHR AX,CL POP BP ;恢復(fù)bp RET divs ENDP END,其中偽指令model small 對(duì)應(yīng)C的小模式編譯;code 標(biāo)志一個(gè)代碼段的開(kāi)始,這是MASM 5.0的簡(jiǎn)化段格式;puplic divs 說(shuō)明divs是公用的,可以由外部其它單獨(dú)編譯模塊調(diào)用。 將C源程序以文件名c_main.c存盤(pán),匯編語(yǔ)言源程序以文件名masm_sub.asm 存盤(pán);再分別用各自的編譯系統(tǒng),編譯成目標(biāo)程序c_main.obj和masm_sub.obj;最后用link連接程序,將兩個(gè)目標(biāo)程序連 接成可執(zhí)行程序c_main.exe。 其實(shí),匯編語(yǔ)言與C語(yǔ)言混合編程時(shí),除了可以在C語(yǔ)言中調(diào)用匯編語(yǔ)言子程序,也可以在匯編語(yǔ)言代碼中調(diào)用C語(yǔ)言函數(shù),但在調(diào)用時(shí)要注意函數(shù)參數(shù)的傳遞方法。詳情請(qǐng)參見(jiàn)有關(guān)文獻(xiàn)資料。,3使用C和匯編語(yǔ)言混合編程的編譯及連接 對(duì)于用C語(yǔ)言和匯編語(yǔ)言分別獨(dú)立編寫(xiě)的符合以上要求的程序,要想使它們最終形成一個(gè)系統(tǒng),需要對(duì)他們進(jìn)行編譯和連接,以便生成一個(gè)可執(zhí)行文件。 在混合編程時(shí)要注意,C程序和匯編語(yǔ)言子程序所采用的內(nèi)存模式,當(dāng)都是小/微/緊湊模式時(shí),在C程序的說(shuō)明部分是需要說(shuō)明為EXTERN即可,否則必須說(shuō)明為FAR型,下面是在Turbo C環(huán)境下同為小內(nèi)存模式的混合編程的例子。 例 : 從6個(gè)數(shù)中找出其中的最大數(shù)并顯示。要求查找最大數(shù)的功能由匯編語(yǔ)言子程序max-num實(shí)現(xiàn)。,(1)編寫(xiě)源程序 匯編子程序使用簡(jiǎn)化的段格式編寫(xiě)。C程序調(diào)用該子程序時(shí),共傳遞7個(gè)參數(shù),第一個(gè)為數(shù)據(jù)的個(gè)數(shù),其余為數(shù)據(jù)部分。 源程序如下: #include /*program name :c_max.c*/ int extern max_num(int count,int v1,int v2,int v3,int v4,int v5,int v6); main () int i; i=max_num(6,-35,17,0,63.121,112); printf(“n the maximum of the 6 numbers %d,i); ,對(duì)應(yīng)的匯編程序如下: .model small ;program name :asm_max.asm .code public _max_num _max_num proc near push bp mov bp,sp mov cx,bp+4 ;取數(shù)據(jù)個(gè)數(shù) jcxz exit mov ax,bp+6 ;取第一個(gè)數(shù)據(jù) comp: add bp,2 ;修改地址指針 cmp ax,bp+6 ;兩數(shù)比較 jge gtest mov ax,bp+6 ;大數(shù)放在AX中 gtest: loop comp exit: pop bp ret _max_num endp end,(2)編譯和連接 在DOS環(huán)境下,用TASM或MASM將匯編語(yǔ)言子程序(asm_max_asm)編譯生成目標(biāo)文件.obj(asm_max.obj)。例如:tasm asm_max. 在TC主界面下,單擊主菜單中的project項(xiàng),選中子項(xiàng)project name,輸入一個(gè)后綴為為.prj的工程文件(例如max.prj)該文件包含需要編譯連接的C語(yǔ)言源程序和它調(diào)用的匯編語(yǔ)言子程序的目標(biāo)文件名,對(duì)于本例,其內(nèi)容為: c_max.c asm_max.obj,關(guān)閉大小寫(xiě)敏感開(kāi)關(guān),即把Options選項(xiàng)的Linker的Case-sensitive Link置成OFF。 按F9鍵對(duì)工程文件進(jìn)行編譯連接,生成一個(gè).exe文件,本例為max.exe. 在DOS環(huán)境下輸入MAX運(yùn)行該可執(zhí)行程序。 對(duì)于不是小/微/緊湊內(nèi)存模式下的混合編程,C程序必須把被調(diào)用的匯編子程序說(shuō)明為遠(yuǎn)程函數(shù),若有函數(shù)參數(shù)為指針類(lèi)型時(shí),也要說(shuō)明成FAR型,即它包含段地址和便移地址兩部分。,例:求若干個(gè)16位帶符號(hào)數(shù)之和,其和為32位數(shù)。 要求求和程序用匯編語(yǔ)言編寫(xiě),而定義數(shù)據(jù)和及顯示用C語(yǔ)言編寫(xiě)。 參考程序如下: extern long asum(int*,int); int buf5=10000,-20000,30000,6000,0); main( ) long x; x=asum(buf,5); printf(“x=%dn”,x) ,在C函數(shù)中聲明asum是外部函數(shù),并定義了若干個(gè)數(shù)組元素,然后調(diào)用匯編子程序asum求和,最后把結(jié)果顯示在屏幕上。 在匯編程序中首先聲明asum子程序是公用的,然后使用由堆棧傳遞的數(shù)組開(kāi)始地址及元素個(gè)數(shù),從數(shù)組中取出元素求和,返回的32位結(jié)果在DX:AX中。,4 匯編語(yǔ)言程序調(diào)用C函數(shù) 如同C語(yǔ)言程序調(diào)用匯編語(yǔ)言子程序一樣,在匯編語(yǔ)言中調(diào)用C函數(shù)時(shí)也要按有關(guān)約定編程。 在匯編語(yǔ)言中,對(duì)所使用的C函數(shù)和變量名在其名字前均應(yīng)加下劃線。例如,調(diào)用一個(gè)C函數(shù)func(),則在匯編程序中應(yīng)寫(xiě)作call_func. 對(duì)調(diào)用的C函數(shù)用EXTERN偽指令加以說(shuō)明。若函數(shù)為NEAR型,EXTERN語(yǔ)句可以放在代碼段中,為FAR型,則要放在所有的段之外。 對(duì)匯編語(yǔ)句中使用的C函數(shù)變量用“EXTERN變量名:size”說(shuō)明,其中,SIZE視數(shù)據(jù)類(lèi)型而定。例如int 型為2。 參數(shù)傳遞有兩種,一種是在C程序中定義變量,在匯編程序中把它說(shuō)明成EXTERN型,另一種是采用堆棧傳遞,這時(shí)要注意壓入堆棧的順序。,4 MASM6.0匯編語(yǔ)言程序上機(jī) 匯編語(yǔ)言程序上機(jī)過(guò)程分為編輯、匯編、連接和調(diào)試4個(gè)步驟。 (1)編輯源程序 編輯源程序是利用文本編輯工具生成一個(gè)由匯編語(yǔ)言語(yǔ)句構(gòu)成的文本文件,文件擴(kuò)展名為.ASM,擴(kuò)展名不能省略。 (2)匯編源程序 匯編語(yǔ)言源程序不能直接執(zhí)行,必須轉(zhuǎn)換為機(jī)器語(yǔ)言程序,這個(gè)過(guò)程叫匯編。最常用的匯編工具為MASM軟件,它有很多版本,這里主要介紹MASM6.X。MASM6.X包含了許多文件,最常用的文件有: ML.EXE 匯編程序 LINK.EXE 連接程序 CV.EXE 調(diào)試程序Code View,1.匯編程序ML.EXE(Masm and Link) ML可以自動(dòng)調(diào)用LINK,實(shí)現(xiàn)對(duì)程序的匯編和連接。設(shè)源文件名為MYFILE.ASM,匯編的基本命令格式為: ML/c MYFILE.ASM 其中,源文件的擴(kuò)展名為.ASM。若程序無(wú)語(yǔ)法錯(cuò)誤,則匯編后將生成MYFILE.OBJ文件。此外若不帶參數(shù)/c,直接使用命令; ML MYFILE.ASM 則ML將自動(dòng)調(diào)用連接程序LINK進(jìn)行連接,生成MYFILE.OBJ與MYFILE.EXE,這樣就不需要單獨(dú)使用LINK命令。 ML包含很多命令參數(shù),使用命令/?可以列出ML允許的所有參數(shù)及其說(shuō)明。ML命令格式如下: ML/選項(xiàng)源文件列表/LINK連接選項(xiàng),其中,方括號(hào)中的內(nèi)容為可選項(xiàng)。ML后的參數(shù)是大小寫(xiě)敏感的?!?選項(xiàng)”是可選的一個(gè)或多個(gè)參數(shù),每
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)光學(xué)儀器行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)幼小銜接教育行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)旅游行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)休閑餐飲行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)知識(shí)密集型服務(wù)行業(yè)營(yíng)銷(xiāo)創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)鉭電容器行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢(shì)下智能門(mén)鎖行業(yè)轉(zhuǎn)型升級(jí)戰(zhàn)略制定與實(shí)施研究報(bào)告
- 德州黑陶品牌推廣調(diào)研
- 單位辦公室2025年工作要點(diǎn)
- 護(hù)肝藥品知識(shí)培訓(xùn)課件
- 梁平法制圖規(guī)則及鋼筋翻樣講解
- 乙肝 丙肝培訓(xùn)課件
- 2024屆湖北省武漢實(shí)驗(yàn)外國(guó)語(yǔ)學(xué)校數(shù)學(xué)七上期末統(tǒng)考模擬試題含解析
- 基于深度學(xué)習(xí)的網(wǎng)絡(luò)釣魚(yú)郵件識(shí)別技術(shù)研究
- 融資成本視角下的船舶融資租賃模式研究
- 感冒中醫(yī)理論知識(shí)課件
- 2023年希望杯數(shù)學(xué)培訓(xùn)100題-六年級(jí)(含答案)
- 一年級(jí)科學(xué)人教版總結(jié)回顧2
- 個(gè)人住房貸款提前還款月供及節(jié)省利息EXCEL計(jì)算
- 第五單元《圓》教材解析-人教版數(shù)學(xué)六年級(jí)上冊(cè)
- 患者突發(fā)昏迷應(yīng)急預(yù)案演練腳本-
評(píng)論
0/150
提交評(píng)論