




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、匯編與匯編與C/C+的混合編程的混合編程要調(diào)用帶參數(shù)過程定義的過程,不應(yīng)采用要調(diào)用帶參數(shù)過程定義的過程,不應(yīng)采用CALL指令,因?yàn)楸容^煩瑣指令,因?yàn)楸容^煩瑣應(yīng)該采用過程調(diào)用偽指令應(yīng)該采用過程調(diào)用偽指令I(lǐng)NVOKE使用使用INVOKE偽指令的前提是需要用偽指令的前提是需要用PROTO偽指令對過程進(jìn)行聲明偽指令對過程進(jìn)行聲明過程聲明和過程調(diào)用偽指令過程聲明和過程調(diào)用偽指令過程名過程名 PROC調(diào)用距離調(diào)用距離 語言類型語言類型 作用范圍作用范圍 USES 寄存器列表寄存器列表, 參數(shù)參數(shù):類型類型LOCAL 參數(shù)表參數(shù)表;匯編語言語句匯編語言語句過程名過程名 ENDP過程聲明偽指令:過程聲明偽指令
2、:用于事先聲明過程的結(jié)構(gòu)用于事先聲明過程的結(jié)構(gòu)過程名過程名PROTO 調(diào)用距離調(diào)用距離 語言類型語言類型, 參數(shù)參數(shù):類型類型過程調(diào)用偽指令過程調(diào)用偽指令I(lǐng)NVOKE 過程名過程名,參數(shù)參數(shù),.如何調(diào)如何調(diào)用用調(diào)用距離調(diào)用距離 調(diào)用距離調(diào)用距離可以是可以是NEAR16、NEAR32、FAR,表示該過程是近,表示該過程是近或遠(yuǎn)調(diào)用。簡化段格式中,缺省值或遠(yuǎn)調(diào)用。簡化段格式中,缺省值由由.model語句選擇的存儲模式?jīng)Q定。語句選擇的存儲模式?jīng)Q定。 語言類型語言類型 語言類型語言類型可以是任何有效的語言類型,可以是任何有效的語言類型,確定該過程采用的命名約定和調(diào)用約定;語確定該過程采用的命名約定和調(diào)
3、用約定;語言類型還可以由言類型還可以由.model偽指令指定偽指令指定 語言類型語言類型CSYSCALLSTDCALLPASCALBASICFORTRAN命名約定命名約定名字前加名字前加下劃線下劃線 名字前加名字前加下劃線下劃線名字變名字變大寫大寫名字大名字大寫寫名字大名字大寫寫參數(shù)傳遞順序參數(shù)傳遞順序從右到左從右到左從右到從右到左左(注)(注)從左到從左到右右從左到從左到右右從左到從左到右右平衡堆棧的程平衡堆棧的程序序調(diào)用程序調(diào)用程序被調(diào)用被調(diào)用程序程序被調(diào)用程被調(diào)用程序序被調(diào)用被調(diào)用程序程序被調(diào)用被調(diào)用程序程序被調(diào)用被調(diào)用程序程序保存保存BP 是是是是是是允許允許VARARG參數(shù)參數(shù)是是是
4、是是是 作用范圍作用范圍 作用范圍作用范圍可以是可以是PUBLIC、PRIVATE、EXPORT,表示該過程是否對其他模塊可見。,表示該過程是否對其他模塊可見。缺省是缺省是PUBLIC,表示其他模塊可見;,表示其他模塊可見;PRIVATE表示對外不可見;表示對外不可見;EXPORT隱含有隱含有PUBLIC和和FAR,表示該過程應(yīng)該放置在導(dǎo),表示該過程應(yīng)該放置在導(dǎo)出表(出表(export entry table)。)。起始參數(shù)起始參數(shù) 起始參數(shù)起始參數(shù)采用這個格式的采用這個格式的PROC偽偽指令,匯編系統(tǒng)將自動創(chuàng)建過程的起始指令,匯編系統(tǒng)將自動創(chuàng)建過程的起始代碼(代碼(Prologue code
5、)和收尾代碼)和收尾代碼(Epilogue code),用于傳遞堆棧參數(shù)),用于傳遞堆棧參數(shù)以及清除堆棧等。起始參數(shù)表示傳送給以及清除堆棧等。起始參數(shù)表示傳送給起始代碼的參數(shù);它必須使用尖括號起始代碼的參數(shù);它必須使用尖括號“”括起來,多個參數(shù)用逗號分隔。括起來,多個參數(shù)用逗號分隔。 寄存器列表寄存器列表 寄存器列表寄存器列表指通用寄存器名,指通用寄存器名,用空格分隔多個寄存器。只要利用用空格分隔多個寄存器。只要利用“USES 寄存器列表寄存器列表”羅列該過程中羅列該過程中需要保存與恢復(fù)的寄存器,匯編系需要保存與恢復(fù)的寄存器,匯編系統(tǒng)將自動在起始代碼產(chǎn)生相應(yīng)的入統(tǒng)將自動在起始代碼產(chǎn)生相應(yīng)的入棧
6、指令,并對應(yīng)在收尾代碼產(chǎn)生出棧指令,并對應(yīng)在收尾代碼產(chǎn)生出棧指令。棧指令。 參數(shù)參數(shù) 參數(shù)參數(shù)類型類型表示過程使用的形參及類型。表示過程使用的形參及類型。在在16位段中,缺省的類型是字位段中,缺省的類型是字WORD,在,在32位位段中缺省的類型是雙字段中缺省的類型是雙字DWORD。 參數(shù)類型可以是任何參數(shù)類型可以是任何MASM有效的類型或有效的類型或PTR(表示地址指針);在(表示地址指針);在C、SYSCALL、STDCALL語言類型中。語言類型中。 PROC偽指令中使用參數(shù),必須定義語言類型。偽指令中使用參數(shù),必須定義語言類型。局部變量局部變量 如果過程使用局部變量,緊接著過程定義偽指如果
7、過程使用局部變量,緊接著過程定義偽指令令PROC,可以采用一條或多條,可以采用一條或多條LOCAL偽指偽指令說明。令說明。 其中,可選的其中,可選的“個數(shù)個數(shù)”表示同樣類型數(shù)據(jù)的表示同樣類型數(shù)據(jù)的個數(shù),類似數(shù)組元素的個數(shù)。在個數(shù),類似數(shù)組元素的個數(shù)。在16位段中,缺位段中,缺省的類型是字省的類型是字WORD,在,在32位段中缺省的類位段中缺省的類型是雙字型是雙字DWORD。使用。使用LOCAL偽指令說明偽指令說明局部變量后,匯編系統(tǒng)將自動利用堆棧存放該局部變量后,匯編系統(tǒng)將自動利用堆棧存放該變量變量. .例例fig6-20new.asm 此例該自此例該自fig6-20.asm,請注意比較。請注
8、意比較。.386.MODEL FLAT, stdcall ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORDMove PROTO NEAR32 C, :WORD, :BYTE, :BYTE, :BYTE include io.h ; header file for input/output cr equ 0dh ; carriage return characterLf equ 0ah ; line feed .STACK 4096 ; reserve 4096-byte stack .DATA ; reserve storage for da
9、taprompt BYTE cr,Lf,How many disks? ,0number BYTE 16 DUP (?)count word ?message BYTE cr,Lf,Move disk from spindle source BYTE ? BYTE to spindle dest BYTE ? BYTE .,0.CODEMove PROC NEAR32 c uses eax ebx, countp:word, Sr:byte , Dst:byte, Spa: byte cmp countp , 1 ; NbrDisks = 1? jne elseMore ; skip if m
10、ore than 1 mov bx,word ptr Sr ; Source mov source,bl ; copy character to output mov bx,word ptr Dst ; destination mov dest,bl ; copy character to output output message ; print line jmp endIfOne ; returnelseMore: dec countp INVOKE Move, countp, Sr, Spa, Dst INVOKE Move, 1, Sr, Dst, Spa INVOKE Move, c
11、ountp, Spa, Dst, SrendIfOne: ret ; returnMove ENDPstart: output prompt ; ask for number of disks input number,16 ; read ASCII characters atoi number ; convert to integer INVOKE Move, ax, A, B, C INVOKE ExitProcess, 0 ; exit with return code 0 PUBLIC start ; make entry point publicEND ; end of source
12、 code列表文件 什么是混合編程什么是混合編程 多種程序設(shè)計(jì)語言間,通過相互調(diào)用、多種程序設(shè)計(jì)語言間,通過相互調(diào)用、參數(shù)傳遞、共享數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)信息而參數(shù)傳遞、共享數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)信息而形成程序的過程就是混合編程形成程序的過程就是混合編程 程序的大部分采用高級語言編寫,以提程序的大部分采用高級語言編寫,以提高程序的開發(fā)效率;在某些部分,利用高程序的開發(fā)效率;在某些部分,利用匯編語言編寫,以提高程序的運(yùn)行效率匯編語言編寫,以提高程序的運(yùn)行效率混合編程方法混合編程方法 嵌入式匯編嵌入式匯編 在在C/C+語言中直接使用匯編語言語句,語言中直接使用匯編語言語句, 簡潔直觀、功能較弱簡潔直觀、功能較弱
13、模塊連接模塊連接 兩種語言分別編寫?yīng)毩⒌某绦蚰K,分別兩種語言分別編寫?yīng)毩⒌某绦蚰K,分別產(chǎn)生目標(biāo)代碼產(chǎn)生目標(biāo)代碼OBJ文件,然后進(jìn)行連接,文件,然后進(jìn)行連接,形成一個完整的程序形成一個完整的程序 使用靈活、功能強(qiáng),要解決參數(shù)傳遞問題使用靈活、功能強(qiáng),要解決參數(shù)傳遞問題混合編程的關(guān)鍵問題混合編程的關(guān)鍵問題 建立不同語言之間的接口建立不同語言之間的接口 在不同格式的兩種語言間提供有效在不同格式的兩種語言間提供有效的通訊方式,作出符合兩種語言調(diào)的通訊方式,作出符合兩種語言調(diào)用約定的某種形式說明,實(shí)現(xiàn)兩種用約定的某種形式說明,實(shí)現(xiàn)兩種語言間的程序模塊互相調(diào)用、變量語言間的程序模塊互相調(diào)用、變量的相互
14、傳送以及參數(shù)和返回值的正的相互傳送以及參數(shù)和返回值的正確使用確使用Turbo C嵌入式匯編方式嵌入式匯編方式 格式格式asm 操作碼操作碼 操作數(shù)操作數(shù) 舉例舉例asm mov ax,ds;asm pop ax; asm pop ds; asm ret;asm push ds若干注意事項(xiàng)若干注意事項(xiàng) 操作碼支持操作碼支持8086/8087指令或若干偽指指令或若干偽指令:令:db/dw/dd和和extern 操作數(shù)是操作碼可接受的數(shù)據(jù):立即數(shù)、操作數(shù)是操作碼可接受的數(shù)據(jù):立即數(shù)、寄存器名,還可以是寄存器名,還可以是C語言程序中的常語言程序中的常量、變量和標(biāo)號等量、變量和標(biāo)號等 內(nèi)嵌的匯編語句可以
15、用分號內(nèi)嵌的匯編語句可以用分號“;”結(jié)束,結(jié)束,也可以用換行符結(jié)束也可以用換行符結(jié)束 使用使用C的注釋,如的注釋,如 / * * / 正確運(yùn)用通用寄存器、標(biāo)號等正確運(yùn)用通用寄存器、標(biāo)號等/ * LT702.C */#include void upper(char *dest,char *src)asm mov si,src/* dest和和src是地址指針是地址指針 */asm mov di,destasm cldloop: asm lodsb/* C語言定義的標(biāo)號語言定義的標(biāo)號 */asm cmp al,aasm jb copy/* 轉(zhuǎn)移到轉(zhuǎn)移到C的標(biāo)號的標(biāo)號 */asm cmp al,za
16、sm ja copy/* 不是不是a到到z之間的字符原樣復(fù)制之間的字符原樣復(fù)制 */例7.21/2asm sub al,20h /*小寫字母轉(zhuǎn)換成大寫小寫字母轉(zhuǎn)換成大寫*/copy: asm stosbasm and al,al/* C語言中,字符串用語言中,字符串用NULL(0)結(jié)尾)結(jié)尾 */asm jnz loopmain()/* 主程序主程序 */char str=This Started Out As Lowercase!;char chr100;upper(chr,str);printf(Origin string:n%sn,str);printf(Uppercase String
17、:n%sn,chr);例7.22/2Turbo C模塊連接的約定規(guī)則模塊連接的約定規(guī)則 命名約定命名約定 匯編語言過程應(yīng)采用匯編語言過程應(yīng)采用C語言類型語言類型 聲明約定聲明約定 C對調(diào)用的外部過程、變量等采用對調(diào)用的外部過程、變量等采用EXTERN說明說明 匯編語言程序的標(biāo)識符用匯編語言程序的標(biāo)識符用public操作符定義操作符定義 寄存器使用約定寄存器使用約定 存儲模式約定存儲模式約定 采用采用相同的存儲模式相同的存儲模式 參數(shù)傳遞約定:堆棧和共享變量參數(shù)傳遞約定:堆棧和共享變量; 匯編語言子程序:匯編語言子程序:lt703s.asm.model small,c ;采用小型存儲模式采用小型
18、存儲模式.datamsgdb Hello, C and Assembly ! $.codePUBLIC displaydisplayproc;過程名加有下劃線過程名加有下劃線mov ah,9;小型模式不必設(shè)置小型模式不必設(shè)置DSmov dx,offset msg;寄存器寄存器AX和和DX無須保護(hù)無須保護(hù)int 21hretdisplayendpend例7.31/2/* C語言程序:語言程序:lt703.c */extern void display(void);/* 說明說明display是外部函數(shù)是外部函數(shù) */main() display();利用匯編程序編譯匯編語言程序成目標(biāo)代碼文件:利
19、用匯編程序編譯匯編語言程序成目標(biāo)代碼文件:ML /c lt703s.asm利用利用C編譯程序編譯編譯程序編譯C程序、連接目標(biāo)代碼文件:程序、連接目標(biāo)代碼文件:TCC -ms -Iinclude -Llib lt703.c lt703s.obj例7.32/2; 匯編語言子程序:匯編語言子程序:lt704s.asm.model small,cPUBLIC min.codeminproc;小型模式,為近過程小型模式,為近過程push bpmov bp,spmov ax,bp+4;取第取第1個參數(shù)個參數(shù)cmp ax,bp+6 ;與第與第2個參數(shù)比較個參數(shù)比較jle minexitmov ax,bp+6
20、 ;保存返回值保存返回值minexit: pop bpretminendpend例7.41/3圖示large688L例例7.4的堆棧區(qū)的堆棧區(qū)堆棧段堆棧段20061004偏移地址偏移地址2BP小型模式小型模式堆棧段堆棧段20081006段地址段地址4偏移地址偏移地址2BPBPBPSPSP大型模式大型模式; 匯編語言子程序匯編語言子程序:lt704.asm.model small,cPUBLIC min.codeminproc ,var1:word, var2:wordmov ax,var1;取第取第1個參數(shù)個參數(shù)cmp ax,var2 ;與第與第2個參數(shù)比較個參數(shù)比較jle minexitmo
21、v ax,var2 ;保存返回值保存返回值minexit: pop bpretminendpend例7.42/3/* C語言程序:語言程序:lt704.c */extern int min(int,int);main() printf(“%d”,min(100,200);小型模式編譯程序和連接:小型模式編譯程序和連接:TCC -ms -Iinclude -Llib lt704.c lt704s.obj大型模式編譯程序和連接:大型模式編譯程序和連接:TCC -ml -Iinclude -Llib lt704.c lt704l.obj例7.43/3Visual C的嵌入式匯編的嵌入式匯編 格式格式
22、_ _asm 指令指令 舉例舉例int power2(int num,int power)_ _asmmov eax,nummov ecx,powershl eax,cl/ 返回返回 EAX=EAX(2CL)模塊連接的注意事項(xiàng)模塊連接的注意事項(xiàng) 必須遵循共同的約定規(guī)則必須遵循共同的約定規(guī)則 命名約定命名約定 聲明約定聲明約定 寄存器使用約定寄存器使用約定 存儲模式約定存儲模式約定 參數(shù)傳遞約定參數(shù)傳遞約定 采用一致的調(diào)用規(guī)范采用一致的調(diào)用規(guī)范 聲明共用函數(shù)和變量聲明共用函數(shù)和變量 正確傳遞入口參數(shù)和返回參數(shù)正確傳遞入口參數(shù)和返回參數(shù)32位匯編語言過程位匯編語言過程 用用.386p等處理器偽指令
23、說明采用的指等處理器偽指令說明采用的指令集令集 32位邏輯段環(huán)境位邏輯段環(huán)境 有些指令在有些指令在32位段與位段與16位段有差別位段有差別 采用平展模式(采用平展模式(flat) 匯編時采用選項(xiàng)匯編時采用選項(xiàng)/coff;匯編語言子程序:匯編語言子程序:lt714f.asm.386p.model flat,cPUBLIC power2.codepower2 procpush ebpmov ebp,espmov eax,ebp+8;取第取第1個參數(shù)個參數(shù)mov ecx,bp+12;取第取第2個參數(shù)個參數(shù)shl eax,clpop ebpret;返回返回EAXpower2 endpend例7.141
24、/3圖示例例7.14的堆棧區(qū)的堆棧區(qū)堆棧段堆棧段61258EIP4EBPEBPEBPESPESP;匯編語言子程序:匯編語言子程序:lt714f.asm.386p.model flat,cPUBLIC power2.codepower2PROC ,num:dword,power:dwordmov eax,num;獲取參數(shù)獲取參數(shù)mov ecx,powershl eax,cl;計(jì)算計(jì)算ret;EAX存放返回值存放返回值power2ENDPend例7.142/3/ C+語言程序:語言程序:lt714.cpp# include extern “c”int power2(int,int);void ma
25、in(void) cout“2的的6次方乘次方乘5等于:等于:t”; coutpower2(5,6)endl;將匯編語言程序匯編成目標(biāo)代碼文件:將匯編語言程序匯編成目標(biāo)代碼文件:ML /c /coff lt714f.asm在在Visual C+6.0編譯環(huán)境下創(chuàng)建項(xiàng)目,編譯環(huán)境下創(chuàng)建項(xiàng)目,插入?yún)R編成的目標(biāo)代碼文,然后編譯連接插入?yún)R編成的目標(biāo)代碼文,然后編譯連接例7.143/3/ C+程序:程序:LT715.CPP #include extern C long isum(int,int *);int imin(int,int *);void main(void) const int SIZE=1
26、0; int arraySIZE; int temp; cout請輸入請輸入10個整數(shù):個整數(shù):endl; for(temp=0;temparraytemp; coutendl; cout整數(shù)數(shù)據(jù)之和:整數(shù)數(shù)據(jù)之和:tisum(SIZE,array)endl; cout其中最小值為:其中最小值為:timin(SIZE,array)endl;例7.151/4/求求itmp個元素的數(shù)組個元素的數(shù)組iarray的最小數(shù)的最小數(shù)int imin(int itmp,int iarray)_asm mov ecx,itmpjecxz minexit;個數(shù)為個數(shù)為0,返回,返回dec ecxmov esi,
27、iarraymov eax,esijecxz minexit;個數(shù)為個數(shù)為1,返回,返回minlp:add esi,4cmp eax,esi;比較兩個數(shù)據(jù)的大小比較兩個數(shù)據(jù)的大小jle nochangemov eax,esi;取得較小值取得較小值nochange: loop minlpminexit: 例7.152/4;匯編語言子程序:匯編語言子程序:LT715F.ASM.386p.model flat,c.code;32位有符號數(shù)據(jù)的求和過程位有符號數(shù)據(jù)的求和過程isum proc uses ecx esi, count:dword,darray:PTRmov ecx,count;個數(shù)為個數(shù)
28、為0,和為,和為0 xor edx,edxxor eax,eaxjecxz sumexitmov esi,darray;個數(shù)為個數(shù)為1,和為本身,和為本身mov eax,esidec ecxjecxz sumexit例7.153/4sumlp:add esi,4add eax,esi;計(jì)算低計(jì)算低32位位adc edx,0;計(jì)算高計(jì)算高32位位loop sumlpsumexit: retisumendpend例7.154/4將匯編語言程序匯編成目標(biāo)代碼文件:將匯編語言程序匯編成目標(biāo)代碼文件:ML /c /coff lt715f.asm在在Visual C+6.0編譯環(huán)境下創(chuàng)建項(xiàng)目,編譯環(huán)境下創(chuàng)
29、建項(xiàng)目,插入?yún)R編成的目標(biāo)代碼文件,然后編譯連接插入?yún)R編成的目標(biāo)代碼文件,然后編譯連接匯編程序調(diào)用匯編程序調(diào)用C的函數(shù)的函數(shù).386.model flat, stdcalloption casemap:noneincludelib msvcrt.libprintf PROTO C: ptr sbyte, :vararg .dataszMsg byte hello world!,0ah,0.codestart:invoke printf, offset szMsgretpublic startend start一個最簡單的一個最簡單的Win32匯編語言程序匯編語言程序顯示標(biāo)準(zhǔn)顯示標(biāo)準(zhǔn)Windows
30、消息窗口的程序消息窗口的程序消息框顯示:消息框顯示:歡迎進(jìn)入歡迎進(jìn)入32位位Windows世界!世界!標(biāo)題:標(biāo)題:Win32示例示例Win32ASM程序結(jié)構(gòu)程序結(jié)構(gòu).386.model flat,stdcalloption casemap:noneinclude masm32includewindows.incinclude masm32includekernel32.incinclude masm32includeuser32.incincludelib masm32libkernel32.libincludelib masm32libuser32.libltwin011/2API區(qū)別大小寫
31、區(qū)別大小寫包含對系統(tǒng)常量和包含對系統(tǒng)常量和API函數(shù)等的聲明函數(shù)等的聲明包含包含API函數(shù)的庫文件函數(shù)的庫文件.dataszCaption db Win32示例示例,0szText db 歡迎進(jìn)入歡迎進(jìn)入32位位Windows世界!世界!,0.codestart:invoke MessageBox,NULL,addr szText, addr szCaption,MB_OKinvoke ExitProcess,NULLend startltwin012/2顯示消息框顯示消息框API調(diào)用調(diào)用返回操作系統(tǒng)返回操作系統(tǒng)API調(diào)用調(diào)用對比對比C+程序程序#include int WINAPI WinMain(HINSTACE hInstan
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生作文我的夢想征文
- 云南省怒江傈僳族自治州福貢縣聯(lián)考2024-2025學(xué)年高一上學(xué)期1月期末生物學(xué)試題(含答案)
- 國際貿(mào)易實(shí)務(wù)中的結(jié)算方式知識考點(diǎn)
- 個人自助圖書館借閱服務(wù)合同
- 現(xiàn)代服務(wù)業(yè)服務(wù)質(zhì)量評價標(biāo)準(zhǔn)知識考點(diǎn)
- 互聯(lián)網(wǎng)產(chǎn)品策劃題
- 辦公空間能源消耗表格:能耗統(tǒng)計(jì)、節(jié)能減排
- 金融投資行業(yè)市場波動風(fēng)險(xiǎn)免責(zé)聲明
- 醫(yī)學(xué)知識視頻培訓(xùn)課件
- 工作計(jì)劃完成情況統(tǒng)計(jì)表格
- 常見意外傷害的處理課件
- 第八章運(yùn)動和力單元試卷 (含答案) 2024-2025學(xué)年人教版物理八年級下
- 2025年中央一號文件高頻重點(diǎn)考試題庫150題(含答案解析)
- 風(fēng)電項(xiàng)目電網(wǎng)接入系統(tǒng)可行性研究報(bào)告編制服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 2024人教版新教材初中地理七年級下冊內(nèi)容解讀課件(深度)
- 2025年遼寧醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2023-2028年中國油畫行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報(bào)告
- 100以內(nèi)加減法練習(xí)100題(50套)-可直接打印
- 2024年干式電力電容器項(xiàng)目可行性研究報(bào)告
- 河南12系列建筑設(shè)計(jì)圖集一(12YJ1)
- 2025年村三會一課工作計(jì)劃表
評論
0/150
提交評論