




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
偽指令和宏語言●
信息工程學(xué)院
●17.1、偽指令7.2、宏語言7.3、通用目標(biāo)文件格式7.4、命令文件程序舉例偽指令和宏語言2偽指令
TMS320C2000/C5X的匯編偽指令可以實(shí)現(xiàn)以下功能:▲
匯編代碼和數(shù)據(jù)到指定的段;▲
為未定義的變量保存空間;▲
控制列表文件;▲
分配存儲器;▲
匯編條件塊;▲
定義全局變量;▲
指定匯編器能得到的宏;▲
檢查符號調(diào)試信息。37.1偽指令——分為8類:
▲
段定義偽指令:把匯編語句程序的各部分與適當(dāng)?shù)亩温?lián)系起來。
.bes,
.bss,.data,.text,.sect,.usect,.sblock?!跏蓟?shù)偽指令:為當(dāng)前段匯編數(shù)值。
.space,.byte,.field,.float,.xfloat,.int,.word,.long,.xlong,.pstring,string?!纬绦蛴嫈?shù)器排列偽指令:使段程序計數(shù)器SPC指向預(yù)定的位置。align,.even。
▲輸出列表格式偽指令:控制列表文件的格式。.drlist,.drnolist,.fclist,.fcnolist,.length,.width,.list,.nolist,.mlist,.mnolist,.option,.page,.sslist,.ssnolist,.tab,.title。▲引用其他文件偽指令:為文件提供信息或提供這些文件的信息。..copy,.include,.global,.def,.ref,.mlib?!鴹l件匯編偽指令:使匯編器根據(jù)表達(dá)式求值結(jié)果的真或假來匯編代碼的某些段。
.if,.elseif,.else,.endif,.loop,.break,.endloop?!鴧R編時的符號偽指令:使定義的符號名等同于常數(shù)值或字符串。
.asg,.eval,.set,.equ,.struct,.endstruct,.label
。
▲
匯編模式偽指令:定義在C28x或認(rèn)可C2xLP模式。.c28_amode,.lp_amode?!渌麄沃噶睿壕哂衅渌δ芎吞匦缘膫沃噶睢?end,.mmregs,.newblock,.port,.sblock,.version,.emsg,.wmsg。47.2宏指令▲
將頻繁出現(xiàn)的程序段定義為宏指令,▲
當(dāng)程序中需要執(zhí)行該程序段時,只需用一條宏調(diào)用語句?!?/p>
縮短源程序的長度,使源程序易讀,減少了書寫錯誤。使用宏的過程要經(jīng)過以下3個步驟:1)定義宏:用戶在使用宏之前必須先定義宏。在程序的任何地方都可以定義一個宏??稍谠次募_始處或者在.include/.copy文件中或者在宏庫中定義。格式:
宏名.macro[形式參數(shù)1][,形式參數(shù)2]…[,形式參數(shù)n]
}宏體
[.mexit]
.endm5宏名——用通常規(guī)定的字符串格式書寫。.mexit
——相當(dāng)于“goto.endm”,用于條件判斷后的轉(zhuǎn)移,可缺省。形式參數(shù)——或稱為替代符號。同樣按通常規(guī)定的字符串格式書寫。替代符號作為宏參數(shù)僅在被定義的宏中有效。▲
每個宏最多可以用32個宏參數(shù)?!?/p>
宏可以嵌套,但宏的所有元素都應(yīng)在同一個文件中定義。7.2宏指令(2)調(diào)用宏:在定義了宏以后,就可以在源程序中將宏的名字作為操作碼來調(diào)用。
格式:
宏名[實(shí)參數(shù)1][,實(shí)參數(shù)2]…[,實(shí)參數(shù)n]6,7.2宏指令(3)展開宏:匯編器在對源文件進(jìn)行匯編時,對調(diào)用的宏進(jìn)行展開。在展開過程中,匯編器用宏體取代宏調(diào)用語句,宏體中的形式參數(shù)實(shí)際參數(shù)代替。
①如果某個形式參數(shù)沒有對應(yīng)的實(shí)參數(shù)為其賦值,該形式參數(shù)將被空串(“”)代替。②如果實(shí)參數(shù)的個數(shù)多于形式參數(shù),則余下的實(shí)參數(shù)將賦給最后一個形式參數(shù)(用逗號隔開)。③如果要把一串變量賦給一個形式參數(shù),或者把一個逗號(或分號)傳給一個形式參數(shù),就必須用引號將它們引起來。④匯編時,匯編器先用實(shí)參數(shù)代替形式參數(shù)并展開宏,然后把源語句匯編為目標(biāo)代碼,并輸出到列表文件中。7,7.2宏指令例6.23
宏定義:
parms .macrox,y,z a=x b=y c=z .endm調(diào)用宏:
匯編時展開宏:
parms 100,200
;a=100
;b=200
;c=“”
parms
“100,200,300”,55,66,77
;a=“100,200,300”
;b=55
;c=66,778
.C
——C源文件
.ASM
——匯編文件
.CMD
——命令文件.H
——頭文件.PRJ
——工程文件
.LST——列表文件
.MAP——映射文件
.OBJ——目標(biāo)文件
.OUT——可執(zhí)行文件
7.3通用目標(biāo)文件格式通用目標(biāo)文件格式允許用戶編寫匯編語言程序時使用代碼塊和數(shù)據(jù)塊,這些塊被稱為段。用匯編器可以將匯編語言源程序匯編為目標(biāo)文件,用連接器將若干個目標(biāo)文件連接成一個可被DSP芯片執(zhí)行的可執(zhí)行文件。這些目標(biāo)文件的格式稱為通用目標(biāo)文件格式(COFF,CommonObjectFileFormat)。DSP系統(tǒng)中常用的文件后綴9
COFF目標(biāo)文件總是包括3個默認(rèn)的段:
▲文本段:用.text定義,通常包括可執(zhí)行代碼。
▲
數(shù)據(jù)段:用.data定義,通常包括已初始化的數(shù)據(jù)。
▲
預(yù)留段:用.bss定義,通常保留用于未初始化變量的空間。用.usect,.sect或.asect偽指令可創(chuàng)建命名段。這些命名段可以像.text,.data一樣被使用。
COFF有兩種基本類型的段:①已初始化的段——包含數(shù)據(jù)或代碼。用.text和.data偽指令定義的段和用.sect或.asect偽指令創(chuàng)建的命名段均為已初始化的段。②未初始化的段——在內(nèi)存映射中為未初始化數(shù)據(jù)保留空間。.bss段和用.usect偽指令創(chuàng)建的命名段是未初始化的段,在目標(biāo)文件中這些段沒有實(shí)際內(nèi)容。段7.3通用目標(biāo)文件格式目標(biāo)文件的最小單位被稱為段,它是在存儲器中占有連續(xù)空間的代碼塊或數(shù)據(jù)塊。107.3通用目標(biāo)文件格式▲
匯編器在匯編過程中建立這些段,連接器把段重定位到目標(biāo)存儲器中▲
所有的段都是獨(dú)立的、可定位的▲
相同的段將按先后次序定位在連續(xù)的區(qū)域內(nèi)▲
未初始化段被定位到RAM內(nèi);初始化段可單獨(dú)定位在RAM或ROM內(nèi),并且在連接時還可引用其他段內(nèi)定義的符號匯編器為每個段設(shè)置了一個獨(dú)立的程序計數(shù)器,這些計數(shù)器稱為段程序計數(shù)器(SPC,SectionProgramCounters)??梢杂枚纬绦蛴嫈?shù)器排列偽指令.align或.even,強(qiáng)迫SPC指向預(yù)定的位置。段段程序計數(shù)器117.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲連接器通過連接COFF目標(biāo)文件建立可執(zhí)行文件,▲目標(biāo)文件中的段是連接時的重要依據(jù)?!B接器可把段定位到用戶系統(tǒng)已配置的存儲器中?!B接器命令文件(.cmd)則給出連接器在連接時的有關(guān)信息▲
DSP芯片的存儲器配置隨應(yīng)用的不同而不同. 用連接器偽指令
MEMORY(存儲器偽指令)可以確定目標(biāo)系統(tǒng)的各種內(nèi)存配置?!?dāng)MEMORY決定了存儲器模式后,可以用連接器偽指令SECTIONS
(段偽指令)確定連接器組合輸入段的方法和輸出段在存儲器中的位置?!绻皇褂眠@兩條偽指令,連接器則用默認(rèn)存儲器的定位方式來組合段,并把它們定位到存儲器中。127.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令連接器命令文件.cmd連接器命令文件允許用戶把連接信息放置在文件中。命令文件是ASCII文件,可以包含下列各項中的某一項:▲輸入文件名。該輸入文件可以是目標(biāo)文件、歸檔庫或其他命令文件?!B接器選項。在命令文件中可以用命令行上的連接器選項。▲MEMORY和SECTIONS連接器偽指令。▲注釋。用戶可以使用/*和*/定界符把注釋加到命令文件中。▲賦值語句。該語句定義并賦值給全局符號。137.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令連接時給符號賦值▲賦值語句的語法:連接器中賦值語句的語法類似于C語言中賦值語句語法。符號=表達(dá)式 ;把表達(dá)式的值賦予符號符號+=表達(dá)式 ;把表達(dá)式的值加到符號上符號-=表達(dá)式 ;從符號減去表達(dá)式的值符號*=表達(dá)式 ;符號乘以表達(dá)式符號/=表達(dá)式 ;符號除以表達(dá)式
▲把SPC賦予符號“.”:“.”表示定位期間SPC的當(dāng)前值?!?”符號僅可用在SECTIONS偽指令內(nèi)的賦值語句中,用來表示段的當(dāng)前運(yùn)行地址。147.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲賦值表達(dá)式:連接器表達(dá)式必須遵循以下規(guī)則:√
表達(dá)式可包含全局符號、常數(shù),以及表8-3-1所列的C語言運(yùn)算符?!?/p>
所有數(shù)被當(dāng)做長整數(shù)(32位)處理?!?/p>
連接器用和匯編器相同的方式識別常數(shù)。見表8-3-2.√表達(dá)式中的符號只具有符號的地址值,不進(jìn)行類型檢查?!?/p>
連接器表達(dá)式可以是絕對的或可重定位的。157.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲MEMORY偽指令——確定在目標(biāo)系統(tǒng)中具有物理位置且可被程序使用的存儲器范圍。MEMORY偽指令的一般語句形式為:MEMORY{PAGE0:存儲器名1[(屬性)]:ORIGIN=常數(shù),LENGTH=常數(shù)
PAGEn:存儲器名n[(屬性)]:ORIGIN=常數(shù),LENGTH=常數(shù)
}167.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令PAGE:
√定義一個存儲器空間,用戶可以定義多達(dá)255頁?!?/p>
PAGE0定義程序存儲器,PAGE1定義數(shù)據(jù)存儲器,PAGE2定義I/O空間?!倘绻脩魶]有使用PAGE選項,那么連接器把段定位到PAGE0?!堂總€PAGE代表一個完全獨(dú)立的地址空間?!淘赑AGE0上已配置的存儲器可以和在PAGE1上已配置的存儲器重疊。存儲器名:√命名存儲器范圍。由1~8個字符組成?!堂謱τ谶B接器沒有特殊的意義,僅指明存儲器的區(qū)域?!淘诓煌撋洗鎯ζ鞣秶梢杂邢嗤拿?,√在同一頁,所有的存儲器范圍不能有相同的名字,且不能重疊。177.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令屬性:可選項,當(dāng)被使用時,必須用括號括起來。屬性把輸出段的定位限制在某些存儲器范圍內(nèi)。如果用戶不使用任何屬性,則輸出段即可以定位到任何范圍內(nèi)。有效的屬性包括:R——存儲器可讀;W——存儲器可寫;X——儲器可以包含可執(zhí)行代碼;I——存儲器可被初始化。ORIGIN:指定存儲器的起始地址,也可以寫成org或o。這個值是以字節(jié)規(guī)定的16位常數(shù),也可以是十進(jìn)制、八進(jìn)制或十六進(jìn)制。
LENGTH:指定存儲器的長度,也可以寫成len或l。數(shù)值的表示與origin相同▲
當(dāng)用戶使用MEMORY偽指令時,要確信已指定了所有可用于裝載代碼的存儲器范圍?!?/p>
連接器不把程序放到未配置的存儲器中。注意:187.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令例6.24
MEMORY指令舉例
/*SampleCommandfilewithMEMORYdirective*/file1.objfile2.obj-oprog.out
MEMORY{PAGE0:ROM:ORIGIN=0C00h,LENGTH=1000hPAGE1:SCRATCH:ORIGIN=60h,LENGTH=20hRAM:ORIGIN=200h,LENGTH=200h}該例定義了一個存儲器系統(tǒng):具有程序存儲器中地址為0C00h,長度為4K字的ROM;數(shù)據(jù)存儲器中地址為60h,長度為32字的RAM;數(shù)據(jù)存儲器中地址為200h,長度為512字的RAM。197.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
SECTIONS偽指令
——
描述輸入段怎樣被組合到輸出段內(nèi);定義在執(zhí)行程序中的輸出段;規(guī)定輸出段在存儲器中的位置;允許重新命名輸出段。SECTIONS偽指令的一般語法形式是:SECTIONS{
段名1:[特性1,特性2,……]
段名2:[特性1,特性2,……]……………}指令中的每一行從段名開始定義輸出段,輸出段是輸出文件內(nèi)的段。在段名之后是特性列表(以逗號隔開),定義段的內(nèi)容以及它是怎樣被分配的。207.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令特性列表的選項(段所具備的特性)有以下幾種?!?/p>
裝載地址:規(guī)定段將被裝載在存儲器中的位置。
語法:load=allocation或allocation或{}>allocationallocation是MEMORY偽指令所定義的范圍內(nèi)地址?!?/p>
運(yùn)行地址:定義段在存儲器內(nèi)運(yùn)行的位置。
語法:run=allocation或 run>allocation
如果在一個段中l(wèi)oad和run的地址相同,run可以省略。連接器為每個輸出段分配兩個目標(biāo)存儲器地址:裝載地址和運(yùn)行地址。通常這兩個地址是相同的。但有時用戶可能把代碼裝入存儲器的一個區(qū)域卻在另一個區(qū)域運(yùn)行它。例如在引導(dǎo)加載程序,用load設(shè)置它的裝載地址,用run設(shè)置它的運(yùn)行地址。217.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
調(diào)準(zhǔn)地址:規(guī)定段應(yīng)在地址邊界上開始。調(diào)準(zhǔn)可以使連接器把輸出段放在位于n字邊界的地址,其中n是2的冪。
語法:align=n或 align=(n)
如.textalign=128,即將.text段定位于頁邊界?!?/p>
塊地址:規(guī)定段必須裝在兩個地址邊界之間,它把段定位在大小為n的塊內(nèi)任何地方,如果段大于塊,那么段將從該邊界開始。和調(diào)準(zhǔn)一樣,n必須是2的冪。
語法:block=n或block(n)
如
.bssload=block(0x80)。定位.bss段使其包含在單個128字的頁內(nèi)或者從新頁開始。用戶可以單獨(dú)使用調(diào)準(zhǔn)或塊,也可以和裝入地址、運(yùn)行地址結(jié)合在一起使用,但是調(diào)準(zhǔn)和塊不能一起使用。227.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
輸入段:定義組成輸出段的輸入段。
語法:{input_sections}
輸入文件中的段組合起來形成輸出段,連接器按照所列出的輸入段的次序連接并組合它們。輸出段的大小是組成它的輸入段的大小之和。通用類型的段的規(guī)格說明中沒有輸入段。如:SECTIONS{.text:.data:.bss:}
此時連接器從輸入文件取出所有.text段并把它們組合到.text輸出段內(nèi)。連接器按照它在輸入文件中遇到的次序連接.text輸入段,對.data和.bss段的操作與.text相同。用戶也可以明確規(guī)定組成輸出段的輸入段,每個輸入段用它的文件名和段名來標(biāo)志。237.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令例6.25
SECTIONS{.text {f1.obj(.text) f2.obj(sec1) f3.obj f3.obj(.text,sec2)}
}
輸入段不必相互同名也不必和輸出段同名。如果列舉輸入文件時不帶段,那么它所有的段將被包含在輸出段之內(nèi)。247.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令
▲
段類型:定義特殊段類型的標(biāo)志。語法:type=COPY
或
type=DSECT
或type=NOLOAD
用戶可以把這3種特殊的類型賦予輸出段。用COPY和DSECT創(chuàng)建的段是一個虛段,它不包括在輸出段存儲器分配內(nèi),也不占據(jù)存儲器空間,不包括在存儲器映象列表中。但在虛段中定義的全局符號可以被其他輸入段引用,COPY段可以將段的內(nèi)容、重定位信息及行號信息放在輸出模塊中,而DSECT段則不放置。NOLOAD創(chuàng)建的段不將段的內(nèi)容、重定位信息及行號信息放在輸出模塊中,但連接器為其分配空間并包括在存儲器映象列表中。257.3通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
填充值:定義用于填充初始化空位的數(shù)值。
語法:file=value
或
name:…{…}=value
當(dāng)初始化輸出段內(nèi)有空位存在時,連接器必須提供原始數(shù)據(jù)以填充它。連接器用16位數(shù)值填充空位,該數(shù)值在存儲器內(nèi)復(fù)制直至它填滿空位為止。267.4通用目標(biāo)文件格式連接器命令文件和連接器偽指令例6.26
SETIONS偽指令的使用file1.objfile2.obj -oprog.out
SECTIONS{.text:load=ROM run=0800h.const:load=ROM.bss:load=RAMvectors:load=0FF80h {t1.obj(.intvec1) t2.obj(.intvec2)
endvec=. }.data:align=16}277.4通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
連接器舉例
例6.27是一個名為demo.cmd的連接器命令文件,它連接了3個目標(biāo)文件:demo.obj,fft.obj和tables.obj,并創(chuàng)建了一個名為demo.out的可執(zhí)行程序。假設(shè)目標(biāo)存儲器具有下列配置。程序存儲器:
地址范圍
內(nèi)容0xF0000~0x3FFFBF片內(nèi)ROM0x3FFFC0~0x3FFFFF中斷向量表數(shù)據(jù)存儲器:
地址范圍
內(nèi)容0x000040~0x0001FF 堆棧0x000200~0x0007FF RAM_10x3ED000~0x3EFFFF RAM_228例6.27
命令文件exmp.cmd
/** 定義連接器選項 **/-e SETUP/*定義程序入口 */-o demo.out
/*命名輸出文件*/-m demo.map
/*創(chuàng)建一個輸出列表文件*/
/** 定義輸入文件 **/demo.obj
/*連接三個目標(biāo)文件*/fft.objtables.obj/** 定義存儲器配置 **/MEMORY{PAGE0:ROM(R):ORIGIN=3F0000h,LENGTH=0FFC0hVECTORS(R):ORIGIN=3FFFC0h,LENGTH=0040hPAGE1:STACK(RW):ORIGIN=000040h,LENGTH=01C0hRAM_2(RW)
:ORIGIN=000200h,LENGTH=0600hRAM_1(RW)
:ORIGIN=3ED000h,LENGTH=3000h}
29SECTIONS{vectors:{}>VECTORS,PAGE=0 .text:load=ROM,PAGE=0 .data:file=07A1Ch,load=RAM_1,PAGE=1
{tables.obj(.data)
fft.obj(.data)+=100h;/*創(chuàng)建一個長度為100的空間,用07A1Ch填充*/
}
var_defs:{}>RAM_2page=1/*包含在dmo.obj文件中var_defs段的變量連接到數(shù)據(jù)塊RAM_2中*/
.bss:{}>RAM_1,page=1,fill=0FFFFh/*.bss的填充和鏈接*/
}7.4通用目標(biāo)文件格式連接器命令文件和連接器偽指令307.4通用目標(biāo)文件格式連接器命令文件和連接器偽指令▲
TMS320C228x器件的默認(rèn)定位MEMORY{PAGE0:PROG:ORIGIN=0x000040H,LENGTH=0x3FFFC0HPAGE1:DATA:ORIGIN=0x000000H,LENGTH=0x010000HPAGE1:DATA1:ORIGIN=0x010000H,LENGTH=0x3F0000H}
SECTIONS{.text:PAGE=0 .data:PAGE=0.cinit:PAGE=0/*僅在C程序中使用*/ .bss:PAGE=1 }用戶沒有使用MEMORY和SECTIONS的情況下,存儲器使用該默認(rèn)定位317.4程序舉例▲
公用文件程序設(shè)計時,需在多個模塊中使用相同設(shè)置和中斷處理:
將芯片中映射至I/O空間的寄存器地址及標(biāo)號、預(yù)置變量和常數(shù)的空間等設(shè)置語句集中在一個文件中,稱為I/O寄存器頭文件(如init.h);
將轉(zhuǎn)移中斷矢量地址的指令集中在一個文件中,稱為中斷矢量頭文件(如vector.h);
將定義程序、數(shù)據(jù)和I/O空間地址塊大小和位置的偽指令集中在一個文件中,稱為命令文件(如F206.cmd)。
這3個文件稱為公用文件。
32
▲
用.copy或.include偽指令將I/O寄存器頭文件和中斷矢量頭文件復(fù)制到該應(yīng)用程序中,形成一個匯編源程序(如
delay.asm)
▲
由匯編器進(jìn)行匯編后生成一個目標(biāo)文件(如delay.obj
溫馨提示
- 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年反饋報警器行業(yè)當(dāng)前市場規(guī)模及未來五到十年發(fā)展趨勢報告
- 2025年配電安規(guī)知識考試題庫附答案
- 播種綠色播種希望課件
- 2024年胰島素筆注射操作并發(fā)癥預(yù)防和處理試題及答案
- 2024年全國《消費(fèi)者權(quán)益保護(hù)》知識試題與答案
- 2025年社會工作者之初級社會工作實(shí)務(wù)??寄M試題(帶答案)
- 2025年醫(yī)師定期考核題庫及參考答案
- 2025年全民消費(fèi)者權(quán)益保護(hù)法相關(guān)知識考試題與答案
- 2024年事業(yè)單位招聘:國網(wǎng)配電安規(guī)技術(shù)員安全知識考試題(附含答案)
- 山西省忻州市2024-2025學(xué)年七年級下學(xué)期期末語文試題(解析版)
- 倉庫人員防暑措施方案
- 小學(xué)教師嘉獎主要事跡材料簡短
- 2024年江西省高考化學(xué)試卷(真題+答案)
- 《科技英語翻譯方法》課件
- 血液透析診療指南
- 2023年河南省對口升學(xué)養(yǎng)殖類專業(yè)課試卷
- 社區(qū)健康服務(wù)與管理教案
- 房屋裝修合同范本下載
- 2023學(xué)年一年級語文下冊看拼音寫詞語字帖(全冊 部編版)
- JB T 6527-2006組合冷庫用隔熱夾芯板
- 沙漠學(xué)全套課件
評論
0/150
提交評論