匯編語(yǔ)言 上機(jī)操作基本常識(shí)_第1頁(yè)
匯編語(yǔ)言 上機(jī)操作基本常識(shí)_第2頁(yè)
匯編語(yǔ)言 上機(jī)操作基本常識(shí)_第3頁(yè)
匯編語(yǔ)言 上機(jī)操作基本常識(shí)_第4頁(yè)
匯編語(yǔ)言 上機(jī)操作基本常識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第4章 匯編語(yǔ)言程序格式匯編程序功能偽操作匯編語(yǔ)言程序格式匯編語(yǔ)言程序的上機(jī)過程4.1匯編程序功能 EDIT MASM LINK 圖4.1匯編語(yǔ)言程序的建立及匯編過程源文件.asm編輯程序連接程序匯編程序目標(biāo)文件. obj可執(zhí)行文件.exe一、匯編語(yǔ)言源程序和匯編程序匯編程序的作用就是把源程序文件(ASM文件)轉(zhuǎn)換成用二進(jìn)制代碼表示的目標(biāo)程序文件(OBJ文件)。匯編程序的主要功能有: 檢查源程序。 測(cè)出源程序語(yǔ)法錯(cuò)誤,并給出錯(cuò)誤。 產(chǎn)生目標(biāo)程序,并可給出列表文件 展開宏指令。1、匯編語(yǔ)言源程序匯編語(yǔ)言源程序是用匯編語(yǔ)言編寫的程序,簡(jiǎn)稱匯編語(yǔ)言程序。匯 編語(yǔ)言程序通過編輯程序在計(jì)算機(jī)中建立匯編語(yǔ)

2、言源程序文件 (ASM文件)。2、匯編程序?qū)R編語(yǔ)言源程序編譯成目標(biāo)程序的加工程序稱為匯編程序。這一 加工過程稱為匯編。二、為運(yùn)行匯編語(yǔ)言程序 要在磁盤上建立如下文件: 1、EDIT.EXE (編輯程序)2、MASM.EXE (匯編程序)3、LINK.EXE (連接程序)4、DEBUG.COM(調(diào)試程序)偽指令屬于匯編控制命令,它所指示的操作是由匯編程序在匯編源程序時(shí)完成的,在匯編時(shí),它不產(chǎn)生目標(biāo)代碼,在將源程序匯編成目標(biāo)程序后,它就不復(fù)存在了。4.2偽指令 偽指令又稱為偽操作,偽指令是匯編語(yǔ)言程序設(shè)計(jì)的一個(gè)重要部 分,由于匯編程序在匯編過程中無(wú)法區(qū)分源程序中的分段情況,哪 些是數(shù)據(jù),哪些是指

3、令,也無(wú)法識(shí)別數(shù)據(jù)的類型,以及源程序在哪 結(jié)束,因此,80X86宏匯編語(yǔ)言提供了多種偽指令,它主要告訴匯編 程序如何正確地將匯編源程序匯編成目標(biāo)程序。 偽指令語(yǔ)句功能:指示匯編程序在匯編源程序時(shí)完成某些工作,比 如完成數(shù)據(jù)定義、分配存儲(chǔ)區(qū)、指示程序結(jié)束等。 一條偽指令語(yǔ)句也由四個(gè)字段組成,其一般格式如下: 符號(hào)名偽指令符操作數(shù);注釋4.2偽指令一、段結(jié)構(gòu)偽指令 編制一個(gè)80X86匯編語(yǔ)言源程序,段是基礎(chǔ),這有兩方 面含義:一是必須按段來(lái)構(gòu)造程序,二是在程序執(zhí)行 時(shí),要憑借四個(gè)段寄存器對(duì)各個(gè)段的存儲(chǔ)單元進(jìn)行訪 問。段結(jié)構(gòu)偽指令主要有兩條語(yǔ)句,即段定義偽指令 和段尋址偽指令。4.2偽指令(一)、段

4、定義偽指令1、段定義偽指令的格式段名 SEGMENT 定位類型 組合類型 類別 段體段名 ENDS2、段定義偽指令的功能指定邏輯段的名字、范圍、段的起始邊界、段與段之間的連接關(guān)系。段定義偽指令中的SEGMENT和ENDS用于定義一個(gè)邏輯段,使用時(shí)必須成對(duì)出現(xiàn),分別表示段的起始和結(jié)束。4.2偽指令(二)、段尋址偽指令1、段尋址偽指令的格式ASSUME 段寄存器:段名 【,段寄存器:段名 】2、段尋址偽指令的功能主要用于指示匯編程序哪些段是當(dāng)前段以及這些段與段寄存器之間的對(duì)應(yīng)關(guān)系。例:ASSUME CS:CODE , DS:DATA , SS:STACKCODEDATASTACKCSDSSS對(duì)段尋

5、址偽指令的幾點(diǎn)說(shuō)明: 段寄存器名可為CS、DS、SS、ES四者之一。段名是指用SEGMENT/ ENDS語(yǔ)句已定義的段名,也可以是表達(dá)式“SEG 變量或標(biāo)號(hào)”,或者是關(guān)鍵字NOTHING; (使用NOTHING時(shí),來(lái)取消段寄存器與段之間的對(duì)應(yīng)關(guān)系)。 ASSUME偽指令設(shè)置在代碼段內(nèi),第一個(gè)ASSUME語(yǔ)句一般放在段定義語(yǔ)句之后,是說(shuō)明性語(yǔ)句。 在一個(gè)代碼段中,如果沒有另外的ASSUME偽指令重新設(shè)置,原有ASSUME語(yǔ)句的設(shè)置一直有效。 不在當(dāng)前段中的變量和數(shù)據(jù)存儲(chǔ)單元均是不可訪問的,否則,會(huì)在匯編時(shí)產(chǎn)生錯(cuò)誤或運(yùn)行時(shí)造成混亂,產(chǎn)生邏輯上的錯(cuò)誤,得出錯(cuò)誤結(jié)果。 ASSUME偽指令不產(chǎn)生任何目標(biāo)

6、代碼,它僅僅是告訴匯編程序,哪些段是當(dāng)前段,而且它們分別由哪個(gè)段寄存器指向。 匯編程序不能檢查在程序運(yùn)行期間段寄存器內(nèi)容是否與上述ASSUME語(yǔ)句的設(shè)置一致。如果在程序中間用ASSUME語(yǔ)句重建了DS或ES與某段的關(guān)系時(shí),就一定要緊跟著將這個(gè)新段首地址送入DS或ES中,否則,會(huì)因段寄存器的內(nèi)容未更改而使得后面數(shù)據(jù)的讀寫仍在原來(lái)的數(shù)據(jù)段中進(jìn)行,這樣的錯(cuò)誤,系統(tǒng)是檢查不出來(lái)的,即出現(xiàn)邏輯錯(cuò)誤。定位類型定位類型說(shuō)明段的起始地址應(yīng)有怎樣的邊界,它們可以是:PARA: 指定段的起始地址必須從小段邊界開始,即 段起始地址的最低的十六進(jìn)制數(shù)必須為0。這 樣偏移地址可以從0開始。(默認(rèn))BYTE: 該段可以從

7、任何地址開始。這樣起始偏移地 址可能不為0。WORD: 該段必須從字的邊界開始,即段起始地址必 須為偶數(shù)。DWORD: 該段必須從雙字的邊界開始,即段起始地址 的最低的十六進(jìn)制數(shù)必須為4的倍數(shù)。PAGE:該段必須從頁(yè)的邊界開始,即段起始地址的最低的兩 位十六進(jìn)制數(shù)必須為0。(能被256整除) 組合類型組合類型說(shuō)明程序連接時(shí)的段合并方法,它們可以是:PRIVATE: 該段為私有段,在連接時(shí)將不與其他模塊中的同名分段合并。 (默認(rèn))PUBLIC: 該段連接時(shí)可以把不同模塊中的同名段相連接而形成一個(gè)段, 其連接次序由連接命令指定。每一分段都從小段的邊界開始, 因此各模塊的原有段之間可能存在小于16個(gè)

8、字節(jié)的空隙。 (MEMORY與PUBLIC同義)COMMON: 該段連接時(shí)可以把不同模塊中的同名段重疊而形成一個(gè)段,由 于各同名段有相同的起始地址,所以會(huì)產(chǎn)生覆蓋。COMMON的連 接長(zhǎng)度時(shí)各分段中的最大長(zhǎng)度。重疊部分的內(nèi)容取決于排列在 最后一段的內(nèi)容。STACK: 把不同模塊中的同名段組合而形成一個(gè)堆棧段。該段的長(zhǎng)度為 原有段的總和,各原有段之間無(wú)PUBLIC所連接段中的間隙,而 且棧頂可自動(dòng)指向連接后形成的大堆棧段的棧頂。AT expression:使段地址是表達(dá)式所計(jì)算出來(lái)的16位值。但它不能用來(lái) 指定代碼段。類別在引號(hào)中給出連接時(shí)組成段的類型名。類別說(shuō)明并不能把相同類別的段合并起來(lái),但

9、在連接后形成的裝入模塊中,可以把它們的位置靠在一起。(LINK MUSIC+GROUND)例: STACK1 SEGMENT PARA STACK STACK DB 80 DUP (0) STACK1 ENDSTITLE偽指令可指定每一頁(yè)上打印的標(biāo)題。同時(shí),若程序中沒有NAME偽指令,則匯編程序?qū)⒂胻ext 中的前6個(gè)字符作為模塊名。text最多可有60個(gè)字符。若程序中既無(wú)NAME又無(wú)TITLE偽指令,則將用源程序名作為模塊名。所以NAME及TITLE偽指令并不是必要的,但一般常使用TITLE,以便在列表文件中能打印出標(biāo)題來(lái)。4.2偽指令二、源程序開始和結(jié)束偽指令(一)源程序開始偽指令 在源程

10、序開始處可以用NAME或TITLE為模塊取名字。TITLE偽指令 如果程序中沒有NAME偽指令,則也可使用TITLE偽指令。 格式:TITLE text NAME偽指令 格式:NAME 模塊名 匯編程序?qū)⒁越o出的“模塊名”作為模塊的名字。 其中,地址表達(dá)式為可選項(xiàng),若選用地址表達(dá)式,則表示此程序是 主程序,它可以單獨(dú)執(zhí)行,其地址表達(dá)式為該程序的啟動(dòng)地址,即 程序開始運(yùn)行的第一條指令的地址,例如,“ENDSTART”,此 START是第一條指令的標(biāo)號(hào);若不選用表達(dá)式,則說(shuō)明此程序?yàn)橐?子程序,不能單獨(dú)運(yùn)行,只能被其它程序調(diào)用。4.2偽指令二、源程序開始和結(jié)束偽指令(二)源程序結(jié)束偽指令 格式:E

11、ND 地址表達(dá)式 功能:該語(yǔ)句為源程序的最后一個(gè)語(yǔ)句,用以標(biāo)志整個(gè)程序的結(jié) 束,即告訴匯編程序匯編工作到此結(jié)束。 4.2偽指令1、常用的數(shù)據(jù)定義偽指令有DB、DW、DD、DQ、DT。 格式:變量 數(shù)據(jù)定義偽指令 表達(dá)式 ,表達(dá)式, 功能:定義數(shù)據(jù)存儲(chǔ)區(qū),類型由數(shù)據(jù)定義偽指令確定,初值 由表達(dá)式給定。三、數(shù)據(jù)定義偽指令例:DATA SEGMENT DATA1 DB 12H,34H,56H,78H,9AH DATA2 DW 1234H,5678H DATA3 DD 12345678H DATA ENDS12H34H56H78H9AH34H12H78H56H78H56H34H12HDATA1DATA

12、2DATA34.3匯編語(yǔ)言程序格式(數(shù)據(jù)與運(yùn)算符)匯編語(yǔ)言的指令語(yǔ)句和偽指令語(yǔ)句操作數(shù)一般為常量、變量、標(biāo)號(hào)、表達(dá)式。一、常量(1)數(shù)值常量 數(shù)值常量分為整數(shù)和實(shí)數(shù)。例如:11100011B ,45693 ,0FF2AH ,356703Q 都是正確的整數(shù)形式.又如:543.567,45.23,1.2E2,45.4E9 都是正確的實(shí)數(shù)形式。常量是沒有任何屬性的純數(shù)值,它的值在匯編期間已能完全確定,且在程序運(yùn)行中也不會(huì)發(fā)生變化。常量分為數(shù)值常量、字符串常量和符號(hào)常量,它主要用于指令語(yǔ)句中的立即數(shù)或偽指令語(yǔ)句中給變量賦初值等。 (2)字符串常量 字符串常量是用單引號(hào)括起來(lái)的一個(gè)字符或多個(gè)字符。字符串

13、 常量以單引號(hào)中各字符的ASCII碼形式存儲(chǔ)在內(nèi)存中,如 A,在內(nèi)存中就是41H,12就是31H,32H。使用時(shí)可在 單引號(hào)內(nèi)直接寫字符序列,如12AB,也可寫字符的ASCII 碼,ASCII碼之間用逗號(hào)分隔(此時(shí)不需要用單引號(hào)),如 31H,32H,41H,42H表示字符串12AB。(3)符號(hào)常量 符號(hào)常量是指用EQU偽指令或賦值語(yǔ)句“=”定義過的符號(hào)名,可 作操作數(shù)項(xiàng)或在表達(dá)式中使用。一、常量二、變量在匯編語(yǔ)言中,變量是一個(gè)數(shù)據(jù)存儲(chǔ)單元的名稱,即數(shù)據(jù)存放地址的符號(hào)表示。它代表存放在某些存儲(chǔ)單元的數(shù)據(jù),這些數(shù)據(jù)在程序運(yùn)行期間隨時(shí)可以改變。為方便訪問變量,在程序中通過變量名來(lái)使用變量。(1)變

14、量的定義 變量通常在數(shù)據(jù)段或附加段中使用數(shù)據(jù)定義偽指令來(lái)定義,定義變量就 是給數(shù)據(jù)分配存儲(chǔ)單元,有時(shí)為存儲(chǔ)單元賦予一個(gè)變量名,并可同時(shí)為 這些存儲(chǔ)單元預(yù)置初值。 數(shù)據(jù)定義偽指令的格式為: 變量名 DB(DW、DD、DQ、DT) 表達(dá)式1,表達(dá)式2,其中:變量名是可選項(xiàng),它僅代表所定義數(shù)據(jù)存儲(chǔ)區(qū)第一個(gè)單元的地址; DB、DW、DD、DQ和DT是偽指令符,具體一條數(shù)據(jù)定義偽指令取5種之一。 DB定義的是字節(jié)類型的變量,每個(gè)表達(dá)式被分配1個(gè)字節(jié)單元。 DW定義的是字類型的變量,每一個(gè)表達(dá)式被分配1個(gè)字單元(2個(gè)字節(jié))。 DD定義的是雙字類型的變量,每一個(gè)表達(dá)式被分配2個(gè)字單元(4個(gè)字節(jié))。 DQ定義

15、的是四字類型的變量,每一個(gè)表達(dá)式被分配4個(gè)字單元(8個(gè)字節(jié))。 DT定義的是十字節(jié)類型的變量,每一個(gè)表達(dá)式被分配10個(gè)字節(jié)單元。 表達(dá)式1,表達(dá)式2是給變量或指定的存儲(chǔ)單元賦予初值,它們有以下幾種形式:(a)數(shù)值表達(dá)式 數(shù)據(jù)定義偽指令可以為一個(gè)或連續(xù)的存儲(chǔ)單元設(shè)置數(shù)值初值。 (b)字符串表達(dá)式 對(duì)于DB偽指令,字符串的長(zhǎng)度允許超過2個(gè)字符,但不能超過255個(gè)字符,字符 串必須用單引號(hào)括起來(lái),它可為字符串中的每個(gè)字符分配1字節(jié)單元,字符串 從左至右以字符的ASCII碼形式按地址遞增的順序依次存放。(c)?表達(dá)式 不帶引號(hào)的?,用于為變量預(yù)留內(nèi)存單元,暫時(shí)不存入數(shù)據(jù),即表示所定義的 變量無(wú)確定的初

16、值。 例如:A DW ?,?為變量A預(yù)留2個(gè)字單元。(d)地址表達(dá)式 操作數(shù)為地址表達(dá)式時(shí),只適用于DW和DD這兩種數(shù)據(jù)定義偽指令。如果地址表 達(dá)式為一變量(標(biāo)號(hào))名,用DW偽指令則是取它的偏移地址來(lái)初始化變量;用 DD偽指令則是取它的段首地址和偏移地址來(lái)初始化變量。(e)帶DUP的表達(dá)式 格式為:n DUP (表達(dá)式),其中n為重復(fù)因子,只能取正整數(shù),它表示定義了 n個(gè)相同的數(shù)據(jù)存儲(chǔ)單元。數(shù)據(jù)定義偽指令的格式為: 變量名 DB(DW、DD、DQ、DT) 表達(dá)式1,表達(dá)式2,數(shù)據(jù)定義偽指令舉例DATA SEGMENT VAR1 DB 10H VAR2 DB ?,?,? VAR3 DB ABCD

17、 VAR4 DW AB,CD VAR5 DB 2 DUP(1,2) VAR6 DW 2 DUP(AB) VAR7 DB 4 DUP (6, 3 DUP (5) ,7)DATA ENDS10HVAR100H00H00H41H42H43H44H42H41H44H43H01H02H01H02H42H41H42H41HVAR2VAR3VAR4VAR5VAR6VAR7106H05H05H05H07H06H05H05H05H07H06H05H05H05H07H06H05H05H05H07H定義后的變量,在程序中的引用有兩種情況:二、變量(3)變量的使用(b)在數(shù)據(jù)定義偽指令DW和DD中,操作數(shù)字段可直接引

18、用已定義 過的變量名。 如: A DB 50H,40H B DW A C DD B(a)在指令語(yǔ)句中,采用存儲(chǔ)器操作數(shù)的幾種尋址方式,除寄存器 間接尋址方式不使用變量名外,其余各種尋址方式均可使用變 量名。 例如,某數(shù)據(jù)段已定義一變量ARRAY: ARRAY DW 5000H,4000H 則在指令中可以使用如下指令: MOV AX,ARRAY+2 MOV AX,ARRAY等。4.4匯編語(yǔ)言程序的上機(jī)過程一、基本匯編語(yǔ)言程序的結(jié)構(gòu) 源程序是由多各段組成的,一個(gè)可執(zhí)行的匯編源程序 一般至少由一個(gè)代碼段,其中包含可執(zhí)行的語(yǔ)句。二、段寄存器的裝入ASSUME 偽指令只能建立當(dāng)前段與段寄存器之間的對(duì)應(yīng)關(guān)

19、系,但它不能將段寄存器賦予相應(yīng)段的段基值,段寄存器的裝入需要程序的方法來(lái)實(shí)現(xiàn),這四個(gè)段寄存器的裝入方法略有不同。1、DS和ES的裝入 在程序中,使用數(shù)據(jù)傳送語(yǔ)句來(lái)實(shí)現(xiàn)DS和ES的裝入。 CODE SEGMENT ASSUME CS:CODE , DS:DATA1, ES:DATA2 START: MOV AX , DATA1 MOV DS , AX MOV AX , DATA2 MOV ES , AX CODE ENDS END START例:DATA1 SEGMENT ARRAY DB 12HDATA1 ENDS DATA2 SEGMENT ARRAY1 DB 14H DUP (?) DAT

20、A2 ENDS2、SS的裝入 在段定義偽指令的組合類型項(xiàng)中,使用STACK參數(shù),并在段尋址偽指 令A(yù)SSUME語(yǔ)句中把該段與SS相關(guān)聯(lián)。 CODE SEGMENT ASSUME CS:CODE , SS:STACK1 START: CODE ENDS END STARTSS將自動(dòng)裝入STACK1段的段基值,堆棧指針SP也將自動(dòng)指向堆棧棧底的存儲(chǔ)單元。(本例:(SP)=80H )例:STACK1 SEGMENT PARA STACK DB 80H DUP (?) STACK1 ENDS2、SS的裝入 如果在段定義偽指令的組合類型中未使用STACK參數(shù),或者是在程序中 要調(diào)換到另一個(gè)堆棧,這時(shí)可以

21、使用和DS類似的裝入方法,使用數(shù)據(jù)傳 送語(yǔ)句來(lái)實(shí)現(xiàn)SS的裝入,但注意,除對(duì)SS賦值外,還要對(duì)SP進(jìn)行賦值。 CODE SEGMENT ASSUME CS:CODE , SS:STACK1 START: MOV AX , STACK1 MOV SS , AX MOV SP , OFFSET TOP CODE ENDS END START例: STACK1 SEGMENT DB 80H DUP (?) TOP LABEL WORD STACK1 ENDS3、CS的裝入 CS段基值 IP提供下一條將要執(zhí)行的目標(biāo)代碼的偏移量 CPU在執(zhí)行指令之前根據(jù)CS和IP的內(nèi)容來(lái)從內(nèi)存中提取指令,裝入CS和IP。

22、 按照結(jié)束偽指令指定的地址裝入CS和IP.CODE SEGMENT ASSUME CS:CODESTART: CODE ENDS END START起始地址可以省略,但一般在主程序中不被省略,在子程序中可被省略。3、CS的裝入 CS段基值 IP提供下一條將要執(zhí)行的目標(biāo)代碼的偏移量 CPU在執(zhí)行指令之前根據(jù)CS和IP的內(nèi)容來(lái)從內(nèi)存中提取指令,裝入CS和IP。 在程序運(yùn)行期間,當(dāng)執(zhí)行某些指令時(shí),CPU自動(dòng)修改CS和IP,使它們指向 新的代碼段。例如:執(zhí)行段間過程調(diào)用指令CALL和段間返回指令RET; 執(zhí)行段間無(wú)條件轉(zhuǎn)移指令JMP; 響應(yīng)中斷及中斷返回指令; 執(zhí)行硬件復(fù)位操作等。4.4匯編語(yǔ)言程序的

23、上機(jī)過程三、程序返回DOS的兩種方式。1、方式1(框架1)CODE SEGMENTMAIN PROC FAR ;將用戶程序設(shè)置成過程 ASSUME CS:CODE , DS:DATA , SS:STACK1START: PUSH DS ;將PSP起始單元段地址壓入堆棧 SUB AX , AX PUSH AX ;將PSP起始單元偏移地址壓入堆棧 MOV AX , DATA MOV DS , AX RET ;返回DOSMAIN ENDPCODE ENDS END START DATA SEGMENT ARRAY DB 12HDATA ENDSSTACK1 SEGMENT PARA STACK DB

24、 80H DUP (?)STACK1 ENDS每個(gè)應(yīng)用程序在裝入之前,DOS系統(tǒng)都為程序生成一個(gè)100字節(jié)的段前綴PSP,放在程序的最前面。PSP是一個(gè)程序控制塊,第一、二字節(jié)是指令I(lǐng)NT 20H,該指令結(jié)束程序,正常返回DOS。三、程序返回DOS的兩種方式。2、方式2(框架2)CODE SEGMENTMAIN PROC FAR ;將用戶程序設(shè)置成過程 ASSUME CS:CODE , DS:DATA , SS:STACK1START: MOV AX , DATA MOV DS , AX MOV AX , STACK1 MOV SS , AX MOV SP , OFFSET TOP MOV AH,4CH INT 21H ;返回DOSMAIN ENDPCODE ENDS END START STACK1 SEGMENT DB 80H DUP (?) TOP LABEL WORD STACK1 ENDS4.4匯編語(yǔ)言程序的上機(jī)過程四、匯編程序的開發(fā) 1、建立匯編語(yǔ)言源程序 在MASM目錄下使用EDIT建立一個(gè)3.ASM的匯編語(yǔ)言源文件。code segment assume cs:codestart:mov cl,3 shl ax,c

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論