版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第6章ARM,本章的主要內(nèi)容,1、ARM匯編語言程序設(shè)計,2、ARM程序的框架結(jié)構(gòu),3、C語言程序?qū)R編程序的調(diào)用,4、ARM與C語言混合程序設(shè)計,1,PPT學(xué)習(xí)交流,6.1ARM工程,由于C語言便于理解,有大量的支持庫,所以它是當(dāng)前ARM程序設(shè)計所使用的主要編程語言。,對硬件系統(tǒng)的初始化、CPU狀態(tài)設(shè)定、中斷使能、主頻設(shè)定以及RAM控制參數(shù)初始化等C程序力所不能及的底層操作,還是要由匯編語言程序來完成。,2,PPT學(xué)習(xí)交流,用匯編語言或C/C+語言編寫的程序叫做源程序,對應(yīng)的文件叫做源文件。,一個ARM工程應(yīng)由多個文件組成,其中包括擴展名為.S的匯編語言源文件、擴展名為.C的C語言源文件,擴
2、展名為.CPP的C+源文件、擴展名為.H的頭文件等。,ARM工程的各種源文件之間的關(guān)系,以及最后形成可執(zhí)行文件的過程如下:,3,PPT學(xué)習(xí)交流,匯編語言源文件,匯編器,目標(biāo)文件,C/C+語言源文件,編譯器,目標(biāo)文件,頭文件,C/C+庫文件,連接器,可執(zhí)行文件,4,PPT學(xué)習(xí)交流,ARM提供的開發(fā)工具CodeWarriorforARM中包含的編譯器如下:,5,PPT學(xué)習(xí)交流,除了C和C+編譯器,CodeWarriorforARM開發(fā)工具還提供了匯編器ARMASM。,編譯器負(fù)責(zé)生成目標(biāo)文件,它是一種包含了調(diào)試信息的ELF格式文件。,編譯器還要生成列表文件等相關(guān)文件:,6,PPT學(xué)習(xí)交流,7,PPT
3、學(xué)習(xí)交流,各種源文件先由編譯器和匯編器將它們分別編譯或匯編成匯編語言文件及目標(biāo)文件。,連接器負(fù)責(zé)將所有目標(biāo)文件連接成一個文件并確定各指令的確定地址,從而形成最終可執(zhí)行文件。,連接器有三個功能:,8,PPT學(xué)習(xí)交流,(1)生成與地址相關(guān)的代碼,把所有文件連接成一個可執(zhí)行文件。,(2)根據(jù)程序員所指定的選項,為程序分配地址空間。,(3)給出連接信息,以說明連接過程和連接結(jié)果。,9,PPT學(xué)習(xí)交流,6.2ARM匯編語言程序設(shè)計,6.2.1段,匯編語言編寫的程序叫做匯編語言源程序,包含源程序的文件叫做匯編語言程序文件。,一個工程可以有多個源文件,匯編源文件的擴展名為.S。,10,PPT學(xué)習(xí)交流,在AR
4、M(Thumb)匯編語言程序中,通常以段為單位來組織代碼。段是具有特定名稱且功能相對獨立的指令或數(shù)據(jù)序列。,根據(jù)段的內(nèi)容,分為代碼段和數(shù)據(jù)段。,一個匯編程序至少應(yīng)該有一個代碼段,當(dāng)程序較長時,可以分割為多個代碼段和數(shù)據(jù)段。,11,PPT學(xué)習(xí)交流,以下是一個匯編語言程序段的基本結(jié)構(gòu):,AREAInit,CODE,READONLY/只讀的代碼段InitENTRY/程序入口點startLDRR0,#0X3FF5000LDRR1,0XFFSTRR1,R0LDRR0,#0X3FF5008LDRR1,0X01STRR1,R0.END/段結(jié)束,12,PPT學(xué)習(xí)交流,6.2.2分支程序設(shè)計,具有兩個或兩個以上
5、可選執(zhí)行路徑的程序叫做分支程序。,1、普通分支程序設(shè)計,使用帶有條件碼的指令可以很容易地實現(xiàn)分支程序。,13,PPT學(xué)習(xí)交流,例:編寫一個分支程序段,如果寄存器R5中的數(shù)據(jù)等于10,就把R5中的數(shù)據(jù)存如寄存器R1;否則把R5中的數(shù)據(jù)分別存儲寄存器R0和R1。,14,PPT學(xué)習(xí)交流,(1)用條件指令實現(xiàn)的分支程序段,CMPR5,#10MOVNER0,R5MOVR1,R5,(2)用條件轉(zhuǎn)移指令來實現(xiàn)分支,CMPR5,#10BEQdoequalMOVR0,R5doequalMOVR1,R5,15,PPT學(xué)習(xí)交流,例:編寫一個程序段,當(dāng)寄存器R1中的數(shù)據(jù)大于R2中數(shù)據(jù)時,將R2中的數(shù)據(jù)加10存入寄存器
6、R1;否則將R2中數(shù)據(jù)加5存入寄存器R1。,16,PPT學(xué)習(xí)交流,CMPR1,R2ADDHIR1,R2,#10ADDLSR1,R2,#5,2、多分支(散轉(zhuǎn))程序設(shè)計,程序分支點上有多于兩個以上的執(zhí)行路徑的程序叫做多分支程序。利用條件測試指令或跳轉(zhuǎn)表可以實現(xiàn)多分支程序。,17,PPT學(xué)習(xí)交流,例、編寫一個程序段,判斷寄存器R1中數(shù)據(jù)是否為10、15、12、22。如果是,則將R0中的數(shù)據(jù)加1;否則將R0設(shè)置為0XF。,18,PPT學(xué)習(xí)交流,MOVR0,#0TEQR1,#10TEQNER1,#15TEQNER1,#12TEQNER1,#22ADDEQR0,R0,#1MOVNER0,#0XF,19,P
7、PT學(xué)習(xí)交流,當(dāng)多分支程序的每個分支所對應(yīng)的是一個程序段時,常常把各個分支程序段的首地址依次存放在一個叫做跳轉(zhuǎn)地址表的存儲區(qū)域,然后在程序的分支點處使用一個可以將跳轉(zhuǎn)表中的目標(biāo)地址傳送到PC的指令來實現(xiàn)分支。,一個具有3個分支的跳轉(zhuǎn)地址表示意圖如下:,20,PPT學(xué)習(xí)交流,21,PPT學(xué)習(xí)交流,MOVR0,NADRR5,JPTBLDRPC,R5,R0,LSL#2JPTAB;跳轉(zhuǎn)表DCDFUN0DCDFUN1ECDFUN2FUN0.;分支FUN0的程序段FUN1.;分支FUN1的程序段FUN2.;分支FUN2的程序段,22,PPT學(xué)習(xí)交流,3、帶ARM/Thumb狀態(tài)切換的分支程序設(shè)計,在ARM
8、程序中經(jīng)常需要在程序跳轉(zhuǎn)的同時還要進(jìn)行處理器狀態(tài)的轉(zhuǎn)移,即從ARM指令程序段跳轉(zhuǎn)到Thumb指令程序段(或相反)。為了實現(xiàn)這個功能,系統(tǒng)提供了一條專用的、可以實現(xiàn)4GB空間范圍內(nèi)的絕對跳轉(zhuǎn)交換指令BX。,23,PPT學(xué)習(xí)交流,24,PPT學(xué)習(xí)交流,下面是一段從ARM指令程序段跳轉(zhuǎn)到Thumb指令程序的狀態(tài)切換例程。,;ARM指令程序CODE32.ADDR0,Into_Thumb+1BXR0.;Thumb指令程序CODE16Into_Thumb.,25,PPT學(xué)習(xí)交流,下面是一段從Thumb指令程序段跳轉(zhuǎn)到ARM指令程序的狀態(tài)切換例程。,;Thumb指令程序CODE16.ADDR5,Back_t
9、o_ARMBXR0.;ARM指令程序CODE32Back_to_ARM.,26,PPT學(xué)習(xí)交流,6.2.3循環(huán)程序設(shè)計,當(dāng)條件滿足時,需要重復(fù)執(zhí)行同一個程序段做同樣工作的程序叫做循環(huán)程序。,被重復(fù)執(zhí)行的程序段叫做循環(huán)體,需要滿足的條件叫做循環(huán)條件。,循環(huán)程序有兩種結(jié)構(gòu):DO-WHILE結(jié)構(gòu)和DO-UNTIL結(jié)構(gòu)。,27,PPT學(xué)習(xí)交流,DO-WHILE結(jié)構(gòu),DO-UNTIL結(jié)構(gòu),28,PPT學(xué)習(xí)交流,在匯編語言程序設(shè)計中,常用的是DO-UNTIL結(jié)構(gòu)循環(huán)程序。,MOVR1,#10LOOP.SUBR1,R1,#1BNELOOP,例、編寫一個程序,把首地址為DATA_SRC的80個字的數(shù)據(jù)復(fù)制到首
10、地址為DATA_DST的目標(biāo)數(shù)據(jù)塊中。,29,PPT學(xué)習(xí)交流,LDRR1,#DATA_SRCLDRR0,#DATA_DSTMOVR10,#10LOOPLDMIAR1!,R2-R9STMIAR0!,R2-R9SUBSR10,R10,#1BNELOOP,6.2.4子程序及其調(diào)用,30,PPT學(xué)習(xí)交流,1、子程序的調(diào)用與返回,人們把這種可以多次反復(fù)調(diào)用的、能完成指定功能的程序段稱為“子程序”。把調(diào)用子程序的程序稱為“主程序”。,為進(jìn)行識別,子程序的第1條指令之前必須賦予一個標(biāo)號,以便其他程序可以用這個標(biāo)號調(diào)用子程序。,31,PPT學(xué)習(xí)交流,在ARM匯編語言程序中,主程序一般通過BL指令來調(diào)用子程序。
11、該指令在執(zhí)行時完成如下操作:將子程序的返回地址存放在連接寄存器LR中,同時將程序計數(shù)器PC指向子程序的入口點。,為使子程序執(zhí)行完畢能返回主程序的調(diào)用處,子程序末尾處應(yīng)有MOV、B、BX、STMFD等指令,并在指令中將返回地址重新復(fù)制到PC中。,32,PPT學(xué)習(xí)交流,在調(diào)用子程序的同時,也可以使用R0R3來進(jìn)行參數(shù)的傳遞和從子程序返回運算結(jié)果。,例、一個使用MOV指令實現(xiàn)返回的子程序。,relay.MOVPC,LR,使用B指令實現(xiàn)返回的子程序。,relay.BLR,33,PPT學(xué)習(xí)交流,例、一個使用BL指令調(diào)用子程序的匯編語言緣程序的基本結(jié)構(gòu)。,AERAInit,CODE,READONLYENT
12、RYstartLDRR0,#0X3FF5000LDRR1,0XFFSTRR1,R0LDRR0,#0X3FF5008LDRR1,0X01STRR1,R0BLPR.,34,PPT學(xué)習(xí)交流,PRMOVPC,LREND,2、子程序中堆棧的使用,relaySTMFDR13!,R0R12,LR;壓入堆棧;子程序代碼LDMFDR13!,R0R12,PC;彈出堆棧并返回,35,PPT學(xué)習(xí)交流,6.2.5匯編程序訪問全局C變量,一般來說,匯編語言程序與C語言程序不在同一個文件上,所以實質(zhì)上這是一個引用不同文件定義的變量問題。解決這個問題的辦法就是使用關(guān)鍵字IMPORT和EXPORT。,例、下面是一個匯編代碼的函
13、數(shù),它引用了一個在其他文件中定義的全局變量globvar,將其加2后寫回globvar。,36,PPT學(xué)習(xí)交流,AREAglobvar,CODE,READONLYEXPORTasmsubrouttineIMPORTglobvarAsmsubrouttineLDRR1,#globvarLDRR0,R1ADDR0,R0,#2STRR0,R1MOVPC,LREND,37,PPT學(xué)習(xí)交流,6.3ARM程序框架,在應(yīng)用系統(tǒng)的程序設(shè)計中,若所有的編程任務(wù)均用匯編語言來完成,其工作量是可想而知的,這樣做也不利于系統(tǒng)升級或應(yīng)用軟件移植。,通常匯編語言部分完成系統(tǒng)硬件的初始化;高級語言部分完成用戶的應(yīng)用。,38
14、,PPT學(xué)習(xí)交流,執(zhí)行時,首先執(zhí)行初始化部分,然后再跳轉(zhuǎn)到C/C+部分。整個程序結(jié)構(gòu)顯得清晰明了,容易理解。程序的基本結(jié)構(gòu)如下:,硬件初始化的匯編語言程序(特權(quán)模式)Bmain,完成用戶任務(wù)的C/C+程序(用戶模式),跳轉(zhuǎn),39,PPT學(xué)習(xí)交流,6.3.1初始化程序部分,由于在用于完成初始化任務(wù)的匯編語言程序中需要在特權(quán)模式下做一些諸如修改CPSR等特權(quán)操作,所以不能過早地進(jìn)入用戶模式。,通常,初始化過程大致會經(jīng)歷如下所示的一些模式變化。,40,PPT學(xué)習(xí)交流,啟動,管理模式svc,其他特權(quán)模式,用戶模式usr,匯編語言程序段,41,PPT學(xué)習(xí)交流,6.3.2初始化部分與主應(yīng)用程序部分的銜接,
15、當(dāng)所有的系統(tǒng)初始化工作完成之后,就需要把程序流程轉(zhuǎn)入主應(yīng)用程序。最簡單的方法是,在匯編語言程序末尾使用跳轉(zhuǎn)指令B或BL直接從啟動代碼轉(zhuǎn)移到C/C+程序入口。,Bmain;跳轉(zhuǎn)到C/C+程序,42,PPT學(xué)習(xí)交流,同時在匯編文件中有如下代碼:IMPORTmain,完整的匯編語言程序如下:,IMPORTmainAREAInit,CODE,READONLYENTRYLDRR0,#0X3FF000LDRR1,#0XE7FFFF80STRR1,R0LDRSP,#0X3EE1000BLmainEND,43,PPT學(xué)習(xí)交流,C程序如下:,voidmain(void).,6.3.3ARM開發(fā)環(huán)境提供的程序框架
16、,44,PPT學(xué)習(xí)交流,為方便工程開發(fā),ARM公司的開發(fā)環(huán)境ARMADS為用戶提供了一個可以選用的應(yīng)用程序框架。該框架把為用戶程序做準(zhǔn)備工作的程序分成了啟動代碼和應(yīng)用程序初始化兩部分。,用于硬件初始化的匯編語言部分叫做啟動代碼;用于應(yīng)用程序初始化的C部分叫做初始化部分。整個程序如下所示:,45,PPT學(xué)習(xí)交流,IMPORT_main啟動代碼B_main,應(yīng)用程序初始化,主用程序,_main(),main(),46,PPT學(xué)習(xí)交流,6.4C與匯編之間的函數(shù)調(diào)用,在ARM工程中,C程序調(diào)用匯編函數(shù)和匯編程序調(diào)用C函數(shù)是經(jīng)常發(fā)生的事情。為此人們制定了ARM-Thumb過程調(diào)用標(biāo)準(zhǔn)ATPCS(ARM-
17、ThumbProcedureCallStandard)。,6.4.1ATPCS簡介,47,PPT學(xué)習(xí)交流,1、堆棧與寄存器在函數(shù)調(diào)用中的作用,函數(shù)是通過寄存器和堆棧來傳遞參數(shù)和返回函數(shù)值的。,下面是C語言程序調(diào)用C函數(shù)的情況。,intAddInt(intx,inty)ints;s=x+y;returns;,48,PPT學(xué)習(xí)交流,在C程序中,主函數(shù)main()調(diào)用該函數(shù)的方法如下:,voidmain(void).AddInt(a,b);/調(diào)用,49,PPT學(xué)習(xí)交流,ARM編譯器使用的函數(shù)調(diào)用規(guī)則就是ATPCS標(biāo)準(zhǔn)。ATPCS標(biāo)準(zhǔn)既是ARM編譯器的規(guī)則,也是設(shè)計可被C程序調(diào)用的匯編函數(shù)的編寫規(guī)則。
18、,2、ATPCS關(guān)于堆棧和寄存器的使用規(guī)則,ATPCS規(guī)定,ARM的數(shù)據(jù)堆棧為FD型堆棧,即遞減滿堆棧。,50,PPT學(xué)習(xí)交流,ATPCS標(biāo)準(zhǔn)規(guī)定,對于參數(shù)個數(shù)不多于4的函數(shù),編譯器必須按參數(shù)在列表中的順序,自左向右為它們分配寄存器R0R3。其中函數(shù)返回時,R0還被用來存放函數(shù)的返回值。,51,PPT學(xué)習(xí)交流,如果函數(shù)的參數(shù)多于4個,那么多余的參數(shù)則按自右向做的順序壓入數(shù)據(jù)堆棧,即參數(shù)入棧順序與采納書順序相反。,52,PPT學(xué)習(xí)交流,下表列舉了ARM-Thumb過程調(diào)用標(biāo)準(zhǔn)規(guī)定的寄存器的名稱和使用方法。,53,PPT學(xué)習(xí)交流,寄存器的別名和特殊名稱都是ARM編譯器和匯編器預(yù)定義的,用戶可以直接
19、使用。,6.4.2C程序可調(diào)用匯編函數(shù)實例,下面是一個用匯編語言編寫的函數(shù),該函數(shù)把R1指向的數(shù)據(jù)塊復(fù)制到R0指向的存儲快。,54,PPT學(xué)習(xí)交流,AREAstrcopy,CODE,READONLYEXPORTstrcopystrcopyLDRBR2,R1,#1STRBR2,R0,#1CMPR2,#0BNEstrcopyMOVPC,LREND,55,PPT學(xué)習(xí)交流,根據(jù)ATPCS的C語言程序調(diào)用匯編函數(shù),參數(shù)由左向右依次傳遞給寄存器R0R3的規(guī)則,可知匯編函數(shù)strcopy在C程序中原型應(yīng)該為:,voidstrcopy(char*d,constchar*s);,在C語言文件中,調(diào)用strcop
20、y函數(shù)的方法如下:,56,PPT學(xué)習(xí)交流,externvoidstrcopy(char*d,constchar*s);intmain(void)constchar*src=“source”;chardest10;.strcopy(dest,src;.,57,PPT學(xué)習(xí)交流,6.4.3匯編程序調(diào)用C函數(shù)實例,現(xiàn)有C函數(shù)g()如下:,intg(inta,intb,intc,intd,inte)returna+b+c+d+e;,匯編函數(shù)f中調(diào)用C函數(shù)g(),以實現(xiàn)下面的功能。,58,PPT學(xué)習(xí)交流,整個匯編函數(shù)f的代碼如下:,intf(inti)returng(i,2*i,3*i,4*i,5*i),
21、EXPORTfAREAf,CODE,READONLYIMPORTg;聲名g為外部引用符號STRLR,SP,#-4;斷點存入堆棧ADDR1,R0,R0;(R1)=i*2ADDR2,R1,R0;(R2)=i*3ADDR3,R1,R2;(R3)=i*5STRR3,SP,#-4;將(R3)即第5個參數(shù)i*5存入堆棧ADDR3,R1,R1;(R3)=i*4,59,PPT學(xué)習(xí)交流,BLg;調(diào)用C函數(shù)g(),返回值在寄存器R0中ADDSP,SP,#4;清棧RSBR0,R0,#0;函數(shù)f的返回值(R0)=0-(R0)LDRPC,SP,#4;恢復(fù)斷點并返回END,60,PPT學(xué)習(xí)交流,6.5C/C+語言和匯編語
22、言的混合編程,除了上面介紹的函數(shù)調(diào)用方法之外,ARM編譯器armcc中含有內(nèi)嵌匯編器還允許在C程序中內(nèi)聯(lián)或嵌入式匯編代碼,以提高程序的效率。,6.5.1內(nèi)聯(lián)匯編,1、定義內(nèi)聯(lián)匯編程序,61,PPT學(xué)習(xí)交流,所謂內(nèi)聯(lián)匯編程序,就是在C程序中直接編寫匯編程序段而形成一個語句塊,這個語句塊可以使用除了BX和BLX之外的全部ARM指令來編寫,從而可以使程序?qū)崿F(xiàn)一些不能從C獲得的底層功能。,其格式為:,_asm匯編語句塊,62,PPT學(xué)習(xí)交流,例:voidenable_IRQ(void)inttmp;_asm/聲名內(nèi)聯(lián)匯編代碼MRStmp,CPSRBICtmp,tmp,#0 x80MSRCPSR_c,t
23、mp,63,PPT學(xué)習(xí)交流,2、內(nèi)聯(lián)匯編的限制,內(nèi)聯(lián)匯編與真實匯編之間有很大區(qū)別,會受到很多限制。,(1)它不支持Thumb指令;除了程序狀態(tài)寄存器PSR之外,不能直接訪問其他任何物理寄存器等。,(2)如果在內(nèi)聯(lián)匯編程序指令中出現(xiàn)了以某個寄存器名稱命名的操作數(shù),那么它,64,PPT學(xué)習(xí)交流,被叫做虛擬寄存器,而不是實際的物理寄存器。編譯器在生成和優(yōu)化代碼的過程中,會給每個虛擬寄存器分配實際的物理寄存器,但這個物理寄存器可能與在指令中指定的不同。唯一的一個例外就是狀態(tài)寄存器PSR,任何對PSR的引用總是執(zhí)行指向物理PSR。,65,PPT學(xué)習(xí)交流,(3)在內(nèi)聯(lián)匯編代碼中不能使用寄存器PC(R15)
24、、LR(R14)和SP(R13),任何試圖使用這些寄存器的操作都會導(dǎo)致出現(xiàn)錯誤消息。,(4)鑒于上述情況,在內(nèi)聯(lián)匯編語句塊中最好使用C或C+變量作為操作數(shù)。,(5)雖然內(nèi)聯(lián)匯編代碼可以更改處理器模式,但更改處理器模式會禁止使用C操,66,PPT學(xué)習(xí)交流,作數(shù)或?qū)σ丫幾gC代碼的調(diào)用,直到將處理器模式恢復(fù)為原設(shè)置之后。,6.5.2嵌入式匯編,嵌入式匯編程序是一個編寫在C程序外的單獨匯編程序,該程序段可以像函數(shù)那樣被C程序調(diào)用。,67,PPT學(xué)習(xí)交流,與內(nèi)聯(lián)匯編不同,嵌入式匯編具有真實匯編的所有特性,數(shù)據(jù)交換符合ATPCS標(biāo)準(zhǔn),同時支持ARM和Thumb,所以它可以對目標(biāo)處理器進(jìn)行不受限制的低級訪問。但是不能直接引用C/C+的變量。,用_asm聲明的嵌入式匯編程序像C函數(shù)那樣可以有參數(shù)和返回值。定義一個嵌入式匯編函數(shù)的語法格式為:,68,PPT學(xué)習(xí)交流,_asmreturntypefunctionname(parameter-list)匯編程序段,returntype:函數(shù)返回值類型;functionname:函數(shù)名;parameter-list:函數(shù)參數(shù)列表。,嵌入式匯編在形式上看起來就像使用關(guān)鍵字_asm進(jìn)行了聲明的函數(shù),如下所示:,69,PPT學(xué)習(xí)交流,_asminta
溫馨提示
- 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-2026學(xué)年魯教版初中信息科技八年級上學(xué)期期末模擬試題(解析版)
- 《GBT 32633-2016 分布式關(guān)系數(shù)據(jù)庫服務(wù)接口規(guī)范》專題研究報告
- 《GB-T 25006-2010感官分析 包裝材料引起食品風(fēng)味改變的評價方法》專題研究報告
- 《GBT 4833.2-2008多道分析器 第2部分:作為多路定標(biāo)器的試驗方法》專題研究報告
- 道路安全培訓(xùn)宣傳語錄課件
- 2026年冀教版初一語文上冊月考真題試卷含答案
- 重陽節(jié)新聞稿15篇
- 2026年度“十八項醫(yī)療核心制度”培訓(xùn)考試卷含答案
- 2026年福建省廈門市輔警人員招聘考試真題及答案
- 2025SCA實踐建議:胸外科手術(shù)患者術(shù)后疼痛的管理課件
- 2025國企性格測試題及答案
- 基層全民健康體檢課件
- 2025年全國中考真題匯編專題11:議論文閱讀【含答案】
- VFP表單控件的使用
- 化學(xué)月考卷子講解
- 婦幼保健員考試試題題庫及答案
- 外貿(mào)跟單基礎(chǔ)知識培訓(xùn)課件
- 雙氧水安全管理制度
- (高清版)DBJ∕T 13-278-2025 《福建省電動汽車充電基礎(chǔ)設(shè)施建設(shè)技術(shù)標(biāo)準(zhǔn)》
- 江西省三校生高考數(shù)學(xué)試卷
- 咨詢管理方案大綱模板
評論
0/150
提交評論