指令系統(tǒng)轉(zhuǎn)移指令課件_第1頁
指令系統(tǒng)轉(zhuǎn)移指令課件_第2頁
指令系統(tǒng)轉(zhuǎn)移指令課件_第3頁
指令系統(tǒng)轉(zhuǎn)移指令課件_第4頁
指令系統(tǒng)轉(zhuǎn)移指令課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令用于實(shí)現(xiàn)分支、循環(huán)、過程等程序結(jié)構(gòu),是僅次于傳送指令的常用指令重點(diǎn)掌握:JMP/Jcc/LOOP/JCXZ

CALL/RETINTn/IRET常用系統(tǒng)功能調(diào)用控制轉(zhuǎn)移類指令通過改變IP(和CS)值,實(shí)現(xiàn)程序執(zhí)行順序的改變目標(biāo)地址的尋址方式相對尋址方式指令代碼中提供目的地址相對于當(dāng)前IP的位移量,轉(zhuǎn)移到的目的地址(轉(zhuǎn)移后的IP值)就是當(dāng)前IP值加上位移量直接尋址方式指令代碼中提供目的邏輯地址,轉(zhuǎn)移后的CS和IP值直接來自指令操作碼后的目的地址操作數(shù)間接尋址方式指令代碼中指示寄存器或存儲(chǔ)單元,目的地址從寄存器或存儲(chǔ)單元中間接獲得用標(biāo)號(hào)表達(dá)用標(biāo)號(hào)表達(dá)用寄存器或存儲(chǔ)器操作數(shù)表達(dá)目標(biāo)地址的尋址范圍:段間尋址段間轉(zhuǎn)移——遠(yuǎn)轉(zhuǎn)移(far)從當(dāng)前代碼段跳轉(zhuǎn)到另一個(gè)代碼段,可以在1MB范圍需要更改CS段地址和IP偏移地址目標(biāo)地址必須用一個(gè)32位數(shù)表達(dá),叫做32位遠(yuǎn)指針,它就是邏輯地址代碼段代碼段實(shí)際編程時(shí),匯編程序會(huì)根據(jù)目標(biāo)地址的屬性,自動(dòng)處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移程序員可用操作符short、nearptr

或farptr

強(qiáng)制成為需要的轉(zhuǎn)移類型無條件轉(zhuǎn)移指令只要執(zhí)行無條件轉(zhuǎn)移指令JMP,就使程序轉(zhuǎn)到指定的目標(biāo)地址,從目標(biāo)地址處開始執(zhí)行指令操作數(shù)label是要轉(zhuǎn)移到的目標(biāo)地址(目的地址、轉(zhuǎn)移地址)JMP指令分成4種類型:⑴段內(nèi)轉(zhuǎn)移、相對尋址⑵段內(nèi)轉(zhuǎn)移、間接尋址⑶段間轉(zhuǎn)移、直接尋址⑷段間轉(zhuǎn)移、間接尋址JMPlabel ;程序轉(zhuǎn)向label標(biāo)號(hào)指定的地址無條件轉(zhuǎn)移指令JMP(jump)JMPlabel

;段內(nèi)轉(zhuǎn)移、相對尋址

;IP←IP+位移量

JMPr16/m16 ;段內(nèi)轉(zhuǎn)移、間接尋址

;IP←r16/m16

JMPfarptrlabel

;段間轉(zhuǎn)移、直接尋址

;IP←偏移地址,CS←段地址

JMPfarptrmem

;段間轉(zhuǎn)移,間接尋址

;IP←[mem],CS←[mem+2]演示演示演示演示演示條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令Jcc根據(jù)指定的條件確定程序是否發(fā)生轉(zhuǎn)移。其通用格式為:

Jcc

label

;條件滿足,發(fā)生轉(zhuǎn)移 ;IP←IP+8位位移量; ;否則,順序執(zhí)行l(wèi)abel是一個(gè)標(biāo)號(hào)、一個(gè)8位位移量,表示Jcc指令后的那條指令的偏移地址,到目標(biāo)指令的偏移地址的地址位移label只支持短轉(zhuǎn)移的相對尋址方式1.判斷單個(gè)標(biāo)志位狀態(tài)⑴JZ/JE和JNZ/JNE 利用零標(biāo)志ZF,判斷結(jié)果是否為零(或相等)⑵JS和JNS 利用符號(hào)標(biāo)志SF,判斷結(jié)果是正是負(fù)⑶JO和JNO 利用溢出標(biāo)志OF,判斷結(jié)果是否產(chǎn)生溢出⑷JP/JPE和JNP/JPO 利用奇偶標(biāo)志PF,判斷結(jié)果中“1”的個(gè)數(shù)是偶是奇⑸JC/JB/JNAE和JNC/JNB/JAE 利用進(jìn)位標(biāo)志CF,判斷結(jié)果是否進(jìn)位或借位例題2題目:將AX中存放的無符號(hào)數(shù)除以2,如果是奇數(shù)則加1后除以2問題:如何判斷AX中的數(shù)據(jù)是奇數(shù)還是偶數(shù)?解答:判斷AX最低位是“0”(偶數(shù)),還是“1”(奇數(shù))。可以用位操作類指令1:用邏輯與指令將除最低位外的其他位變成0,保留最低位不變。判斷這個(gè)數(shù)據(jù)是0,AX就是偶數(shù);否則,為奇數(shù)2:將最低位用移位指令移至進(jìn)位標(biāo)志,判斷進(jìn)位標(biāo)志是0,AX就是偶數(shù);否則,為奇數(shù)3:將最低位用移位指令移至最高位(符號(hào)位),判斷符號(hào)標(biāo)志是0,AX就是偶數(shù);否則,為奇數(shù)例題2解答2用JNC指令實(shí)現(xiàn) movbx,ax shrbx,1;將AX的最低位D0移進(jìn)CF

jnc

even;標(biāo)志CF=0,即D0=0:AX內(nèi)是偶數(shù),程序轉(zhuǎn)移 addax,1;標(biāo)志CF=1,即D0=1:AX內(nèi)的奇數(shù),加1even: shrax,1 ;AX←AX÷2還可用SAR、ROR和RCR指令例題2解答3用JNS指令實(shí)現(xiàn) movbx,ax rorbx,1;將AX的最低位D0移進(jìn)最高位(符號(hào)位SF)

jns

even;標(biāo)志SF=0,即D0=0:AX內(nèi)是偶數(shù),程序轉(zhuǎn)移 addax,1;標(biāo)志SF=1,即D0=1:AX內(nèi)的奇數(shù),加1even: shrax,1 ;AX←AX÷2錯(cuò)誤!循環(huán)指令不影響SF等標(biāo)志ADDBX,0 ;增加一條指令例判斷是否為字母Y;寄存器AL中是字母Y(含大小寫),則令A(yù)H=0,否則令A(yù)H=-1 cmpal,’y’ ;比較AL與小寫字母y

jenext

;相等,轉(zhuǎn)移 cmpal,’Y’ ;不相等, ;繼續(xù)比較AL與大寫字母Y

jenext

;相等,轉(zhuǎn)移 movah,-1 ;不相等,令A(yù)H=-1

jmpdone

;無條件轉(zhuǎn)移指令next: movah,0

;相等的處理:令A(yù)H=0done: ……2.比較無符號(hào)數(shù)高低無符號(hào)數(shù)的大小用高(Above)、低(Below)表示,需要利用CF確定高低、利用ZF標(biāo)志確定相等(Equal)兩數(shù)的高低分成4種關(guān)系,對應(yīng)4條指令JB(JNAE):目的操作數(shù)(<)源操作數(shù)JNB(JAE):目的操作數(shù)(>=)源操作數(shù)JBE(JNA):目的操作數(shù)(<=)源操作數(shù)JNBE(JA):目的操作數(shù)(>)源操作數(shù)3.比較有符號(hào)數(shù)大小判斷有符號(hào)數(shù)的大(Greater)、?。↙ess),需要組合OF、SF標(biāo)志、并利用ZF標(biāo)志確定相等與否兩數(shù)的大小分成4種關(guān)系,分別對應(yīng)4條指令JL(JNGE):目的操作數(shù)(<)源操作數(shù)JNL(JGE):目的操作數(shù)(>=)源操作數(shù)JLE(JNG):目的操作數(shù)(<=)源操作數(shù)JNLE(JG):目的操作數(shù)(>)源操作數(shù)例求較大值wmax cmpax,bx ;比較AX和BX

jaenext ;若AX≥BX,轉(zhuǎn)移 xchgax,bx ;若AX<BX,交換next: movwmax,ax如果AX和BX存放的是有符號(hào)數(shù),則條件轉(zhuǎn)移指令應(yīng)采用JGE指令例求較大值(另解對比) cmpax,bx ;比較AX和BX

jbe

next movwmax,ax ;若AX>BX,wmax←AX

jmp

donenext: movwmax,bx ;若AX≤BX,wmax←BXdone:

……循環(huán)指令一段代碼序列多次重復(fù)執(zhí)行就是循環(huán)8088設(shè)計(jì)有針對CX計(jì)數(shù)器的計(jì)數(shù)循環(huán)指令

LOOPlabel ;循環(huán)指令 ;首先CX←CX-1;然后判斷;若CX≠0,轉(zhuǎn)移

JCXZlabel ;如果CX=0,則轉(zhuǎn)移label操作數(shù)采用相對短尋址方式還有LOOPZ/LOOPE和LOOPNZ/LOOPNE兩條指令deccxjnzlabelLOOPE/LOOPZ指令指令格式:LOOPElabel或者LOOPZlabel執(zhí)行LOOPE/LOOPZ指令,在進(jìn)行循環(huán)次數(shù)的計(jì)數(shù)(即CX←(CX)-1后,若(CX)≠0且ZF=1,則轉(zhuǎn)移到目標(biāo)單元label,否則順序執(zhí)行例數(shù)據(jù)塊傳送(字節(jié))

movcx,400h ;設(shè)置循環(huán)次數(shù):1K=1024=400H

movsi,offsetsbuf

;設(shè)置循環(huán)初值:SI指向數(shù)據(jù)段源緩沖區(qū)開始

movdi,offsetdbuf ;DI指向附加段目的緩沖區(qū)開始(附加段)again: moval,[si] ;循環(huán)體:實(shí)現(xiàn)數(shù)據(jù)傳送

moves:[di],al ;每次傳送一個(gè)字節(jié)

incsi

;SI和DI指向下一個(gè)單元

incdi

loopagain

;循環(huán)條件判定:循環(huán)次數(shù)減1,不為0轉(zhuǎn)移(循環(huán))例數(shù)據(jù)塊傳送(字)

movcx,200h ;設(shè)置循環(huán)次數(shù):1K÷2=200H

movsi,offsetsbuf

;設(shè)置循環(huán)初值:SI指向數(shù)據(jù)段源緩沖區(qū)開始

movdi,offsetdbuf ;DI指向附加段目的緩沖區(qū)開始(附加段)again: movax,[si] ;循環(huán)體:實(shí)現(xiàn)數(shù)據(jù)傳送

moves:[di],ax

;每次傳送一個(gè)字

add

si,2

;指向下一個(gè)(字)單元

add

di,2

loopagain

;循環(huán)條件判定:循環(huán)次數(shù)減1,不為0轉(zhuǎn)移(循環(huán))子程序指令子程序是完成特定功能的一段程序當(dāng)主程序(調(diào)用程序)需要執(zhí)行這個(gè)功能時(shí),采用CALL調(diào)用指令轉(zhuǎn)移到該子程序的起始處執(zhí)行當(dāng)運(yùn)行完子程序功能后,采用RET返回指令回到主程序繼續(xù)執(zhí)行演示

轉(zhuǎn)移指令有去無回子程序調(diào)用需要返回,其中利用堆棧保存返回地址1.子程序調(diào)用指令CALLCALL指令分成4種類型(類似JMP)CALLlabel

;段內(nèi)調(diào)用、直接尋址CALLr16/m16

;段內(nèi)調(diào)用、間接尋址CALLfarptrlabel

;段間調(diào)用、直接尋址CALLfarptrmem

;段間調(diào)用、間接尋址CALL指令需要保存返回地址:段內(nèi)調(diào)用——當(dāng)前偏移地址IP入棧(SP)←(SP)-2,SS:[SP]←(IP)段間調(diào)用——偏移地址IP和段地址CS入棧(SP)←(SP)-2,SS:[SP]←(CS)(SP)←(SP)-2,SS:[SP]←(IP)段內(nèi)調(diào)用callnearptrsubp

(1)保存返回地址

(2)轉(zhuǎn)子程序(IP)←subp的偏移地址段間調(diào)用callfarptrsubp

(1)保存返回地址

(2)轉(zhuǎn)子程序

(CS)←subp的段地址

(IP)←subp的偏移地址2.子程序返回指令RET根據(jù)段內(nèi)和段間、有無參數(shù),分成4種類型RET

;無參數(shù)段內(nèi)返回RETi16

;有參數(shù)段內(nèi)返回RET

;無參數(shù)段間返回RETi16

;有參數(shù)段間返回需要彈出CALL指令壓入堆棧的返回地址段內(nèi)返回——出棧偏移地址IPIP←SS:[SP],SP←SP+2段間返回——出棧偏移地址IP和段地址CSIP←SS:[SP],SP←SP+2CS←SS:[SP],SP←SP+2例十六進(jìn)制轉(zhuǎn)換為ASCII碼的子程序;子程序:將DL低4位的一位16進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼htoasc proc anddl,0fh ;只取DL的低4位 ordl,30h ;DL高4位變成3 cmpdl,39h ;是0~9,還是0Ah~0Fh? jbehtoend ;是0~9,轉(zhuǎn)移 adddl,7 ;是0Ah~0Fh,加上7htoend: ret ;子程序返回htoasc endp轉(zhuǎn)換原理;主程序:調(diào)用子程序movdl,28hcallhtoasc中斷指令和系統(tǒng)功能調(diào)用中斷(Interrupt)是又一種改變程序執(zhí)行順序的方法8088CPU支持256個(gè)中斷,每個(gè)中斷用一個(gè)編號(hào)(中斷向量號(hào))區(qū)別中斷指令有3條:

INTnIRETINTO本節(jié)主要掌握類似子程序調(diào)用指令的中斷調(diào)用指令I(lǐng)NTn,進(jìn)而掌握系統(tǒng)功能調(diào)用中斷指令I(lǐng)NTn;中斷調(diào)用指令:產(chǎn)生n號(hào)中斷;主程序使用,其中n表示中斷向量號(hào)IRET;中斷返回指令:實(shí)現(xiàn)中斷返回;中斷服務(wù)程序使用標(biāo)志處理指令:

CLCCF←0CMCCF←CFSTCCF←1CLDDF←0STDDF←1

CLIIF←0

STIIF←1注意:*只影響本指令指定的標(biāo)志處理機(jī)控制指令其他處理機(jī)控制指令:

NOP無操作

(機(jī)器碼占一個(gè)字節(jié))HLT暫停機(jī)(等待一次外中斷,之后繼續(xù)執(zhí)行程序)WAIT等待(等待外中斷,之后仍繼續(xù)等待)ESCmem換碼((mem)數(shù)據(jù)總線)

LOCK封鎖

(維持總線的鎖存信號(hào),直到其后的指令執(zhí)行完)

注意:

*不影響條件標(biāo)志

調(diào)用的一般過程:

?功能編號(hào)AH,?置入口參數(shù)?執(zhí)行軟中斷語句INT21H常用的dos系統(tǒng)功能調(diào)用:1.鍵盤輸入(調(diào)用功能號(hào)1)調(diào)用格式:MOVAH,1INT21H功能:等待從鍵盤輸入一個(gè)字符并將輸入字符的

ASCII碼?AL,若按CTRL+BREAK退出DOS系統(tǒng)功能調(diào)用2.單字符顯示輸出(調(diào)用功能號(hào)2)調(diào)用格式:MOVDL,’a’;待顯示字符(如‘a(chǎn)’)的ASCII碼DL

MOVAH,2INT21H功能:將DL中的字符送屏幕。例:MOVDL,0DHMOVAH,2INT21HMOVDL,0AHINT21H顯示回車顯示換行3.顯示字符串(功能調(diào)用號(hào)9)功能:將當(dāng)前數(shù)據(jù)區(qū)中DS:DX所指向的以‘$’結(jié)尾的字符串送屏幕顯示。注:若字符串中包含字符串‘$’,則不能采用本調(diào)用,只能循環(huán)地使用2號(hào)調(diào)用。例: DATASEGMENT BUFDB‘HOWDOYOUDO?$’ DATAENDS: MOVDX,SEGBUF;存放字符串的段地址 MOVDS,DX

LEADX,BUF;存放字符串的首偏移地址 MOVAH,9 INT21H輸出字符串HOWDOYOUDO?5.鍵盤輸入字符串:(功能調(diào)用號(hào):10(或0AH))調(diào)用格式:MOVDX,SEGBUF;存放字符串的段地址 MOVDS,DX

LEADX,BUF;存放字符串的首偏移地址MOVAH,10INT21H功能:從鍵盤上往DS:DX所指的輸入緩沖區(qū)輸入以回車鍵結(jié)束的字符串,并送顯示器顯示。對緩沖區(qū)的要求:BUFDB80

DB?DB80DUP(0);第一個(gè)字節(jié)存放緩沖區(qū)大小,不能為0,用戶確定;第二個(gè)字節(jié)存放實(shí)際輸入的字符個(gè)數(shù),系統(tǒng)填入;從鍵盤上輸入字符串從第三個(gè)字節(jié)存放(如果超過則多余去掉,響鈴告警)DATASEGMENTPDB100DB?DB100DUP(?)MDB‘WHATISYOURNAME?$’DATAENDSSTACKSEGMENTSTACKDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS:MOVAX,DATAMOVDS,AXLEADX,MMOVAH,9INT21HMOVDX,0FFSETPMOVAH,10INT21HMOVAH,4CHINT21HCODEENDSENDS上機(jī)演示在屏幕上顯示一行提示信息:“WHATISYOURNAME?”串操作指令

串傳送指令

存入串指令

從串取指令

串比較指令

串掃描指令1.MOVS串傳送指令MOVSDEST,SRC可以用無操作數(shù)指令代替:MOVSB(字節(jié))MOVSW(字)例:MOVSES:BYTEPTR[DI],DS:[SI]

執(zhí)行操作:(1)((DI))←((SI))(2)字節(jié)操作:(SI)←(SI)±1,(DI)←(DI)±1字操作:(SI)←(SI)±2,(DI)←(DI)±2方向標(biāo)志DF=0時(shí)用+,DF=1時(shí)用-。

REPMOVS:將數(shù)據(jù)段中的整串?dāng)?shù)據(jù)傳送到附加段中。源串(數(shù)據(jù)段)→目的串(附加段)

執(zhí)行REPMOVS之前,應(yīng)先做好:(1)源串首地址→SI(2)目的串首地址→DI(3)串長度→CX(4)建立方向標(biāo)志(CLD使DF=0,STD使DF=1)

(SI)低地址高地址數(shù)據(jù)段附加段(SI)(DI)(DI)DF=0DF=0與REP配合工作的MOVS

REPMOVS執(zhí)行操作:(1)如(CX)=0則退出REP,否則轉(zhuǎn)(2)(2)(CX)(CX)-1(3)執(zhí)行MOVS(4)重復(fù)(1)~(3)例

datareasegment mess1db‘personal_computer’;源數(shù)據(jù)段 datareaends extrasegment mess2db17dup(?);目的段 extraends codesegment … leasi,mess1;源數(shù)據(jù)段首地址 leadi,mess2;目的數(shù)據(jù)段首地址 movcx,17;數(shù)據(jù)長度17個(gè)字節(jié) cld;DF=0 repmovsb;開始傳送字節(jié) … codeendsleasi,mess1+16leadi,mess2+16movcx,17std;

DF=1

repmovsb2.CMPS串比較指令

CMPSSRC,DSTCMPSB(字節(jié))CMPSW(字)

執(zhí)行操作:(1)((SI))-((DI))根據(jù)比較結(jié)果設(shè)置條件標(biāo)志位:相等ZF=1不等ZF=0(2)字節(jié)操作:(SI)←(SI)±1,(DI)←(DI)±1字操作:(SI)←(SI)±2,(DI)←(DI)±2與REPE/REPZ和REPNE/REPNZ配合工作的CMPS

REPE/REPZ(REPNE/REPNZ)CMPS

執(zhí)行操作:(1)如(CX)=0或ZF=0(ZF=1)則退出,否則轉(zhuǎn)(2)(2)(CX)←(CX)-1(3)執(zhí)行CMPS(4)重復(fù)(1)~(3)例:比較兩個(gè)字符串,找出它們不相匹配的字節(jié)位置

leasi,mess1leadi,mess2movcx,8cldrepecmpsb;找到不相匹配的字節(jié)時(shí)停止;(di)、(si)為不匹配字符位置SCASB(字節(jié))SCASW(字)執(zhí)行操作:字節(jié)操作:(AL)-((DI)),(DI)←(DI)±1字操作:(AX)-((DI)),(DI)←(DI)±23.SCAS串掃描指令

與REPE/REPZ和REPNE/REPNZ配合工作的SCASREPE/REPZ(REPNE/REPNZ)SCAS

執(zhí)行操作:(1)如(CX)=0或ZF=0(ZF=1)則退出,否則轉(zhuǎn)(2)(2)(CX)←(CX)-1(3)執(zhí)行SCAS(4)重復(fù)(1)~(3)例:從一個(gè)字符串中查找一個(gè)指定的字符messdb‘COMPUTER’…leadi,messmoval,‘T’movcx,8cldrepnescasb;不是T則重復(fù)(DI):相匹配字符的下一個(gè)地址(CX):剩下還未比較的字符個(gè)數(shù)COMPUTER(di)COMPUTER(di)4.LODS取串指令LODSB(字節(jié))LODSW(字)

執(zhí)行操作:字節(jié)操作:(AL)←((SI)),(SI)←(SI)±1字操作:(AX)←((SI)),(SI)←(SI)±2注意:*LODS指令一般不與REP聯(lián)用

STOSB(字節(jié))STOSW(字)執(zhí)行操作:字節(jié)操作:((DI))←(AL),(DI)←(DI)±1字操作:((DI))←(AX),(DI)←(DI)±2

與REP配合工作的STOS

REPSTOS

執(zhí)行操作:(1)如(CX)=0則退出REP,否則轉(zhuǎn)(2)(2)(CX)(CX)-1(3)執(zhí)行STOS(4)重復(fù)(1)~(3)5.STOS存串指令例:把mess2緩沖區(qū)的5個(gè)字節(jié)置為20Hleadi,mess2moval,20Hmovcx,5cldrepstosb;cx=0時(shí)停止教學(xué)要求了解8088/8086微處理器基本結(jié)構(gòu)掌握8088/8086的寄存器結(jié)構(gòu)、存儲(chǔ)器結(jié)構(gòu)和尋址方式熟悉匯編語言的語句格式,掌握8088/8086基本指令:數(shù)據(jù)傳送:MOV/XCHG/XLAT、PUSH/POP、LEA加減運(yùn)算:ADD/SUB、ADC/SBB、CMP、INC/DEC邏輯運(yùn)算:AND/OR/XOR/NOT/TEST、移位指令:SHL/SHR/SAR、ROL/ROR/RCL/RCR控制轉(zhuǎn)移:JMP/Jcc/LOOP、CALL/RET、INTn總結(jié)本章展開了8088CPU16位指令系統(tǒng)的常用指令希望

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論