第四章 ARM微处理器指令集_第1页
第四章 ARM微处理器指令集_第2页
第四章 ARM微处理器指令集_第3页
第四章 ARM微处理器指令集_第4页
第四章 ARM微处理器指令集_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章内容回顾

第四章

ARM处理器的指令系统

预习检查

9ARM处理器有哪几种寻址方式?

9ARM微处理器有哪几种指令类型?

。ARM微处理器有几种跳转指令类型?

3

本章目标

Q能够掌握ARM指令的7种寻址方式;

Q能够掌握ARM基本编程实验

Q熟悉ARM指令集;

Q熟悉Thumb指令集;

4

本章结构

协处理指令

异常产生指令

5

4-1ARM微处理器的指令集概述

QARM指令集与Thumb指令集

Thumb指令集

具有灵活、小

巧,紧凑的特

)

八・、

ARM指令集支持

ARM核所有的特

性,具有高效、

快速的特A

6

4-1-1ARM微处理器的指令的分类与格式

7

4-1-1ARM微处理器的指令的分类与格式

。ARM微处理器的指令的格式:

3I282726252423222J20|9|6!5I2II875430

DataProcessing

Cond001OpcodesRnRdOperand2

PSRTransfer

Cond000000AsF'lRnRs1001RmMultiply

Cond00010B00RnRd00001001RmSingleDataSwap

Cond011puBwLRnRdoffsetSingleDataTransfer

Cond011xxxxxxxxxxxxxxxxxxxx1xxxxUndefined

Cond100puSwLRnRegisterUstBlockDataTransfer

Cond101LoffsetBranch

Cond110pUNwLRn■:R1CP#offsetCoprocDataTransfer

Cond1110CPOpcCRnCRdCP#CP0CRmCoprocDataOperation

Cond1110CPOpcLCRnRdCP#CP1CRmCoprocRegisterTransfer

Cond1111IgnoredbyprocessorSoftwareInterrupt

4-1-1ARM微处理器的指令的分类与格式

QARM指令集——基本指令格式

ARM是三地址指令格式,指令的基本格式如下:

<opcode>{<cond>}{S}<Rd>,<Rn>{,<operand2>}

其中◊号内的项是必须的,{}号内的项是可选的。

各项的说明如下:

opcode:指令助记符;cond:执行条件;

S:是否影响CPSR寄存器的值;

Rd:目标寄存器;Rn:第1个操作数的寄存器;

operand2:第2个操作教;

指令语法目标寄存器(Rd)源寄存器1(Rn)源寄存器2(Rm)

ADDr3,r1,r2r3r1r2

4-1-2指令的条件域

ARM指令的基本格式如下:

<opcode>{<cond>>{S}<Rd>,<Rn>{,<operand2>}

使用条件码“cond”可以实现高效的逻辑操作(节省

跳转和条件语句),提高代码效率。

所有的ARM指令都可以条件执行,而Thumb指令只

有B(跳转)指令具有条件执行功能。如果指令不标明

条件代码,将默认为无条件(AL)执行。

4-1-2指令的条件域

指令条件码表

操作码条件助记符标志含义

0000EQZ=1相等

0001NEz=o不相等

0010CS/HSC=1无符号数大于或等于

0011CC/LOc=o无符号数小于

0100MlN=1负数

0101PLN=0正数或零

0110VSV=1溢出

0111VCV=0没有溢出

1000HIC=1,Z=0无符号数大于

1001LSC=0,Z=1无符号数小于或等于

1010GEN=V有符号数大于或等于

1011LTN!=V有符号数小于

1100GTZ=0,N=V有符号数大于

1101LEZ=1,N!=V有符号数小于或等于

1110AL任何无条件执行(指令默认条件)

1111NV任何从不执行(不要使用)

4-1-2指令的条件域

示例:

c代玛:对应的汇编代玛:

If(a>b)CMPRO,RI;R0fa;与RIfbj比较

a++;ADDHIRO,RO,#1;若RO>R1,贝[R0=R0+l

Els㊀ADDLSRI,RI,#1则RI=Rl+1

b++;

阶段小结

、ARM微处理器的指令集概述

Z指令分类与格式

0指令的条件域

13

4-2ARM指令的寻址方式

9寻址方式:

」寻址方式是根据指令中给出的地址码字段来实现寻找真实操

作数地址的方式。ARM处理器具有7种基本寻址方式。

L立即寻址

一寄存器寻址

一寄存器间接寻址

ARM指令寻址►基址变址寻址

f多寄存器寻址

f相对寻址

一堆栈寻址

14

4-2-1立即寻址

立即寻址指令中的操作码字段后面的地址码部

分即是堤作斯木自一冲谕皇博一斯坦萧句仝在彬令

当程序存储

SUB队代码中获得数据

MOV

MOVR0,#0xFF00

4-2-2寄存器寻址

操作数的值在寄存器中,指令中的地址码字段

指出的足客左器编目.指令丹us日寸吉博取用寄存器

值来操,

MOVR1,I

SUBRO,IR2OxAA

RIOxAA

MOVRI,R2

4-2-3寄存器间接寻址

寄存器间接寻址指令中的地址码给出的是一个

田等在黑的编£■.布聿的揭作物用在在雪在黑指

"1^

'日

定0x40000000OxAA

R20x40000000

LDR

SWPROOxAA

LDRR0,[R2]

4-2-4基址变址寻址

基址寻址就是将基址寄存器的内容与指令中给

出的偏移量(<4K)相加/减,形成操作数的有效地

址。基址寻址用于访问基址附近的存储单元,常用

于平;主米卜弓目七品/生T4I幺+立r?彳耳■夫后要」士I、二14去存

器I

基:

LDR

STR

LDRR2,[R3,#0x0C]

4-2-4基址变址寻址

基址寻址指令举例如下:

LDRRO,[R1],#4;R0=[R1],R1=R1+4

;后索引基址寻址

;ARM这种自动索引机制不消

耗额外的时间

LDRRO,[R1,R2];R0=[R1+R2]

4・2・5多寄存器寻址

多寄存器寻址一次可传送几个寄存器值,允许

多:R60x04<-0x040x4000000C

LDMR40x03・-0x030x40000008

R30x02«-0x020x40000004

STM

R20x01・-0x010▼x40000000

R10x40000010

LDRIARI!,{R2-R4,R6}

4-2-6相对寻址

相对寻址是基址寻址的一种变通。由程序计数

器PC提供基准地址,指令中的地址码字段作为偏移

量,两者相加后得到的地址即为操作数的有效地址。

相对寻址指令举例如下:

BLSUBR1;调用到SUBR1子程序

BEQLOOP;条件跳转到LOOP标号处

■■■

LOOPMOVR6,#1

SUBR1

4-2-7堆栈寻址

堆栈是一个按特定顺序进行存取的存储区,操

作顺序为“后进先出”o堆栈寻址是隐含的,它使

用一个专门的寄存器(堆栈指针)指向一块存储区域

(堆栈),指针所指向的存储单元即是堆栈的栈顶。

存储器堆栈可分为两种:

■向上生长:向高地址方向生长,称为递增堆栈

■向下生长:向低地址方向生长,称为递减堆栈

4-2-7堆栈寻址

SP今找顶找底

向下

找区增长找区

找底找顶(SP

~r

堆找压找

4-2-7堆栈寻址

堆栈指针指向最后压入的堆栈的有效数据项,

称为满堆栈;堆栈指针指向下一个待压入数据的空

位置,称为空堆栈。

4-2-7堆栈寻址

9四种类型的堆栈方式:

,满递增:堆栈向上增长,堆栈指针指向内含有效数据项的最

高地址。指令如LDMFA、STMFA等;

)空递增:堆栈向上增长,堆栈指针指向堆栈上的第一个空位

置。指令如LDMEA、STMEA等;

』满递减:堆栈向下增长,堆栈指针指向内含有效数据项的最

彳氐地址。指令如LDMFD、STMFD等;

>空递减:堆栈向下增长,堆栈指针向堆栈下的第一个空位置。

指令如LDMED、STMED等。

阶段小结

Z立即寻址

Z寄存器寻址

Z寄存器间接寻址

Z基址变址寻址

Z多寄存器寻址

Z相对寻址

Z堆栈寻址

26

4-3ARM指令实验指导

。ARM汇编语言的基本框架:

AREAARMexpl,CODE,READONLY

;NamethisblockofcodeARMexpl

ENTRY;Markfirstinstructiontoexecute

start

MOVrO,#10;Setupparameters

MOVr1,#3

ADDrO,rO,r1;rO=rO+r1

stop

MOVrO,#0x18;angel_SWIreason_ReportException

LDRr1,=0x20026;ADP_Stopped_ApplicationExit

SWI0x123456;ARMsemihostingSwF

END;Markendoffile

27

4-3ARM指令实验指导

9使用ADS编译、链接、调试程序:

,创建一个工程

」将源文件加入工程中

」配置工程编译选项

・编译

」调试

阶段小结

ZARM指令实验指导

ZARM汇编语言的基本框架

Z使用ADS编译、链接、调试程序

29

4-4ARM指令集

跳转指令

A数据处理指令

»乘法与乘加指令

aPSR访问指令

ARM指令集A加载/存储指令

»批量数据加载/存储指令

»数据交换指令

A移位指令

A协处理指令

异常产生指令

4-4-1跳转指令

。在ARM中有两种方式可以实现程序的跳转,一种是使

用分支指令直接跳转,另一种则是直接向PC寄存器赋

值实现跳转。分支指令有以下三种:

•分支指令B;

,带链接的分支指令BL;

,带状态切换的分支指令BX。

4-4-1跳转指令

•分支指令B/BL指令编码格式

312827262524230

cond101Lsigned_immed_24

指令桃行的条件玛L区别B指令(L为0)24住有符号立即教

和BL指令(L为1)(偏移量)

•分支指令BX指令编码格式

4-4-1跳转指令

助记符说明操作条件码位置

Blabel分支指令PC-labelB{cond}

BLlabel带链接的分支指令LR-PC-4,PC-labelBL{cond}

BXRm带状态切换的分支指令PC-Rm,切换处理器状态BX{cond}

4-4-1跳转指令

助记符说明操作条件码位置

Blabel分支指令PC-labelB{cond}

BLlabel带链接的分支指令LR-PC-4,PC-labelBL{cond}

BXRm带状态切换的分支指令PC+Rm,切换处理器状态BX{cond}

分支指令——B指令,该指令跳转范围限制在当前指令的土32M字节地

址内(ARM指令为字对齐,最低2位地址固定为0)。指令格式如下:

B{cond}LabeI

应用示例:

BWAITA;跳转到WAHA标号处

B0x1234;跳转到绝对地址0x1234处

4-4-1跳转指令

助记符说明操作条件码位置

Blabel分支指令PC-labelB{cond}

BLlabel带链接的分支指令LR-PC-4,PC-labelBL{cond}

BXRm带状态切换的分支指令PC+Rm,切换处理器状态BX{cond}

带链接的分支指令——BL指令适用于子程序调用,使用该指令后,下

一条指令的地址被拷贝到R14(即LR)连接寄存器中,然后跳转到指定地址

运行程序。跳转范围限制在当前指令的士32M字节地址内。指令格式如下:

BL{cond}LabeI

2.程序跳转到目标地址

Label继续执行,当子程

序执行结束后,将LR寄AddrlAddr2PC

存器内家存入PC,返回Addr2Addr2LR

调用函数继续执行

Label

应用示例(调用子程序):

BLLabel

4-4-1跳转指令

助记符说明操作条件码位置

Blabel分支指令PC-labelB{cond}

BLlabel带链接的分支指令LR-PC-4,PC-labelBL{cond}

BXRm带状态切换的分支指令PC-Rm,切换处理器状态BX{cond}

带状态切换的分支指令——BX指令,该指令可以根据跳转地址(Rm)

的最低位来切换处理器状态。其跳转范围限制在当前指令的士32M字节地址

内(ARM指令为字对齐,最低2位地址固定为0)。指令格式如下:

BX{cond}Rm

跳转地址跳转后

Rm[0]CPSR标志T位:处理器状态

00ARM

11Thumb

4-4-1跳转指令

助记符说明操作条件码位置

Blabel分支指令PC-labelB{cond}

BLlabel带链接的分支指令LR-PC-4,PC-labelBL{cond}

BXRm带状态切换的分支指令PC-Rm,切换处理器状态BX{cond}

带状态切换的分支指令——BX指令,该指令可以根据跳转地址(Rm)

的最低位来切换处理器状态。其跳转范围限制在当前指令的±32M字节地址

内(ARM指令为字对齐,最低2位地址固定为0)。Rm的位[0]不用作地址的一

部分。若Rm的位[0]为1,则指令将CPSR中的标志T置位,且将目标地址的代

码解释为Thumb代码;若Rm的位[0]为0,则Rm的位口]就不能为1。指令格

式如下:

BX{cond}Rm

应用示例:

ADRLR0,ThumbFun+1;》rrhumb程序的入口地址力口1存入R0

BXRO;跳转到R0指定的地址,

;并根据R0的最低位来切换处理器状态

4-4-2数据处理指令

。数据处理指令大致可分为3类:

•数据传送指令;

,算术逻辑运算指令;

・比较指令。

。数据处理指令只能对寄存器的内容进行操作,而不

能对内存中的数据进行操作。所有ARM数据处理指令

均可选择使用S后缀,以使指令影响状态标志。

4・4・2数据处理指令指令编码

指令执行的条件码—据处严省人心"建旅地的立琴J/I

操作码指令助记符说明

0000AND逻辑与操作指令

31282726252420

0001E0R逻辑异或操作指令

cond00Iopcode0010SUB减法运算指令

0011RSB逆向减法指令—

用于区别立即教(

I10100ADD加法运算指令

为D和寄存器移位

0101ADC带进位加法帛存器

(为。)

I0110SBC带进位减法指令

与指令

opcode数据处理指0111RSC带进位逆向减法指令

令操作码1000TST位测试指令

1001TEQ相等测试指令

1010CMP比较指令

1011CMN负数比较指令

1100ORR逻辑或操作指令

1101MOV数据传送

1110BIC位清除指令

1111MVN数据非传送

4・4・2数据处理指令指令编码

助记符说明操作条件码位置

MOVRd,operand2数据传送Rd-operand2MOV(cond}{S}

MVNRd,operand2数据非传送Rd—(~operand2)MVN(cond}{S}

注:当后缀S时,这些指令根据结果更新标志N和乙在计算Operand2时更新标

志C,不影响标志V。

4・4・2数据处理指令数据传送

助记符说明操作条件码位置

MOVRd,operand2数据传送Rd<-operand2MOV{cond}{S}

MVNRd,operand2数据非传送Rd-(~operand2)MVN{cond}{S}

MOV指令将8位图立即数(参看“第2操作数:#immed_8r——常数表达

式”)或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。指令

格式如下:

MOV{cond}{S}Rd,operand2

MOV指令举例如下:

MOVR11,#0xF000000B;R1=OxFOOOOOOB

MOVR0,R1;R0=R1

MOVSR3,R1,LSL#2;R3=R1«2,并影响标志位

MOVPC,LR;PC=LR,子程序返回

4・4・2数据处理指令数据传送

助记符说明操作条件码位置

MOVRd,operand2数据传送Rd-operand2MOV(cond}{S}

MVNRd,operand2数据非传送Rd—(^operand2)MVN(cond}{S}

MVN指令将8位图立即数(参看“第2操作数:#immed_8r——常数表达

式”)或寄存器(operand2)按位取反后传送到目标寄存器(Rd),因为

其具有取反功能,所以可以装载范围更广的立即数。指令格式如下:

MVN{cond}{S}Rd,op㊀rand2

MVN指令举例如下:

MVNR1,#0xFF;R1=0xFFFFFF00

MVNR1,R2J等R2按位取反,结果存到R1

4・4・2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd^*-Rn+operand2ADD(cond}{S}

SUBRd,Rn,operand2减法运算指令Rd^-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd^*-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd*-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd*-Rn-operand2-(NOT)CarrySBC(cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd-operand2-Rn-(NOT)CarryRSC{cond}{S}

注:这些指令影响N,乙C和V标志位。

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd<-Rn+operand2ADD{cond}{S}

SUBRd,Rn,operand2减法运算指令Rd-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd^-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd<-Rn-operand2-(NOT)CarrySBC{cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd"1-operand2-Rn-(NOT)CarryRSC(cond}{S}

加法运算指令——ADD指令将operand2的值与Rn的值相加,结果保存到

Rd寄存器。指令格式如下:

ADD{cond}{S}RdfRnfoperand2

应用示例:

ADDSR1,R1,#1020;R1=R1+1020,并影响标志位

ADDR1,R1,R2,LSL#2;R1=R1+R2«2

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd*-Rn+operand2ADD{cond}{S}

SUBRd,Rn,operand2减法运算指令Rd<-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd*-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd^-Rn-operand2-(NOT)CarrySBC{cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd*-operand2-Rn-(NOT)CarryRSC{cond}{S}

减法运算指令SUB指令用寄存器Rn减去operand2,结果保存到Rd中。

指令格式如下:

SUB{cond}{S}Rd,Rn,op㊀工and2

应用示例:

ADDSR1,R1,#1020;R1=R1+1020,并影响标志位

ADDR1,R1,R2,LSL#2;R1=R1+R2«2

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd^-Rn+operand2ADD{cond}{S}

SUBRd,Rn,operand2减法运算指令Rd*-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd*-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd*-Rn-operand2-(NOT)CarrySBC{cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd<-operand2-Rn-(NOT)CarryRSC{cond}{S}

逆向减法运算指令——RSB指令将operand2的值减去Rn,结果保存到Rd中。

指令格式如下:

RSB{cond}{S}Rd,Rn,op㊀rand2

应用示例:

RSBR3,R1,#0xFF00;R3=0xFF00-R1

RSBSR1,R2,R2,LSL#2;R1=(R2«2)-R2=R2X3影响标志位

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd^-Rn+operand2ADD{cond}{S}

SUBRd,Rn,operand2减法运算指令Rd*-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd*-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd*-Rn-operand2-(NOT)CarrySBC{cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd<-operand2-Rn-(NOT)CarryRSC{cond}{S}

带进位加法指令ADC将operand2的值与Rn的值相加,再加上CPSR中的C

条件标志位,结果保存到Rd寄存器。指令格式如下:

ADC{cond}{S}Rd,Rn,op㊀rand2

应用示例(使用ADC实现64位加法,结果存于R1(高32位)、R0中):

ADDSR0,R0,R2;R0等于低32位相加,并影响标志位

ADCR1,R1,R3;R1等于高32位相加,并加上低位进位

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd-Rn+operand2ADD(cond}{S}

SUBRd,Rn,operand2减法运算指令Rd-Rn-operand2SUB(cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd<f-operand2-RnRSB{cond}{S}

ADCRd,Rn,operands带进位加法Rd^*-Rn+operand2+CarryADC(cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd^1-Rn-operand2-(NOT)CarrySBC(cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd^-operand2-Rn-(NOT)CarryRSC(cond}{S}

带进位减法指令——SBC用寄存器Rn减去operand2,再减去CPSR中的C

条件标志位的非(即若C标志清零,则结果减去1),结果保存到Rd中。指令

格式如下:

SBC{cond}{S}Rd,Rnfoperand2

应用示例(使用SBC实现64位减法,结果存于R1、R0中):

SUBSR0,R0,R2;低32位相减,并影响标志位

SBCR1,R1,R3;高32位相减,并减去低位借位

4-4-2数据处理指令算术运算

助记符说明操作条件码位置

ADDRd,Rn,operand2加法运算指令Rd*-Rn+operand2ADD{cond}{S}

SUBRd,Rn,operand2减法运算指令Rd-Rn-operand2SUB{cond}{S}

RSBRd,Rn,operand2逆向减法指令Rd*-operand2-RnRSB{cond}{S}

ADCRd,Rn,operand2带进位加法Rd*-Rn+operand2+CarryADC{cond}{S}

SBCRd,Rn,operand2带进位减法指令Rd<-Rn-operand2-(NOT)CarrySBC{cond}{S}

RSCRd,Rn,operand2带进位逆向减法指令Rd*-operand2-Rn-(NOT)CarryRSC{cond}{S}

带进位逆向减法指令RSC指令用寄存器operand2减去Rn,再减去

CPSR中的C条件标志位,结果保存到Rd中。指令格式如下:

RSC{cond}{S}Rd,Rn,op㊀工and2

应用示例(使用RSC指令实现求64位数值的负数):

RSBSR2,R0,#0;R2=-R0

RSCR3,R1,#0;R3=-R1-!Carry

4・4・2数据处理指令逻辑运算指令

助记符说明操作条件码位置

ANDRd,Rn,operand2逻辑与操作指令Rd-Rn&operand2AND(cond}{S}

ORRRd,Rn,operand2逻辑或操作指令Rd-Rn|operand20RR(cond}{S}

EORRd,Rn,operand2逻辑异或操作指令Rd-Rn八operand2EOR(cond}{S}

BICRd,Rn,operand2位清除指令Rd-Rn&(^operand2)BIC{cond}{S}

注:当后缀S时,这些指令根据结果更新标志N和乙在计算Operand2时更新标

志C,不影响标志V。

4・4・2数据处理指令逻辑运算指令

助记符说明操作条件码位置

ANDRd,Rn,operand2逻辑与操作指令Rd—Rn&operand2AND{cond}{S}

ORRRd,Rn,operand2逻辑或操作指令Rd-Rnoperand2ORR{cond}{S}

EORRd,Rn,operand2逻辑异或操作指令Rd-Rn-operand2EOR{cond}{S}

BICRd,Rn,operand2位清除指令Rd-Rn&Coperand2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论