第五章 ARM體系結(jié)構(gòu)(三)_第1頁
第五章 ARM體系結(jié)構(gòu)(三)_第2頁
第五章 ARM體系結(jié)構(gòu)(三)_第3頁
第五章 ARM體系結(jié)構(gòu)(三)_第4頁
第五章 ARM體系結(jié)構(gòu)(三)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章ARM體系結(jié)構(gòu)(三)

主要內(nèi)容1324ARM體系結(jié)構(gòu)概述

編程模型ARM基本尋址方式ARM指令集

尋址方式是根據(jù)指令中給出的地址碼字段來尋找真實(shí)操作數(shù)地址的方式。ARM處理器支持的基本尋址方式有:3.3ARM基本尋址方式寄存器尋址立即尋址寄存器移位尋址寄存器間接尋址變址尋址多寄存器尋址堆棧尋址塊復(fù)制尋址相對(duì)尋址寄存器尋址所需要的值在寄存器中,指令中地址碼給出的是寄存器編號(hào),即寄存器的內(nèi)容為操作數(shù)。例如指令:ADDR0,R1,R2;R0

R1+R2這條指令將2個(gè)寄存器(R1和R2)的內(nèi)容相加,結(jié)果放入第3個(gè)寄存器R0中。必須注意寫操作數(shù)的順序,第1個(gè)是結(jié)果寄存器,然后是第一操作數(shù)寄存器,最后是第二操作數(shù)寄存器。立即尋址立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的地址碼部分不是通常意義上的操作數(shù)地址,而是操作數(shù)本身。這樣的數(shù)稱為立即數(shù)。例如指令:ADDR3,R3,#1

;R3

R3+1ANDR8,R7,#0xff;R8R7[7:0]第2個(gè)源操作數(shù)為一個(gè)立即數(shù),以“#”為前綴,十六進(jìn)制值以在“#”后加“0x”或“&”表示。第1條指令完成寄存器R3的內(nèi)容加1,結(jié)果放回R3中。第2條指令完成R7的32位值與0FFH相“與”,結(jié)果為將R7的低8位送到R8中。寄存器移位尋址這種尋址方式是ARM指令集特有的。第2個(gè)寄存器操作數(shù)在與第1個(gè)操作數(shù)結(jié)合之前,選擇進(jìn)行移位操作。例如指令:ADDR3,R2,R1,LSL#3;R3

R2+8×R1寄存器R1的內(nèi)容邏輯左移3位,再與寄存器R2內(nèi)容相加,結(jié)果放入R3中??梢圆扇〉囊莆徊僮魅缬校篖SL:邏輯左移(LogicalShiftLeft)。寄存器中字的低端空出的位補(bǔ)0。0LSR:邏輯右移(LogicalShiftRight)。寄存器中字的高端空出的位補(bǔ)0。0可以采取的移位操作如有:寄存器移位尋址ASR:算術(shù)右移(ArithmeticShiftRight)。算術(shù)移位的對(duì)象是帶符號(hào)數(shù),若源操作數(shù)為正數(shù),則字的高端空出的位補(bǔ)0。若源操作數(shù)為負(fù)數(shù),則字的高端空出的位補(bǔ)1。RRX:擴(kuò)展為1的循環(huán)右移(RotateRighteXtendedby1place)。操作數(shù)右移一位,空位(位[31])用原C標(biāo)志值填充。

ROR:循環(huán)右移(ROtateRight)。從字的最低端移出的位填入字的高端空出的位。C寄存器間接尋址指令中的地址碼給出某一通用寄存器的編號(hào)。在被指定的寄存器中存放操作數(shù)的有效地址,而操作數(shù)則存放在存儲(chǔ)單元中,即寄存器為地址指針。例如指令:LDRR0,[R1];R0

[R1]STRR0,[R1];R0[R1]寄存器間接尋址使用一個(gè)寄存器(基址寄存器)的值作為存儲(chǔ)器的地址。第1條指令將寄存器R1指向的地址單元的內(nèi)容加載到寄存器R0中。第2條指令將寄存器R0存入寄存器R1指向的地址單元。變址尋址變址尋址就是將基址寄存器的內(nèi)容與指令中給出的位移量相加,形成操作數(shù)有效地址。變址尋址用于訪問基址附近的存儲(chǔ)單元,包括基址加偏移和基址加索引尋址。寄存器間接尋址是偏移量為0的基址加偏移尋址?;芳悠茖ぶ坊芳铀饕龑ぶ非八饕龑ぶ贩绞剑夯沸杓樱ɑ驕p)最大4KB的偏移來計(jì)算訪問的地址。例如:LDRR0,[R1,#4];R0

[R1+4]后索引尋址方式:基址不帶偏移作為傳送的地址,傳送后自動(dòng)索引。例如:LDRR0,[R1],#4;R0

[R1]

;R1

R1+4

指令指定一個(gè)基址寄存器,再指定另一個(gè)寄存器(索引),其值作為位移加到基址上形成存儲(chǔ)器地址。例如:LDRR0,[R1,R2];R0

[R1+R2]多寄存器尋址一次可以傳送幾個(gè)寄存器的值。允許一條指令傳送16個(gè)寄存器的任何子集(或所有16個(gè)寄存器)。例如指令:LDMIAR1,{R0,R2,R5};R0

[R1];R2[R1+4];R5[R1+8]

由于傳送的數(shù)據(jù)項(xiàng)總是32位的字,基址R1應(yīng)該字對(duì)準(zhǔn)。這條指令將R1指向的連續(xù)存儲(chǔ)單元的內(nèi)容送到寄存器R0、R2和R5。堆棧尋址堆棧是按“先進(jìn)后出”(FILO)的特定順序進(jìn)行存取的存儲(chǔ)區(qū)。堆棧尋址是隱含的,它使用一個(gè)專門的寄存器(堆棧指針)指向一塊存儲(chǔ)器區(qū)域(堆棧)。棧指針?biāo)付ǖ拇鎯?chǔ)單元就是堆棧的棧頂。根據(jù)增長方向,堆??煞譃椋合蛏仙L:即向高地址方向生長,稱為遞增堆棧(AscendingStack)。向下生長:即向低地址方向生長,稱為遞減堆棧(DescendingStack)。

根據(jù)棧指針的指向位置,堆??煞譃椋簼M堆棧:堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)項(xiàng)空堆棧:堆棧指針指向下一個(gè)數(shù)據(jù)項(xiàng)放入的空位置,這樣就有4種類型的堆棧表示遞增和遞減的滿和空堆棧的各種組合。ARM處理器支持所有這4種類型的堆棧。滿遞增:堆棧通過增大存儲(chǔ)器的地址向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最高地址??者f增:堆棧通過增大存儲(chǔ)器的地址向上增長,堆棧指針指向堆棧上的第一個(gè)空位置。滿遞減:堆棧通過減小存儲(chǔ)器的地址向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項(xiàng)的最低地址??者f減:堆棧通過減小存儲(chǔ)器的地址向下增長,堆棧指針指向堆棧下的第一個(gè)空位置。堆棧尋址塊復(fù)制尋址ARM支持兩種不同角度的尋址機(jī)制:堆棧角度和塊復(fù)制角度,兩者都映射到相同的基本指令。堆棧和塊拷貝角度的多寄存器加載和存儲(chǔ)指令映射如下圖。塊復(fù)制角度的尋址舉例,執(zhí)行指令之前的基址寄存器值是R9,自動(dòng)尋址之后的基址寄存器是R9’。

塊復(fù)制尋址相對(duì)尋址相對(duì)尋址是變址尋址的一種變通,由程序計(jì)數(shù)器PC提供基地址。指令中的地址碼字段作為位移量,兩者相加后得到操作數(shù)的有效地址。位移量指出的是操作數(shù)與現(xiàn)行指令之間的相對(duì)位置。例如指令:BLSUBR;轉(zhuǎn)移到SUBR…;返回到此SUBR…;子程序入口地址MOVPC,R14

;返回主要內(nèi)容1324ARM體系結(jié)構(gòu)概述

編程模型ARM基本尋址方式ARM指令集

3.4.1條件執(zhí)行幾乎所有的ARM指令均可包含一個(gè)可選的條件碼,句法說明中以{cond}表示,只有在CPSR中的條件碼標(biāo)志滿足指定的條件時(shí),帶條件碼的指令才能執(zhí)行。并使用后綴“S”來區(qū)分是否根據(jù)執(zhí)行結(jié)果修改條件碼標(biāo)志。操作碼[31:28]助記符后綴標(biāo)志含義0000EQZ置位相等0001NEZ清零不等0010CS/HSC置位大于或等于(無符號(hào)>=)0011CC/LOC清零小于(無符號(hào)<)0100MIN置位負(fù)0101PLN清零正或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位且Z清零大于(無符號(hào)>)1001LSC清零或Z置位小于或等于(無符號(hào)<=)1010GEN和V相同帶符號(hào)>=1011LTN和V不同帶符號(hào)<1100GTZ清零且N和V相同帶符號(hào)>1101LEZ置位或N和V不同帶符號(hào)<=1110AL任何總是(通常省略)3.4.2指令分類說明

32位ARM指令集由13種基本指令類型組成,分成4大類:3種類型的存儲(chǔ)器訪問指令:控制存儲(chǔ)器和寄存器之間的數(shù)據(jù)傳送。一種類型用于優(yōu)化的靈活尋址;另一種類型用于快速上下文切換;第三種類型用于交換數(shù)據(jù)。3種類型的數(shù)據(jù)處理指令:使用片內(nèi)ALU、桶形移位器和乘法器針對(duì)31個(gè)寄存器完成高速數(shù)據(jù)處理操作。4種類型的分支指令:控制程序執(zhí)行流程、指令優(yōu)先級(jí)以及ARM代碼和Thumb代碼的切換。3種類型的協(xié)處理器指令:專用于控制外部協(xié)處理器。這些指令以開放和統(tǒng)一的方式擴(kuò)展了指令集的片外功能。

ARM存儲(chǔ)器訪問指令(1)LDR和STR——字和無符號(hào)字節(jié)字節(jié)加載是用“0”擴(kuò)展到32位。LDR和STR都有如下4種可能的形式:

零偏移:Rn的值作為傳送數(shù)據(jù)的地址。句法:

op{cond}{B}{T}Rd,[Rn]

前索引偏移:在數(shù)據(jù)傳送之前,將偏移量加到Rn中。其結(jié)果作為傳送數(shù)據(jù)的存儲(chǔ)器地址。若使用后綴“!”,則結(jié)果寫回到Rn中,且Rn不允許是R15。句法:

op{cond}{B}Rd,[Rn,Flexoffset]{!}

程序相對(duì)偏移:程序相對(duì)偏移是前索引形式的另一種版本。匯編器由PC計(jì)算偏移量,并將PC作為Rn生成前索引指令。不能使用后綴“!”。句法:op{cond}{B}Rd,label

后索引偏移:Rn的值用做傳送數(shù)據(jù)的存儲(chǔ)器地址。在數(shù)據(jù)傳送后,將偏移量加到Rn中。結(jié)果寫回到Rn。Rn不允許是R15。句法:op{cond}{B}{T}Rd,[Rn],Flexoffset

ARM存儲(chǔ)器訪問指令(1)LDR和STR——字和無符號(hào)字節(jié)[例子]LDR R8,[R10]

;R8

[R0]LDRNER2,[R5,#960]!

;(有條件地)R2[R5+960],R5R5+960STR R2,[R9,#consta-struc];consta-struc是常量的表達(dá)式,該

;常量值的范圍為0~4095STRBR0,[R3,-R8,ASR#2];R0[R3-R8/4],存儲(chǔ)R0的最低有效

;字節(jié),R3和R8不變STR R5,[R7],#-8;R5[R7],R1R7-8LDR R0,localdata

;加載一個(gè)字,該字位于標(biāo)號(hào)lacaldata所在地址(2)LDR和STR——半字和帶符號(hào)字節(jié)

ARM存儲(chǔ)器訪問指令這些指令有4種可能的形式:零偏移、前索引偏移、程序相對(duì)偏移和后索引偏移。以同樣的順序,4種形式的句法為op{cond}typeRd,[Rn]op{cond}typeRd,[Rn,offset]{!}op{cond}typeRd,labelop{cond}typeRd,[Rn],offset其中:type必須是以下所列的其中之一:SH對(duì)帶符號(hào)半字(僅LDR);H對(duì)無符號(hào)半字;SB對(duì)帶符號(hào)字節(jié)(僅LDR)。label程序相對(duì)偏移表達(dá)式。

label必須是在當(dāng)前指令的±255字節(jié)范圍內(nèi)。offset加在Rn上的偏移量。

ARM存儲(chǔ)器訪問指令(2)LDR和STR——半字和帶符號(hào)字節(jié)[例子]LDREQSHR11,[R6];(有條件地)R11

[R6],加載16位半字,;帶符號(hào)擴(kuò)展到32位LDRHR1,[R0,#22]

;R1[R0+22],加載16位半字,零擴(kuò)展到32位STRHR4,[R0,R1]!

;R4[R0+R1],存儲(chǔ)最低的有效半字到R0+R1;地址開始的兩個(gè)字節(jié),地址寫回到R0LDRSB R6,constf

;加載位于標(biāo)號(hào)constf地址中的字節(jié),帶符號(hào)擴(kuò)展(3)LDR和STR——雙字

ARM存儲(chǔ)器訪問指令加載兩個(gè)相鄰的寄存器和存儲(chǔ)兩個(gè)相鄰的寄存器,64位雙字。這些指令有4種可能的形式:零偏移、前索引偏移、程序相對(duì)偏移、后索引偏移。以同樣的順序,4種形式的句法為op{cond}DRd,[Rn]op{cond}DRd,[Rn,offset]{!}op{cond}DRd,labelop{cond}DRd,[Rn],offset[例子]LDRD R6,[R11]LDRMID R4,[R7],R2STRD R4,[R9,#24]STRD R0,[R9,-R2]!LDREQD R8,abc4(4)LDM和STM

ARM存儲(chǔ)器訪問指令加載多個(gè)寄存器(LDM)和存儲(chǔ)多個(gè)寄存器(STM)??梢詡魉蚏0-R15的任何組合。句法:op{cond}modeRn{!},reglist{^}其中:mode

是IA/IB/DA/DB/FD/ED/FA/EA中的一個(gè).Rn

基址寄存器,裝有傳送數(shù)據(jù)的初始地址。Rn不允許是R15。!

可選后綴。若有“!”,則最后的地址寫回到Rn。

reglist

加載或存儲(chǔ)的寄存器列表,包含在括號(hào)中。^可選后綴,不允許在用戶模式或系統(tǒng)模式下使用。若op是LDM且reglist中包含PC(R15),那么除了正常的多寄存器傳送外,將SPSR也拷貝到CPSR中。這用于從異常處理返回,僅在異常模式下使用。數(shù)據(jù)傳入或傳出的是用戶模式的寄存器,而不是當(dāng)前模式的寄存器。

ARM存儲(chǔ)器訪問指令(4)LDM和STM[例子]LDMIAR8,{R0,R2,R9}STMDBR1!,{R3-R6,R11,R12}STMFDR13!,{R0,R4-R7,LR}

;寄存器進(jìn)棧LDMFDR13!,{R0,R4-R7,PC}

;寄存器出棧,從子程序返回(5)PLD

ARM存儲(chǔ)器訪問指令Cache預(yù)加載。使用PLD(PreLoaD)提示存儲(chǔ)系統(tǒng)從后面幾條新指令所指定的存儲(chǔ)器地址加載。存儲(chǔ)系統(tǒng)可使用這種方法加速以后的存儲(chǔ)器訪問。句法:PLD[Rn{Flexoffset}][例子]PLD [R2]PLD [R15,#280]PLD [R9,#-2481]PLD [R0,#av*4];av*4必須在匯編時(shí)求值,范圍為-4095-4095PLD [R0,R2]PLD [R5,R8,LSL#2](6)SWP

ARM存儲(chǔ)器訪問指令在寄存器和存儲(chǔ)器之間進(jìn)行數(shù)據(jù)交換。使用SWP來實(shí)現(xiàn)信號(hào)量。句法:SWP{cond}{B}Rd,Rm,[Rn]其中:B可選后綴。若有B,則交換字節(jié);否則,交換32位字。RdARM寄存器。數(shù)據(jù)從存儲(chǔ)器加載到Rd。

RmARM寄存器。Rm的內(nèi)容存儲(chǔ)到存儲(chǔ)器。Rm可以與Rd相同。在這種情況下,寄存器的內(nèi)容與存儲(chǔ)器的內(nèi)容進(jìn)行交換。

RnARM寄存器。Rn的內(nèi)容指定要進(jìn)行數(shù)據(jù)交換的存儲(chǔ)器的地址。Rn必須與Rd和Rm不同。

ARM數(shù)據(jù)處理指令數(shù)據(jù)處理類指令格式:<opcode>{<cond>}{S}{Rd},{Rn},<shifter_operand>opcode:操作碼,如ADD、SUB、ORRcond:條件碼S:本指令是否更新CPSR中的狀態(tài)標(biāo)志位Rd:目標(biāo)寄存器Rn:第一個(gè)源寄存器shifter_operand:復(fù)合的源操作數(shù),其格式:立即數(shù) ADDR1,R2,#0x35寄存器 SUBSR3,R2,R1寄存器移位 ADDEQSR9,R5,R5,LSL#3

SUBR3,R2,R1,RORR7

ARM數(shù)據(jù)處理指令算術(shù)/邏輯運(yùn)算指令

ARM數(shù)據(jù)處理指令乘法指令

MUL指令將Rm和Rs中的值相乘,并將最低有效的32位結(jié)果放到Rd中。句法:MUL{cond}{S}Rd,Rm,RsMLA指令將Rm和Rs中值相乘,再加上Rn的值,并將最低有效的32位結(jié)果放到Rd中。句法:MLA{cond}{S}Rd,Rm,Rs,RnUMULL指令將Rm和Rs中的值解釋為無符號(hào)整數(shù)。該指令將這兩個(gè)整數(shù)相乘,并將結(jié)果的最低有效32位放在RdLo中,最高有效32位放在RdHi中。UMLAL指令將Rm和Rs中的值解釋為無符號(hào)整數(shù)。該指令將這兩個(gè)整數(shù)相乘,并將64位結(jié)果加到RdHi和RdLo中的64位無符號(hào)整數(shù)上。SMULL指令將Rm和Rs中的值解釋為帶符號(hào)的補(bǔ)碼整數(shù)。該指令將這兩個(gè)整數(shù)相乘,并將結(jié)果的最低有效32位放在RdLo中,將最高有效32位放在RdHi中。SMLAL指令將Rm和Rs中的值解釋為帶符號(hào)的補(bǔ)碼整數(shù)。該指令將這兩個(gè)整數(shù)相乘,并將64位結(jié)果加到RdHi和RdLo中的64位帶符號(hào)補(bǔ)碼整數(shù)上。句法:op{cond}{S}RdLo,RdHi,Rm,Rs

前導(dǎo)零計(jì)數(shù)CLZ指令對(duì)Rm中值的前導(dǎo)零的個(gè)數(shù)進(jìn)行計(jì)數(shù),結(jié)果放到Rd中。若源寄存器全為0,則結(jié)果為32。若位[31]為1,則結(jié)果為0。句法:CLZ{cond}Rd,Rm

ARM轉(zhuǎn)移指令(1)B和BLB(Branch)指令引起處理器轉(zhuǎn)移到label。

句法:B{cond}label

BL(BranchandLink)指令將下一條指令的地址拷貝到R14(LR,鏈接寄存器),并引起轉(zhuǎn)移到label。

句法:BL{cond}label

(2)BX:引起處理器轉(zhuǎn)移到Rm中的地址。若Rm的位[0]為1,則指令集變換到Thumb。句法:BX{cond}Rm(3)BLX:帶鏈接轉(zhuǎn)移并可選地交換指令集。句法:BLX{cond}Rm

BLXlabel

ARM協(xié)處理器指令(1)CDP,協(xié)處理器數(shù)據(jù)操作指令句法:CDP{cond}coproc,opcode1,CRd,CRn,CRm{,opcode2}其中:coproc

指令操作的協(xié)處理器名。標(biāo)準(zhǔn)名為pn,其中n為0-15范圍內(nèi)的整數(shù)。opcode1協(xié)處理器特定操作碼。Rd,Rn源寄存器,不允許是R15。

CRd,CRn,CRm協(xié)處理器寄存器。opcode2可選的協(xié)處理器特定操作碼。(2)MCR和MCRR,將數(shù)據(jù)從ARM寄存器傳送到協(xié)處理器句法:MCR{cond}coproc,opcode1,Rd,CRn,CRm{,opcode2}MCRR{cond}coproc,opcode1,Rd,Rn,CRm(3)MRC和MRRC,從協(xié)處理器傳送到ARM寄存器句法:MRC{cond}coproc,opcode1,Rd,CRn,CRm{,opcode2}MRRC{cond}coproc,opcode1,Rd,Rn,CRm(4)LDC和STC,在存儲(chǔ)器和協(xié)處理器之間傳送數(shù)據(jù)。這些指令有3種可能形式:零偏移、前索引偏移、后索引偏移。相應(yīng)句法為:op{cond}{L}coproc,CRd,[Rn]op{cond}{L}coproc,CRd,[Rn,#{-}offset]{!}op{cond}{L}coproc,CRd,[Rn],#{-}offset 其中:L可選后綴,指明是長整數(shù)傳送。

coproc指令操作的協(xié)處理器名。

CRd用于加載或存儲(chǔ)的協(xié)處理器寄存器。

Rn存儲(chǔ)器基址寄存器。若指定R15,取值是當(dāng)前指令地址加8。

offset表達(dá)式,其值為4的整倍數(shù),范圍在0~1020之間。

ARM協(xié)處理器指令

雜項(xiàng)ARM指令(1)SWI,引起軟件中斷。這意味著處理器模式變換為管理模式,CPSR保存到管理模式的SPSR中,執(zhí)行轉(zhuǎn)移到SWI向量。句法:SWI{cond}immed_24其中:immed_24為表達(dá)式,其值為0~224-1范圍內(nèi)的整數(shù)。(2)MRS,將CPSR或SPSR的內(nèi)容傳送到通用寄存器。句法:MRS{cond}Rd,psr其中:Rd目標(biāo)寄存器。Rd不允許為R15。

psrCPSR或SPSR。(3)MSR,用立即數(shù)或通用寄存器的內(nèi)容加載CPSR或SPSR的指定區(qū)域。句法:MSR{cond}<psr>_<fields>,#immed_8rMSR{cond}<psr>_<fields>,Rm其中:<psr>CPSR或SPSR。<fields>指定傳送的區(qū)域。

immed_8r值為數(shù)字常量的表達(dá)式。常量必須對(duì)應(yīng)于8位位圖在32位字中循環(huán)移位偶數(shù)位后的值。

Rm源寄存器。(4)BKPT,引起處理器進(jìn)入調(diào)試模式。句法:BKPTimmed_16其中:immed_16為表達(dá)式,其值為范圍在0~65536內(nèi)的整數(shù)。

ARM偽指令(1)ADR,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論