版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章匯編語言程序格式§4.1匯編語言語句種類及格式§4.2偽操作§4.4匯編語言的上機過程§4.1匯編語言語句種類及格式指令語句偽指令語句宏指令一、指令語句使CPU產(chǎn)生動作、并在程序執(zhí)行時才處理的語句,就是第2章學習的處理器指令書寫格式
[標號:]指令助記符[DEST[,SRC]][;注釋] 標號:一條指令的符號地址??梢允÷?,如有必須以“:”作為結(jié)束標志。在程序段或子程序段的第一條指令處可使用標號,以在程序需要時轉(zhuǎn)移到該處時,以標號的形式引用。指令語句—標號的命名標號的命名:根據(jù)用途,由字母、數(shù)字、專用符號?-$@ 約定:
最長31個字符
第一個字符不能是數(shù)字 ?-$@可出現(xiàn)在標號的任意位置,但?$不能單獨使用 .只能出現(xiàn)在起始位置 一個程序中,每個標識符的定義是唯一的,且不能與任何保留字相同二、偽指令語句(Directive)——不產(chǎn)生CPU動作、在程序執(zhí)行前由匯編程序處理的說明性語句,例如,數(shù)據(jù)說明、變量定義等等偽指令與具體的處理器類型無關(guān),但與匯編程序的版本有關(guān)[名字]偽指令[操作數(shù)][;注釋]偽指令語句—格式說明符號名字段:與標號相區(qū)別,不帶“:”可以是常量名、變量名、過程名、結(jié)構(gòu)名、記錄名等可視為指令語句中的操作數(shù)(如符號名就表示一個常量或存儲地址命名規(guī)則與標號相同偽指令字段:規(guī)定這條語句要求匯編程序完成的具體操作§4.2偽操作一、數(shù)據(jù)定義及存儲器分配偽操作二、表達式賦值偽操作三、段定義偽操作四、程序開始和結(jié)束偽操作五、地址計數(shù)器及對準偽操作六、基數(shù)控制偽操作七、處理器選擇偽操作數(shù)據(jù)是語句中操作數(shù)的基本組成部分一般來講數(shù)據(jù)具有數(shù)值和屬性兩個特征匯編語言能識別的數(shù)據(jù)項包括:常數(shù)、變量和標號一、數(shù)據(jù)定義及存儲器分配偽操作變量:代表存儲在某些存儲單元中的數(shù)據(jù),在程序運行期間可以修改;對變量的訪問以變量名的形式進行;可認為變量名為存儲單元的符號地址變量的定義與預置 由數(shù)據(jù)定義偽操作完成分配存儲單元起名字賦初值一、數(shù)據(jù)定義偽指令的格式變量名DBDWDDDQ表達式1,表達式2,…段屬性(SEG):表示變量存放在哪個邏輯段中,訪問時要使之成為當前段偏移量屬性(OFFSET):表示變量在所屬邏輯段中距起始點的距離類型屬性(TYPE):表示變量所占字節(jié)數(shù)一、數(shù)據(jù)定義偽指令(表達式)數(shù)值表達式 D1DB12H,34H,56H(D1)=12H,(D1+1)=34H,(D1+2)=56HD2DW1234H,5678H(D2)=1234H,(D2+2)=5678H?表達式:表示該單元的內(nèi)容任意D3DB?,? ;表示分配2個字節(jié)D4DW?,? ;表示分配2個字一、數(shù)據(jù)定義偽指令(表達式)字符串表達式STR1DB‘ABCDE’ ;為每個字符分配1個單元 STR2DW‘AB’,’CD’ ;為由2個字符組成的字符串分配2個單元41H42H43H44H45HSTR142H41H44H43HSTR2一、數(shù)據(jù)定義偽指令(表達式)帶DUP的表達式變量名DBDWDDDQ表達式1DUP(表達式2) D1DB20HDUP(?) ;預留20H個字節(jié),內(nèi)容任意次數(shù)內(nèi)容 D2DB10HDUP(‘ABCD’) ;重復10H個‘ABCD’,共占40H字節(jié) D3DW10HDUP(4) ;重復10H個字單元,內(nèi)容0004H,共占20H字節(jié)一、數(shù)據(jù)定義偽指令(表達式)帶DUP的表達式—DUP操作符可重復使用 D4DB10HDUP(4DUP(2),7)
;重復10H個(2,2,2,2,7),共占50H字節(jié)1)變量的屬性:段屬性(SEG)、偏移量屬性(OFFSET)和類型屬性對數(shù)據(jù)定義偽指令前面的變量還要注意它的類型屬性問題。變量表示該偽指令中的第一個數(shù)據(jù)項的偏移地址,此外,它還具有一個類型屬性,用來表示該語句中的每一個數(shù)據(jù)項的長度(以字節(jié)為單位表示),因此DB偽指令的類型屬性為1,DW為2,DD為4,DQ為8,DT為10。變量表達式的屬性和變量是相同的。匯編程序可以用這種隱含的類型屬性來確定某些指令是字指令還是字節(jié)指令例:
OPER1DB?,?
OPER2DW?,?
.
.
.
MOVOPER1,0;字節(jié)指令
MOVOPER2,0;字指令
MOVAX,OPER1+1;錯誤指令:類型不匹配
MOVAL,OPER2;錯誤指令:類型不匹配
變量表達式OPER1+1為字節(jié)類型屬性
OPER2為字類型屬性5、變量和標號的屬性:2)指定操作數(shù)的類型屬性:PTR屬性操作符:PTR指定操作數(shù)的類型屬性,它優(yōu)先于隱含的類型屬性。其格式為:
類型PTR變量[±常數(shù)表達式]其中類型可以是BYTE、WORD、DWORD、FWORD、QWORD或TBYTE,這樣變量的類型就可以指定了。
例:下例中的兩條MOV指令把OPER1+1的類型屬性指定為字,把OPER2的類型屬性指定為字節(jié),這樣指令中兩個操作數(shù)的屬性就一致了,匯編時就不會出錯了。
OPER1DB?,?
OPER2DW?,?
.
.
.
MOVAX,WORDPTROPER1+1
MOVAL,BYTEPTROPER2
LABEL偽指令
LABEL可以使同一個變量具有不同的類型屬性。其格式為:
變量名LABEL類型
或標號LABEL類型
其中變量的數(shù)據(jù)類型可以是BYTE,WORD,DWORD,標號的代碼類型可以是NEAR或FAR。例如:
BYTE_ARRAYLABELBYTE
WORD_ARRAYDW50DUP(?)
在50個字數(shù)組中的第一個字節(jié)的地址賦予兩個不同類型的變量名:字節(jié)類型的變量BYTE_ARRAY和字類型變量WORD_ARRAY。
在程序中訪問數(shù)組單元時,要按指令類型來選擇變量,如下面兩條指令:
MOVWORD_ARRAY+2,0;字指令,
;把該數(shù)組的第3個和第4個字節(jié)置0
MOVBYTE_ARRAY+2,0;字節(jié)指令,
;把該數(shù)組的第3個字節(jié)置0BYTE_ARRAY
WORD_ARRAY
均為變量名,他們具有相同的SEG OFFSET 屬性,但TYPE屬性不同BYTE_A:BYTEWORD_A:WORD標號指令的符號地址段屬性(SEG)偏移量屬性(OFFSET)距離屬性(Distance類型):表示標號的轉(zhuǎn)移特性類型: NEAR:本標號只能被標號所在段的指令訪問(段內(nèi)轉(zhuǎn) 移、調(diào)用)
FAR:可被其他段的指令訪問(段間調(diào)用、轉(zhuǎn)移)標號設置標號距離屬性的方法
1)隱含方式:在指令語句中使用標號后,其隱含為NEAR屬性
SUB1:MOVAL,30H ;SUB1具有NEAR屬性 ;該方式定義的標號只能具備NEAR屬性標號設置標號距離屬性的方法
2)用LABEL偽指令賦予標號距離屬性
名稱LABEL類型SEGOFFSETDistance 標識符標號NEAR/FAR
該偽指令一般與指令語句/數(shù)據(jù)定義偽指令連用,以補充或設置與值連用的標號/變量的距離/類型屬性設置標號距離屬性的方法(例1)
SUB1: MOVAL,30H標識符SUB1_FAR SUB1 均為指令的符號地址,他們具有SEG OFFSET 相同的屬性,但Distance屬性不同SUB1_FAR:FARSUB1:NEAR
段內(nèi)轉(zhuǎn)移/調(diào)用:
SUB1
SUB1_FAR LABELFAR
段間轉(zhuǎn)移/調(diào)用:
SUB1_FAR變量的使用—在指令語句中對已經(jīng)定義的變量直接引用其符號名DATASEGMENT DA1 DB0FEHDA2 DW52ACHDA3DB10HDUP(?)DA4DW10HDUP(1) …… MOVAL,DA1;AL=FEH MOVBX,DA2;BX=52ACH MOVSI,2 MOVDA3[SI],AL MOVDA4[SI],BX 直接尋址相對變址尋址FEAC5200010001DA1DA2DA3DA3+1DA3+2DA4DA4+252AC變量的使用—在偽指令語句中DATASEGMENT DA1 DB12HNUM DB75HHARRAYDW20HDUP(0)ADR1DWNUMADR2DDNUM ……DS=21FDH127500210100FDDA1NUMARRAYADR1ADR2000100
DW:定義的存儲單元存放相應變量的偏移量DD:定義的存儲單元存放相應變量的偏移量和段基值二、地址計數(shù)器及對準偽操作地址計數(shù)器$:匯編程序在為每條指令或變量分配內(nèi)存時,使用當前位置計數(shù)器來指示下一指令或數(shù)據(jù)的偏移量,匯編語言允許用戶直接用$來引用地址計數(shù)器的值
◆地址計數(shù)器與對準偽操作:地址計數(shù)器$:例如指令:
JMP$+6
它的轉(zhuǎn)向地址是JMP指令的首地址加上6。當$用在指令中時,它表示本條指令的第一個字節(jié)的地址。在這里,$+6必須是另一條指令的首地址。否則,匯編程序?qū)⒅甘境鲥e信息。當$用在偽指令的參數(shù)字段時,則和它用在指令中的情況不同,它所表示的是地址計數(shù)器的當前值。例如指令:
ARRAYDW1,2,$+4,3,4,$+4
00H01H00H02H00H
7CH
00H03H00H04H00H
82H
ARRAY007E007800740078H+4=007CH定位偽指令: ORG表達式 將表達式的值賦給當前位置計數(shù)器。即該偽指令后的指令或變量以表達式的值為偏移量例如:SEG1SEGMENTORG10HVAR1DW1234H;VAR1的偏移地址為10hORG20HVAR2DW5678HORG$+8VAR3DW1357HSEG1ENDS
EVEN
使下一指令或變量的偏移量為偶數(shù)例如:ADB‘morning’EVENBDW2DUP(?)五、地址計數(shù)器及對準偽操作(例)DATA SEGMENT ORG30HDB1 DB12H,34H ORG$+20HSTR DB‘ABC’CNT EQU$-STR EVENDW1 DW20HDUP(0)DATA ENDS ……CODE SEGMENT ASSUMECS:CODE,DS:DATA ORG10HSTART:MOVAX,DATA MOVDS,AX ……CODE ENDS ENDSTARTDATA30HDB143HDD1STRDW142H41H00123440H20H30H00三、表達式賦值偽操作等值語句符號EQU表達式;將表達式的值賦給左邊的符號EQU是一個賦值偽操作(偽指令),它給一個數(shù)據(jù)標號賦于一個常數(shù)值,但這個常數(shù)不占用存儲單元。當這個數(shù)據(jù)標號出現(xiàn)在程序中時,匯編程序即用它的常數(shù)值代替數(shù)據(jù)標號。EQU可以在數(shù)據(jù)段之外使用,甚至可用在代碼段中間。在同一程序中,同一符號不能用EQU重復定義。表達式的形式1)常數(shù)或數(shù)值表達式
CNTEQU5 NUMEQU13+5+4 2)址表達式
ADR1EQUDS:[BP+14] 3)變量、標號或指令助記符
W0EQUWORDPTRDA_BYTE假定在數(shù)據(jù)段和代碼段中要多次使用一個數(shù)據(jù)(如5),那么在編程時凡是用到5的地方都可用數(shù)據(jù)標號CNT來表示。如果程序想修改這個數(shù)據(jù),那么只需修改EQU的賦值,而無須修改程序中其它部分。
等值語句符號=表達式;功能與EQU相同,但可重復定義
CNT=5 NUM=4 …… NUM=NUM+10H CBD=DDA …… CBD=ADD例如,TMPEQU5
TMPEQUTMP+1則是錯誤語句,因為TMP已賦值為5,就不能再把它定義為其它數(shù)值。
而TMP=5
TMP=TMP+1則是允許使用的,因為=偽操作允許重復定義。第一個語句TMP的值為5,第二個語句TMP的值就為6了。賦值偽操作"="的作用與EQU類似。它們之間的區(qū)別是,EQU偽操作中的標號名是不允許重復定義的,而=偽操作是允許重復定義的。表達式與運算符指令中的操作數(shù)可以以表達式的形式出現(xiàn)常數(shù)變量標號 通過操作運算符連接而成表達式匯編程序在匯編過程中計算表達式,最終得到一個數(shù)值程序運行之前,就已經(jīng)計算出了表達式;所以,程序運行速度沒有變慢,但增強程序的可讀性MASM對除偽指令外各種匯編時處理的指令統(tǒng)稱為操作符(Operator)運算符算術(shù)操作(運算)符邏輯操作(運算)符關(guān)系操作(運算)符數(shù)值返回操作(運算)符屬性修改操作(運算)符 運算符運算符—算術(shù)運算符+-*/MOD實現(xiàn)加、減、乘、除、取模、移位的運算
MOVAX,3*4+5 ;等價于MOVAX,17其中MOD也稱為取模,它產(chǎn)生除法之后的余數(shù),如19mod7=5加+和減-運算符還可以用于地址表達式除加、減外,其他運算符的參數(shù)必須是整數(shù)算術(shù)運算符—例NUM =11011011B MOVAL,NUMSHL3 MOVAL,11011000B MOVBL,NUMSHR2 MOVAL,00110110B ADDDL,NUMSHR6 ADDDL,00000011B MOVAL,ARRAY[BX][SI] MOVAL,ARRAY[BX+SI]運算符—邏輯運算符ANDORXORNOT實現(xiàn)按位相與、相或、異或、求反的邏輯運算
ORAL,03HAND45H 0RAL,01H
MOVAX,NOT0F0H MOVAX,0FF0FH
MOVBL,55HAND0F0H MOVBL,50H運算符—關(guān)系運算符EQNEGTLTGELE用于比較和測試符號數(shù)值表達式1 關(guān)系運算符表達式2表達式為常數(shù)時,按無符號數(shù)進行比較表達式為變量(同段內(nèi))時,比較其偏移量MASM用0FFH/0FFFFH(補碼-1)表示條件為真MASM用0000H表示條件為假運算符—關(guān)系運算符(舉例)MOVAX,0FHEQ1111B ←→MOVAX,0FFFFHMOVBX,0FHNE1111B ←→ MOVBX,0VARDWNUMLT0ABH;當已定義的常數(shù)NUM小于ABH時,則VAR←0FFH運算符—數(shù)值返回運算符操作對象:存儲器操作數(shù)(變量/標號)格式: 運算符變量名/標號名SEG名字/標號返回名字或標號的段基值MOVAX,SEGK1OFFSET名字/標號返回名字或標號的段內(nèi)偏移地址MOVSI,OFFSETVAR運算符—數(shù)值返回運算符TYPE名字/標號返回名字或標號的類型屬性,以數(shù)字形式表示類型屬性數(shù)字形式變量BYTE1WORD2DWORD4標號NEAR-1FAR-2運算符—數(shù)值返回運算符(例)V1 DB‘ABCD’V2 DW1234H,5678HV3 DDV2 …… MOVAL,TYPEV1 ;AL=1 MOVCL,TYPEV2 ;CL=2 MOVCH,TYPEV3 ;CH=4
運算符—數(shù)值返回運算符LENGTH名字/標號只用于變量,且為DUP所定義
如未用DUP定義則返回值為1如使用DUP定義則返回最外層之值運算符—數(shù)值返回運算符(例)K1 DB10HDUP(0)K2 DB10H,20H,30HK3 DW20HDUP(0,1,2DUP(2))K4 DB‘ABCD’
…… MOVAL,LENGTHK1 ;AL=10HMOVBL,LENGTHK2 ;BL=1MOVCX,LENGTHK3 ;CX=20HMOVDX,LENGTHK4 ;DX=1運算符—數(shù)值返回運算符SIZE名字 只用于變量,得到重復定義的變量的數(shù)組元素所占字節(jié)數(shù)=LENGTH*TYPEK1 DB10HDUP(0)K2 DB10H,20H,30HK3 DW20HDUP(0,1,2DUP(2))K4 DB‘ABCD’
…… MOVAL,LENGTHK1 ;AL=10HMOVBL,LENGTHK2 ;BL=1MOVCX,LENGTHK3 ;CX=20HMOVDX,LENGTHK4 ;DX=1MOVAL,SIZEK1 ;AL=10HMOVBL,SIZEK2 ;BL=1MOVCL,SIZEK3 ;CL=40HMOVDL,SIZEK4 ;DL=1 運算符—屬性修改運算符對存儲器操作數(shù)(名字/標號)的屬性進行修改PTR運算符 類型PTR地址表達式
該修改是臨時的,只在當前語句有效標號:NEAR/FAR變量:BYTE/WORD/DWORD 標號名作為地址指針的R變量名
運算符—屬性修改運算符(例)DA_BYTE DB20HDUP(0)DA_WORDDW30HDUP(0) …… LEABXDA_WORD LEASI,DA_BYTE
MOVAX,WORDPTRBA_BYTE[10H] ADDBYTEPTRDA_WORD[20H],BL INCBYTEPTR[BX] SUBWORDPTR[SI],30H ANDAX,WORDPTR[BX][SI] JMPFARPTRSUB1運算符—THIS運算符THIS類型名利用THIS說明的操作數(shù)具有匯編時的當前邏輯地址,但具有指定的類型LABEL偽指令的功能等同于“EQUTHIS”D_BYTE EQUTHISBYTEW_WORD DW20HDUP(0);定義20H字單元,該區(qū)域可按字節(jié)訪問,也可以按字訪問JMP_FAR EQUTHISFARJMP_NEAR:MOVAL,30H運算符—HIGH/LOW運算符操作對象:常數(shù)/地址表達式功能:取其高/低8位
CONSTEQU0ABCDH MOVAH,HIGHCONST ;AH=0ABH 運算符的優(yōu)先級1 ()<>[]·LENGTHSIZEWIDTHMASK2 PTROFFSETSEGTPYETHIS:3 HIGELOW4 */MODSHLSHR5 +-6 EQNEGTLTGELE7 NOT8 AND9 ORXOR10 SHORT建議采用圓括號“()”顯式表達,它可以極大地提高程序的可閱讀性四、段定義偽操作程序的段結(jié)構(gòu)段定義段尋址(指定當前段)段寄存器的裝入◆段定義偽操作:完整的段定義格式datasegment;定義數(shù)據(jù)段…dataends;extrasegment;定義附加段…extraends;codesegment;定義代碼段
assumecs:code,ds:data,es:extrastart:movax,datamovds,ax;段地址段寄存器…codeendsendstartPSPDSESSSCSEXE程序的內(nèi)存映象圖裝入模塊文件頭四、段定義偽操作—完整段定義偽指令段名 SEGMENT定位組合段字'類別'
…… ;語句序列段名 ENDS段定義由SEGMENT和ENDS這一對偽指令實現(xiàn),SEGMENT偽指令定義一個邏輯段的開始,ENDS偽指令表示一個段的結(jié)束段定義指令后的4個關(guān)鍵字用于確定段的各種屬性,堆棧段要采用stack組合類型如果不指定,則采用默認參數(shù);但如果指定,注意要按照上列次序四、段定義偽操作
—段定位(align)屬性表示對邏輯段起始邊界的選擇,可為:PAGE 段從一個頁邊界開始 (XXX00H,256Bytes/Page)
PARA 段節(jié)邊界開始(XXXX0H)DWORD 段從一個4倍數(shù)地址開始WORD 段從一個偶地址開始BYTE 段可以從任意單元開始完整段定義偽指令的默認定位屬性是PARA四、段定義偽操作
—段組合(combine)屬性指定多個邏輯段之間如何連接與定位,可為: PRIVATE
本段與其他段沒有連接關(guān)系,這是完整段定義偽指令默認的段組合方式 PUBLIC
在滿足定位關(guān)系的前提下,連接程序把本段與所有同名段相鄰地連接在一起,形成新的邏輯段。(可在程序的不同位置及不同的文件中使用段定義語句定義一個邏輯段) COMMON
產(chǎn)生一覆蓋段,兩個同名段起始地址相同,用較長的段覆蓋較短的段四、段定義偽操作
—段組合(combine)屬性STACK
把所有的同類別段連接在一起,段基值→SS,且自動為SP初始化。在一個程序中一般應該有一個堆棧段。AT表達式表示本段定位在表達式所指示的節(jié)的邊界上
AT0930H表示本段的物理地址從09300H開始MEMORY
表示本段定位在所有其它段的最高地址四、段定義偽操作
—段類別(class)屬性當連接程序組織段時,將所有的同類別段相鄰分配段類別可以是任意名稱,但必須位于單引號中大多數(shù)MASM程序使用'code'、'data'和'stack’來分別指名代碼段、數(shù)據(jù)段和堆棧段,以保持所有代碼和數(shù)據(jù)的連續(xù)DA1 SEGMENTPARA‘DATA’DD1 DB10DUP(12H)DA1 ENDSSTA1 SEGMENTSTACK‘STACK0’ DW20HDUP(?)STA1 ENDSDA2 SEGMENTPARA‘DATA’DD2 DB20HDUP(13H)DA2 ENDSSTA2 SEGMENTSTACK‘STACK0’ DW30HDUP(?)STA2 ENDSCODE SEGMENT ……CODE ENDSDA11213DA2CODEDD1DD260HSTA1131212STA240H20H10四、段定義偽操作—段尋址指明當前段
ASSUME段寄存器名:段名,段寄存器名:段名,……CSDSSSES
已經(jīng)定義的段
在程序運行過程中,可重新設置當前段,也可以刪除原有的設置
ASSUMEES:NOTHING ;刪除對ES的設置 ASSUMENOTHING ;刪除對所有段的設置四、段定義偽操作
—段寄存器的裝入ASSUME只說明了已哪些段為當前段,具體的段基值并沒有裝入DS與ES的裝入 用ASSUME將DS/ES與相應的段建立聯(lián)系后,用數(shù)據(jù)傳送指令
MOV AX,段名
MOV DS/ES,AX四、段定義偽操作
—段寄存器的裝入SS的裝入 在定義段時,用組合類型STACK說明
STACK1 SEGMENTPARASTACK DW20HDUP(0) STACK1 ENDS CODE SEGEMNT ASSUMECS:CODE,SS:STACK1 ……
SS獲得STACK1的段基值,且SP=40H四、段定義偽操作
—段寄存器的裝入SS的裝入(類似于DS/ES的方法)
STACK1 SEGMENT DW40HDUP(0) TOP LABELWORD STACK1 ENDS …… CODE SEGEMNT ASSUMECS:CODE …… MOVAX,STACK1 MOVSS,AX MOVSP,OFFSETTOP ;SP=80H ……
中間不得插入其他指令四、段定義偽操作
—段寄存器的裝入CS的裝入 用結(jié)束偽指令:每個源程序都必須以END偽指令結(jié)束
END起始地址
功能:標志源程序的結(jié)束 指定程序運行的起始地址標號表達式不一定是指令語句四、段定義偽操作
—段寄存器的裝入CS的裝入
CODE SEGEMNT ASSUMECS:CODE,SS:STACK1 START: …… …… ENDSTART
將后面的語句全部略去 將START所對應的程序在內(nèi) 存中的位置裝入CS和IP五、程序開始和結(jié)束偽操作開始:
NAMEmodul_name
TITLEtext
程序終止和匯編結(jié)束是兩碼事結(jié)束:
END
起始地址六、基數(shù)控制偽操作匯編語言源程序默認使用十進制,其他用標注表示(B,O,H)格式: RADIX表達式功能:把默認的基數(shù)改為2、8、16等 除指定進制外,其他加標注MOVBX,0FFHMOVBX,178RADIX16MOVBX,0FFMOVBX,178D例:設x,y,sum均為內(nèi)存單元的符號地址,編寫一源程序?qū)崿F(xiàn)x+y的運算,并把結(jié)果存入sum單元。(x,y均為16位數(shù)據(jù))。datasegmentxdw?ydw?sumdw?dataend
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑材料供貨與裝配式建筑構(gòu)件合同3篇
- 2025年度年度商標轉(zhuǎn)讓與新媒體營銷合同模板3篇
- 2025年度消防設施安全性能檢測與評估合同匯編3篇
- 二零二五年度農(nóng)村私人土地流轉(zhuǎn)合同(休閑農(nóng)業(yè)旅游合作)
- 2025年度健康醫(yī)療服務擔保合同解除與健康管理平臺合作協(xié)議3篇
- 2025年度外貿(mào)服裝品牌授權(quán)及全球市場拓展合同3篇
- 二零二五年度公司管理人員跨區(qū)域調(diào)動聘用合同3篇
- 2025年度茶樓租賃合同茶樓與茶葉供應商合作框架協(xié)議3篇
- 二零二五年度有機蔬菜代加工業(yè)務合同2篇
- 2024年中國百癬片市場調(diào)查研究報告
- 檢修平臺施工方案
- 第六單元大單元教學設計統(tǒng)編版語文八年級上冊
- GB/T 713.2-2023承壓設備用鋼板和鋼帶第2部分:規(guī)定溫度性能的非合金鋼和合金鋼
- 寵物養(yǎng)護與經(jīng)營專業(yè)《寵物解剖生理》課程標準
- 滬教2011課標版三年級起點五年級下冊《Buying Clothes》說課稿
- 幼兒園教職工教代會會議記錄
- 車輛移交安全協(xié)議書
- 《涑水記聞》2021年江蘇鎮(zhèn)江中考文言文閱讀真題(含答案與翻譯)
- 家庭家教家風·家庭美德·文明家庭主題班會
- 廬山云霧閱讀答案千姿百態(tài)
- 個人營業(yè)執(zhí)照注銷委托書范文
評論
0/150
提交評論