《計算機組成與系統(tǒng)結(jié)構(gòu)》課件第5章_第1頁
《計算機組成與系統(tǒng)結(jié)構(gòu)》課件第5章_第2頁
《計算機組成與系統(tǒng)結(jié)構(gòu)》課件第5章_第3頁
《計算機組成與系統(tǒng)結(jié)構(gòu)》課件第5章_第4頁
《計算機組成與系統(tǒng)結(jié)構(gòu)》課件第5章_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章指令系統(tǒng)5.1指令系統(tǒng)概述5.2指令系統(tǒng)結(jié)構(gòu)層定義5.3指令設(shè)計5.4基本尋址方式5.5

CISC與RISC5.6典型指令系統(tǒng)

5.1指令系統(tǒng)概述

計算機完成各種各樣的工作都是通過執(zhí)行計算機程序來體現(xiàn)的。程序是由一系列有時間順序、有邏輯關(guān)系的指令構(gòu)成的。指令是控制計算機硬件完成指定的基本操作(如加、減、移動等)的命令,是用戶使用計算機和計算機本身運行的最小功能單位。能被一臺計算機執(zhí)行的全部指令的集合稱為該機的指令系統(tǒng)(也稱指令集,即InstructionSet)。指令有兩種表現(xiàn)形式:機器指令和助記符指令。

下面給出的兩條指令示例為Intel系統(tǒng)的指令:在計算機體系結(jié)構(gòu)中,根據(jù)對設(shè)計者、使用者不同的需求和要求,計算機被分為多個層次,圖1.2就是一種通俗的計算機分層結(jié)構(gòu)。從更深層、更專業(yè)的角度,可以將圖1.2的下面三層描述為微體系結(jié)構(gòu)層、指令系統(tǒng)結(jié)構(gòu)(InstructionSystemArchitecture,ISA)層和操作系統(tǒng)層,見圖5.1。圖5.1指令系統(tǒng)結(jié)構(gòu)層的作用

5.2指令系統(tǒng)結(jié)構(gòu)層定義

5.2.1存儲模式

1.數(shù)據(jù)存儲順序

不同的計算機系統(tǒng)采用不同的方式來存儲數(shù)據(jù)。

(1)大端存儲(Big-EndianOrdering):

(2)小端存儲(Little-EndianOrdering):

例5.1一個32位的十六進制數(shù)據(jù)12345678H,存儲在1000H地址開始的以字節(jié)編址的主存空間中,其存儲結(jié)果見表5.1。

2.邊界對齊

所謂邊界對齊是指數(shù)據(jù)存儲在低位地址以全0開始的連續(xù)存儲單元中。在64位字長的計算機系統(tǒng)中,邊界對齊的兩字節(jié)數(shù)據(jù)的地址是2的整數(shù)倍,半字地址是4的整數(shù)倍,字地址是8的整數(shù)倍,見圖5.2(a)。當所存數(shù)據(jù)不能滿足此要求時,可填充一個或多個空白字節(jié)。

在數(shù)據(jù)邊界未對齊的計算機中,數(shù)據(jù)(例如一個字)的存儲將跨兩個邊界對齊的存儲單元,此時讀寫一個完整的數(shù)據(jù)需要訪問兩次存儲器,并需對高低字節(jié)的順序進行調(diào)整,見圖5.2(b)。圖5.2以小端模式存儲數(shù)據(jù)(0807060504030201H)的情況

3.堆棧(Stack)

在所有計算機系統(tǒng)中,對于主存的大部分空間,允許在任何時間對其中的任何存儲單元進行讀寫操作,且讀寫時間相同,這種特性稱為主存的隨機讀寫特性。但有時我們希望對主存的操作有一定的順序性,堆棧就是主存中被特殊定義的一塊存儲區(qū)域,它具有先進后出(FirstInLastOut,F(xiàn)ILO)的操作規(guī)則。在使用堆棧之前,先要對堆棧的大小、在主存中的位置做出定義。使用堆棧時用三個專用地址寄存器來管理:

(1)堆棧指針(StackPointer,SP):指示當前可操作的堆棧單元。

(2)堆棧基址(StackBase,SB):指示堆棧的底部。

(3)堆棧界限(StackLimit,SL):指示堆棧的最頂端。

堆棧界限=堆棧基址±堆棧大小圖5.3堆棧的基本操作

4.馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)

在馮·諾依曼計算機中規(guī)定,指令與數(shù)據(jù)均用二進制表示,并可在整個主存中混合存放,如圖5.4(a)所示。圖5.4兩種主存結(jié)構(gòu)

5.加載/存儲體系結(jié)構(gòu)

在許多RISC系統(tǒng)中,指令系統(tǒng)只提供了兩條對主存操作的指令,即加載(Load)和存儲(Store)指令。Load指令實現(xiàn)將主存的數(shù)據(jù)傳送到寄存器,Store指令實現(xiàn)將寄存器的數(shù)據(jù)傳送到主存。在這種加載/存儲體系結(jié)構(gòu)中,所有運算的源操作數(shù)由寄存器或指令提供,而不是直接來自主存;運算結(jié)果也必須放在寄存器中,而不是直接寫入主存。5.2.2寄存器組織

寄存器是存儲體系中最上層(速度最快、容量最小)的存儲部件,是CPU內(nèi)部配合控制器、運算器工作的重要部件,也是指令系統(tǒng)結(jié)構(gòu)層定義的重要對象。從指令系統(tǒng)結(jié)構(gòu)層來看,寄存器是軟件設(shè)計者唯一能操作的CPU內(nèi)部資源。5.2.3數(shù)據(jù)類型

數(shù)據(jù)作為指令的處理對象,需要有不同的類型、不同的格式表示。數(shù)據(jù)類型不同,則處理方法不同,需要的硬件支持也不同。5.2.4指令

指令系統(tǒng)是指令系統(tǒng)結(jié)構(gòu)層的主要特征,它的每一條指令可以被CPU執(zhí)行,并規(guī)定了計算機的基本功能。由指令構(gòu)成的程序控制了計算機系統(tǒng)的運行,并決定了計算機系統(tǒng)要完成的任務(wù)。移位類運算指令一般包括算術(shù)左移和右移、邏輯左移和右移、帶進位循環(huán)(大循環(huán))左移和右移、不帶進位循環(huán)(小循環(huán))左移和右移,可以實現(xiàn)對操作數(shù)移一位或若干位。具體操

作如圖5.5所示。圖5.5移位操作

5.3指令設(shè)計

在確定了指令功能、數(shù)據(jù)類型、寄存器組織等與指令系統(tǒng)架構(gòu)相關(guān)的信息之后,具體的指令設(shè)計就成為指令系統(tǒng)設(shè)計的核心。5.3.1指令格式

為了使指令能夠有效地指揮計算機完成各種操作,一條指令應(yīng)包含兩個基本要素:操作碼和地址碼,其基本格式如下:5.3.2地址碼設(shè)計

指令功能不同,需要的操作數(shù)數(shù)量也有所不同。利用地址碼字段可以為指令指定源操作數(shù)、目的操作數(shù)和下條指令地址等信息,格式如下:按照地址碼字段的數(shù)量,指令也可以分為四地址指令、三地址指令、兩地址指令、一地址指令和零地址指令,其指令格式如下:5.3.3操作碼設(shè)計

1.定長操作碼

對所有指令的操作碼用相同位數(shù)的二進制數(shù)進行編碼即為定長操作碼編碼方式。例如,某計算機的指令系統(tǒng)需要設(shè)置N條指令,若所有指令的操作碼均用n位二進制數(shù)表示,則

應(yīng)滿足關(guān)系式:

N≤2n。從2n個編碼中選出N個編碼分配給N條指令,即可完成操作碼設(shè)計。

2.變長操作碼

對不同類型的指令操作碼用不固定長度的二進制數(shù)進行編碼即為變長操作碼編碼方式,也稱作擴展操作碼編碼方式。

擴展操作碼技術(shù)是一種重要的指令優(yōu)化技術(shù),其技術(shù)核心是:

①使程序中指令的平均操作碼長度盡可能短,以減少操作碼在程序中的總位數(shù);

②盡可能充分地利用指令的二進制數(shù)位,以增加指令字表示的操作信息。擴展操作碼的設(shè)計原則如下:

(1)如果指令字長固定,則長地址碼對應(yīng)短操作碼,操作碼長度隨地址碼長度縮短而增加。

(2)如果指令字長可變,則以指令使用頻度(指令在程序中出現(xiàn)的概率)作為設(shè)計依據(jù),使用頻度高的指令用短操作碼,使用頻度低的指令用長操作碼,這便是霍夫曼(Huffman)

編碼原理。

(3)設(shè)計總是從短操作碼開始,并要保證當前使用的操作碼編碼與未來要擴展的操作碼編碼能夠有效地區(qū)分。

1)基于霍夫曼編碼原理設(shè)計變長操作碼

統(tǒng)計發(fā)現(xiàn),在程序設(shè)計過程中,由于指令功能的不同和設(shè)計者對指令使用愛好的不同,致使一個指令系統(tǒng)中的各種指令使用頻度大不相同。表5.2是針對SPECint92測試程序?qū)?/p>

80x86指令使用情況的統(tǒng)計結(jié)果。

例5.2某計算機有10條指令,它們的使用頻率分別為0.30、0.20、0.16、0.09、0.08、0.07、0.04、0.03、0.02、0.01。用Huffman樹(最優(yōu)二叉樹)對它們的操作碼進行編碼,

并計算平均代碼長度。圖5.6

Huffman樹

解圖5.6為基于霍夫曼編碼原理構(gòu)造的Huffman樹,根據(jù)Huffman樹得出的Huffman編碼結(jié)果及各編碼的長度列表

如下:

例5.3某計算機系統(tǒng)中有20條指令的使用頻度是80%,80條指令的使用頻度是15%,40條指令的使用頻度是5%,試設(shè)計固定長度和可變長度的操作碼。

(1)定長操作碼:140條指令,8位操作碼長度,從256種編碼中選出140種編碼分配給140條指令作為它們的操作碼。

(2)擴展操作碼:一種設(shè)計結(jié)果列于下表。

2)基于特定規(guī)則擴展操作碼

設(shè)計擴展操作碼不僅要考慮操作碼的可分辨性,還應(yīng)考慮其是否便于快速譯碼。圖5.7示出了兩種以某種特定規(guī)則設(shè)計的擴展操作碼。圖5.7特定規(guī)則的擴展操作碼編碼方法

3)依據(jù)地址碼數(shù)量擴展操作碼

對于指令字長度固定的指令系統(tǒng),為了充分利用指令的二進制位,操作碼長度一般隨地址碼數(shù)量多少而變化。

例5.4某指令系統(tǒng)的指令長度確定為32位,由三地址、二地址、一地址、零地址指令組成,其中各類指令中地址字段位數(shù)如下表,則各類指令的操作碼可以設(shè)計為幾位?各類指令數(shù)最多可以是多少?

解三地址指令:操作碼6位,指令數(shù)n3≤26-1

雙地址指令:

操作碼11位,指令數(shù)n2≤(26-n3)×25-1

單地址指令:

操作碼16位,指令數(shù)n1≤((26-n3)×25-n2)×25-1

零地址指令:

操作碼32位,指令數(shù)n0≤(((26-n3)×25-n2)

×25-n1)×2165.3.4指令長度設(shè)計

指令長度設(shè)計的一般原則是:

(1)短的操作碼與多地址碼字段配合,長的操作碼與簡單地址碼組合。

(2)指令長度一般設(shè)計為總線寬度的整數(shù)倍。

(3)指令長度為存儲器最小可尋址單位的整數(shù)倍。理論上,可以按下式確定指令長度,即

(5-1)

式中假設(shè)指令中有M個地址碼字段,每個地址碼字段的長度可以不相同。在實際的計算機系統(tǒng)中,有三種常用的設(shè)計方案:

(1)定長操作碼,變長指令碼。操作碼的長度固定,且集中放在指令字的第一個字段中,指令的其余部分全部用于地址碼。例如8086指令系統(tǒng),指令采用8位定長操作碼、1~5字節(jié)變長指令碼的格式。

(2)變長操作碼,定長指令碼。即在指令碼長度固定的情況下,讓操作碼位數(shù)隨地址碼長度的減少而擴展,如例5.4所示。

(3)定長操作碼,定長指令碼。例如MIPS指令系統(tǒng),指令采用6位定長操作碼、32位定長指令碼的格式。

5.4基本尋址方式

尋址方式在指令中以兩種方式呈現(xiàn):

(1)由操作碼決定其尋址方式,稱為隱式尋址。

(2)指令中設(shè)置尋址方式字段,由尋址方式字段的不同編碼來指定操作數(shù)的尋址方式,稱為顯式尋址。

1.隱含尋址

該尋址方式的特征是,操作數(shù)的存放地由操作碼指定。

以Intel指令為例,加法十進制調(diào)整指令DAA隱含規(guī)定調(diào)整對象為寄存器AL,乘法指令MULBL隱含規(guī)定乘數(shù)之一是8位寄存器AL、乘積存放在16位寄存器AX中。

2.立即尋址

該尋址方式的特征是,操作數(shù)在指令中,見圖5.8。圖5.8立即尋址

3.寄存器尋址

該尋址方式的特征是,操作數(shù)在指令指定的寄存器中,見圖5.9。圖5.9寄存器尋址

4.直接尋址

該尋址方式的特征是操作數(shù)地址在指令中,操作數(shù)在主存單元中,見圖5.10。圖5.10直接尋址

5.間接尋址

該尋址方式的特征是,操作數(shù)地址的地址在指令中,操作數(shù)在主存單元中,見圖5.11。圖5.11間接尋址

6.寄存器間接尋址

該尋址方式的特征是,操作數(shù)地址在指令指定的寄存器中,操作數(shù)在主存單元中,見圖5.12。圖5.12寄存器間接尋址

7.相對尋址

該尋址方式的特征是,操作數(shù)地址由程序計數(shù)器和指令提供的地址偏移量決定,操作數(shù)在主存單元中,見圖5.13。圖5.13相對尋址

8.基址尋址

該尋址方式的特征是,操作數(shù)地址由基址寄存器和指令提供的地址偏移量決定,操作數(shù)在主存單元中,見圖5.14。圖5.14基址尋址

9.變址尋址

該尋址方式的特征是,操作數(shù)地址由變址寄存器和指令提供的地址偏移量決定,操作數(shù)在主存單元中,見圖5.15。圖5.15變址尋址

10.堆棧尋址

該尋址方式通常由指令操作碼指定,用在涉及堆棧操作的指令中,所尋址的操作數(shù)在堆棧中。

壓棧、調(diào)用指令中的目的操作數(shù)地址或彈出、返回指令中的源操作數(shù)地址由堆棧指針SP隱含指定,即EA=(SP)。依據(jù)SP對堆棧進行操作數(shù)壓?;驈棾龊?,SP的值會自動修改指向新的棧頂單元,見圖5.3。

5.5

CISC與RISC

5.5.1指令系統(tǒng)結(jié)構(gòu)的發(fā)展

在已進入計算機軟硬件協(xié)同設(shè)計的今天,計算機的每一項設(shè)計決定都應(yīng)該綜合考慮以下因素:①技術(shù)支持;②計算機體系結(jié)構(gòu);③編程語言;④編譯技術(shù);⑤操作系統(tǒng)。同時所做出的設(shè)計決定也會對這些因素產(chǎn)生影響。所以,指令系統(tǒng)結(jié)構(gòu)發(fā)展中的標志性事件都與計算機體系結(jié)構(gòu)的進步密不可分。

指令系統(tǒng)結(jié)構(gòu)(ISA)的發(fā)展經(jīng)歷了以下階段(見圖5.16)。圖5.16指令系統(tǒng)結(jié)構(gòu)的發(fā)展

1.累加器結(jié)構(gòu)(AccumulatorArchitecture)

2.緊湊代碼和堆棧結(jié)構(gòu)(CompactCode&StackArchitecture)

3.編程模型與實現(xiàn)的分離

4.高級語言計算機結(jié)構(gòu)(High-LevelLanguageComputerArchitecture,HLLCA)

5.通用寄存器結(jié)構(gòu)(General-PurposeRegisterArchitecture)

6.復(fù)雜指令集計算機結(jié)構(gòu)(ComplicatedInstructionSetComputerArchitecture)

7.精簡指令集計算機結(jié)構(gòu)(ReducedInstructionSetComputerArchitecture)

8.超長指令字結(jié)構(gòu)(VeryLongInstructionWordArchitecture)5.5.2

CISC

早期CISC設(shè)計有如下特點:

(1)指令系統(tǒng)復(fù)雜,即指令數(shù)多、尋址方式多、指令格式多;

(2)絕大多數(shù)指令執(zhí)行需要多個時鐘周期;

(3)有多種指令可以訪問存儲器;

(4)CPU控制器采用微程序控制方式實現(xiàn);

(5)寄存器數(shù)量有限。規(guī)模龐大的指令系統(tǒng)在提供豐富指令、有助于靈活程序設(shè)計的同時,也存在諸多弊端:

(1)為適應(yīng)豐富的指令系統(tǒng),CPU控制器必須很復(fù)雜,相應(yīng)的程序控制存儲裝置必須有更大空間,這會增加指令執(zhí)行的時間,抵消復(fù)雜指令預(yù)期帶來的速度優(yōu)勢;

(2)繁多的指令會使計算機研制周期變長,調(diào)試和維護難度變大;

(3)復(fù)雜指令系統(tǒng)必然增加硬件設(shè)計和制造的復(fù)雜性,增加了研制成本。5.5.3

RISC

RISC結(jié)構(gòu)計算機具有如下特點:

(1)只設(shè)置使用頻度高的簡單指令,所以指令的操作種類少,尋址方式少;

(2)指令格式規(guī)則,長度固定,便于簡單統(tǒng)一的譯碼,可使控制器簡化、硬件結(jié)構(gòu)精簡;

(3)僅通過Load和Store指令訪問主存;

(4)通用寄存器數(shù)量多,一般有幾十甚至幾百個,大多數(shù)操作在寄存器之間進行;

(5)在非流水線RISC中,單條指令可在單機器周期內(nèi)完成;在流水線RISC中,對于大多數(shù)指令有CPI=1;

(6)采用硬布線控制器,不使用微代碼(即微程序),有利于提高時鐘頻率和CPU速度,能夠更好地響應(yīng)中斷;

(7)可簡化硬件設(shè)計,降低成本及便于超大規(guī)模集成電路實現(xiàn);

(8)有利于多流水線、多核CPU實現(xiàn);

(9)適宜高度優(yōu)化編譯器(即編譯程序);

(10)精簡的指令使程序閱讀、分析難度加大;

(11)不能同CISC兼容,解決辦法一是將源程序在CISC機器上重新編譯,辦法二是用目標代碼翻譯器將CISC代碼翻譯為RISC代碼。

5.6典型指令系統(tǒng)

5.6.1

IntelCPU指令系統(tǒng)

1.IntelCPU指令系統(tǒng)發(fā)展

隨著IntelCPU功能的不斷提升,其指令格式也在不斷擴展,指令數(shù)量亦在不斷擴大。表5.3是IntelCPU指令系統(tǒng)的發(fā)展歷程,從中可以充分體現(xiàn)出這個系列指令系統(tǒng)的規(guī)模和

始終堅守的向后兼容特性。

2.Intel64和IA-32體系結(jié)構(gòu)的指令格式

當指令用符號表示時,IA-32匯編語句(指令)格式為:

label:mnemonicargument1,argument2,argument3

其中,label是匯編語句(或指令地址)標識符,mnemonic是指令操作碼助記符,操作數(shù)argument1、argument2和argument3是可選項,依據(jù)操作碼可以有0~3個操作數(shù)。例如:

LoadReg:MOVEAX,Date

Intel64和IA-32體系結(jié)構(gòu)指令編碼格式如圖5.17所示,它是對8086指令格式的擴展,它由可選的指令前綴(按任意次序)、基本操作碼字節(jié)(最多3字節(jié))、尋址方式指定字節(jié)(如果需要,由ModR/M和SIB字節(jié)組成)和地址偏移量域(如果需要)、立即數(shù)域(如果需要)組成。指令長度最短1字節(jié),最長17字節(jié)。圖5.17

Intel64和IA-32體系結(jié)構(gòu)指令編碼格式

1)指令前綴(InstructionPrefixes)

每條指令可以冠以前綴或不加前綴,指令前綴分為4組:

(1)組1:封鎖和重復(fù)前綴(LockandRepeatPrefixes)。封鎖前綴強制在多處理器環(huán)境中共享存儲器的獨占使用。重復(fù)前綴引發(fā)一條指令對串的每個元素重復(fù)執(zhí)行。

(2)組2:段超越前綴(SegmentOverridePrefixes)。該前綴允許地址跨越不同屬性的段(CS、SS、DS、ES、FS、GS)。

(3)組3:操作數(shù)長度超越前綴(Operand-sizeOverridePrefix)。該前綴允許程序在16位與32位操作數(shù)之間轉(zhuǎn)換。

(4)組4:地址范圍超越前綴(Address-sizeOverridePrefix)。該前綴允許程序在16位與32位地址空間之間轉(zhuǎn)換。

2)操作碼(Opcodes)

基本操作碼1~3字節(jié),而某些指令附加的3位操作碼在ModR/M字節(jié)中。該字段用來指明指令的類型和功能。8086系統(tǒng)對操作碼采用1字節(jié)的固定長度編碼,而從80386開始

擴展了操作碼。

Intel64和IA-32指令包括以下類型:

(a)通用目的指令,如數(shù)據(jù)傳送、二進制/十進制整數(shù)算術(shù)運算、邏輯運算、移位和旋轉(zhuǎn)運算、位操作、串操作、程序控制、標志控制、段寄存器操作等,與8086指令兼容;

(b)x87FPU協(xié)處理器指令(FPU-Floating-PointUnit);

(c)SIMD指令(SIMD-SingleInstructionMultipleData);

(d)MMX指令(MMX-MultiMediaeXtensions);

(e)SSE/SSE2/SSE3/SSSE3/SSE4擴展指令(SSE-StreamingSIMDExtensions,SSSE-SupplementalSSE);

(f)系統(tǒng)指令。

3)尋址方式(Addressing-formSpecifier)

ModR/M字節(jié)或ModR/M+SIB(Scale-Index-Base)字節(jié)指定32位系統(tǒng)中的尋址方式。32位系統(tǒng)規(guī)定的尋址方式除了將ModR/M字節(jié)中提供基本地址的寄存器長度和數(shù)量擴大之外,還增加了由SIB字節(jié)指定的帶比例因子的尋址方式,其有效地址EA由基址(Base)、指針(Index)、位移量(Displacement)和比例因子(ScaleFactor)運算得到,即

EA=(基址寄存器)+(指針寄存器)×比例因子+位移量圖5.18

IntelCPU對存儲器尋址時邏輯地址到物理地址的轉(zhuǎn)換

4)偏移量(Displacement)

地址偏移量域提供某些尋址方式需要的偏移地址(也稱相對地址)。8086系統(tǒng)中的偏移地址是8位或16位的帶符號數(shù),80386之后系統(tǒng)中的偏移地址是8位、16位或32位的帶符號數(shù)。

5)立即數(shù)(Immediate)

立即數(shù)域在立即尋址時提供指令所需的立即數(shù)。

3.IA-32e模式的指令格式

IA-32e模式有兩個子模式:

(1)兼容模式(CompatibilityMode)。允許64位操作系統(tǒng)運行大多數(shù)繼承的未修改的保護模式軟件。

(2)64位模式(64BitMode)。允許64位操作系統(tǒng)運行訪問64位地址空間的應(yīng)用程序。

64位模式的指令格式見圖5.19,與圖5.17比較,它在IA-32指令格式的基礎(chǔ)上又增加了1字節(jié)的REX前綴。圖5.19

64位模式的指令格式

REX前綴起如下作用:

①指定GPR和SSE寄存器(GPR-General-Purpose

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論