第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)_第1頁
第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)_第2頁
第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)_第3頁
第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)_第4頁
第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

12三月2024第講第章控制轉(zhuǎn)移和程序結(jié)構(gòu)標(biāo)準(zhǔn)流程圖符號

匯編語言程序的基本結(jié)構(gòu)1.順序結(jié)構(gòu)2.分支程序結(jié)構(gòu)循環(huán)程序結(jié)構(gòu)IP(或EIP)線性增加IP(或EIP)受標(biāo)志位的影響而跳變IP(或EIP)因計數(shù)器CX(或ECX)中的值不為零而循環(huán)例.順序結(jié)構(gòu)程序要求:用查表法將一位十六進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的ASCII碼DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB 4ASCI DB ?DATA ENDSSTACK SEGMENTSTACK DW 20HDUP(0)STACK ENDSCOSEGSEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACKBEING: MOV AX,DATA MOV DS,AX MOV BX,OFFSETTABLE MOV AH,0 MOV AL,HEX ADD BX,AX MOV AL,[BX] MOV ASCI,AL MOV AH,4CH INT 21HCOSEG ENDS END BEINGXLAT≡XLAT;AL←[BX+AL]當(dāng)改變了EIP或CS就改變了程序的執(zhí)行順序即實現(xiàn)了程序的控制轉(zhuǎn)移第5章控制轉(zhuǎn)移和程序結(jié)構(gòu)5.1目標(biāo)地址尋址方式5.1.1轉(zhuǎn)移范圍5.1.2尋址方式5.1.3無條件轉(zhuǎn)移指令5.2分支程序結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.3循環(huán)程序結(jié)構(gòu) 5.3.1循環(huán)指令5.3.2計數(shù)控制循環(huán)5.3.3條件控制循環(huán)5.4子程序結(jié)構(gòu)5.4.1子程序指令5.4.2子程序設(shè)計5.4.3參數(shù)傳遞5.4.4程序模塊5.1目標(biāo)地址尋址方式5.1.1轉(zhuǎn)移范圍5.1.2尋址方式5.1.3無條件轉(zhuǎn)移指令5.1.1程序轉(zhuǎn)移范圍段內(nèi)轉(zhuǎn)移在當(dāng)前代碼段內(nèi)的轉(zhuǎn)移不改CS,只改EIP近轉(zhuǎn)移(Near)16位段:16位近轉(zhuǎn)移NEAR1632位段:32位近轉(zhuǎn)移NEAR32短轉(zhuǎn)移(Short)轉(zhuǎn)移范圍-128

~127字節(jié)段間轉(zhuǎn)移從當(dāng)前代碼段跳轉(zhuǎn)到另一個代碼段改CS和EIP遠(yuǎn)轉(zhuǎn)移(Far)16位段:32位遠(yuǎn)轉(zhuǎn)移FAR1632位段:48位遠(yuǎn)轉(zhuǎn)移FAR325.1.2目標(biāo)地址尋址方式1.相對尋址方式2.直接尋址方式3.間接尋址方式類似于存儲器數(shù)據(jù)的尋址方式指明目標(biāo)地址的方法1.相對尋址方式指令代碼提供目標(biāo)地址相對于當(dāng)前指令指針EIP的位移量目標(biāo)地址(轉(zhuǎn)移后的EIP)=當(dāng)前EIP+位移量特點都是段內(nèi)轉(zhuǎn)移,最常用、最靈活2.直接尋址方式指令代碼直接提供目標(biāo)地址目標(biāo)地址(轉(zhuǎn)移后的CS和EIP)=指令操作數(shù)3.間接尋址方式指令代碼給出存放目標(biāo)地址的寄存器或存儲單元分類寄存器間接尋址用寄存器保存目標(biāo)地址存儲器間接尋址用存儲單元保存目標(biāo)地址5.1.3無條件轉(zhuǎn)移指令JMP作用無條件改變程序執(zhí)行順序格式段內(nèi)相對尋址或段間直接尋址JMPlabel ;程序轉(zhuǎn)向label標(biāo)號指定的地址寄存器間接尋址JMPreg16/reg32 ;程序轉(zhuǎn)向寄存器指定的地址存儲器間接尋址JMPmem16/mem32;程序轉(zhuǎn)向存儲單元指定的地址JMP指令的4種類型1.段內(nèi)轉(zhuǎn)移(1)相對尋址標(biāo)號指明目標(biāo)地址,指令代碼包含位移量(2)間接尋址通用寄存器或主存單元包含目標(biāo)指令的偏移地址2.段間轉(zhuǎn)移(1)直接尋址標(biāo)號包含目標(biāo)指令的段地址和偏移地址(2)間接尋址16位段:用雙字存儲單元包含目標(biāo)地址32位段:用3字存儲單元包含目標(biāo)地址1.段內(nèi)轉(zhuǎn)移——(1)相對尋址段內(nèi)直接短轉(zhuǎn)移JMPSHORTlable ;IP←IP+8位偏移量(有符號)段內(nèi)直接近轉(zhuǎn)移JMPNEARPTRlable ;IP←IP+16位位移量(有符號)操作碼EB位移量E9位移量(低)位移量(高)操作碼位移量=標(biāo)號偏移地址—當(dāng)前IP值

(JMP指令的下一條指令的IP值)注意標(biāo)號、邏輯段名、子程序名也有地址和類型屬性例.標(biāo)號next: add al,01h邏輯段名datas SEGMENTdatas ENDS子程序名dpchar procdpchar endp例1.段內(nèi)直接短轉(zhuǎn)移 JMPSHORTnext操作碼EB位移量;next的(IP)←當(dāng)前(IP)+D8例2.段內(nèi)直接近轉(zhuǎn)移 JMPNEARPTRNEXT 設(shè)(1)標(biāo)號NEXT的EA=1000H(2)JMP指令的當(dāng)前IP為0009H 求:位移量=? 指令代碼E9F70F(代表JMP1000H)1000H-0009H=0FF7HE9位移量(低)位移量(高)操作碼1.段內(nèi)轉(zhuǎn)移——(2)間接尋址寄存器間接尋址 JMP reg ;IP←reg存儲器間接尋址 JMP mem ;IP←[EA]屬于絕對轉(zhuǎn)移例1. 設(shè)CS=3000H,IP=2400H,BX=3100H JMPBX 指令執(zhí)行后,IP=?例2. 設(shè)DS=2000H,BX=1000H,[21020H]=34H,[21021H]=12H JMPWORDPTR[BX+20H] 指令執(zhí)行后,IP=?3100H1234H[例題5-1]無條件轉(zhuǎn)移程序-1 ;數(shù)據(jù)段00000000 nvar dw?

;代碼段0010

EB

01

jmplabl1001290 nop0013B8FF02 labl1: movax,typelabl10016

E9

0001

jmp

nearptrlabl2001990 nop001AB80020R labl2: movax,offsetlabl3001DFFE0 jmpax001F90 nop0020B8002BR labl3: movax,offsetlabl40023A30000R movnvar,ax0026FF260000R jmpnvar002A90 nop相對短轉(zhuǎn)移相對近轉(zhuǎn)移寄存器間接近轉(zhuǎn)移存儲器間接近轉(zhuǎn)移2.段間轉(zhuǎn)移——(1)直接尋址段間直接轉(zhuǎn)移JMPFARPTRlable ;IP←lable的段內(nèi)偏移地址

;CS←lable所在段的段地址屬于絕對轉(zhuǎn)移操作碼EAIP(低)IP(高)CS(低)CS(高)例1.C1SEGMENT …JMPFARPTRnext_prog …C1ENDSC2SEGMINT …next_prog: … …C2ENDSEA50020020OP碼新(IP)=0250H新(CS)=2000HJMP指令C1段……C2段…………20000Hnext_prog:20250H……操作碼EAIP(低)IP(高)CS(低)CS(高)2.段間轉(zhuǎn)移——(2)間接尋址存儲器間接尋址 JMP mem ;IP←[EA] ;CS←[EA+2]

屬于絕對轉(zhuǎn)移例.MOV SI,0100HJMP DWORDPTR[SI]執(zhí)行這段程序后:(a)把DS:[SI]即DS:0100H和DS:0101H兩單元的字送?;(b)而把DS:0102H和DS:0103H兩單元的字送?;(c)程序轉(zhuǎn)入由新的CS和新的IP決定的目標(biāo)地址。IPCS[例題5-1]無條件轉(zhuǎn)移程序-2 ;數(shù)據(jù)段000200000000 fvar dd? ;代碼段002BB8FF05 labl4: movax,typefarptrlabl5002E

EA----0034R jmp

farptrlabl5003390 nop0034B80047R labl5: movax,offsetlabl60037A30002R movwordptrfvar,ax003ABA----R movdx,seglabl6003D89160004R movwordptrfvar+2,dx0041FF2E0002R jmp

fvar004590 nop0046

labl6:直接遠(yuǎn)轉(zhuǎn)移存儲器間接遠(yuǎn)轉(zhuǎn)移5.2分支程序結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.2.1條件轉(zhuǎn)移指令Jcc作用根據(jù)上一條指令所設(shè)置的標(biāo)志位,確定程序是否轉(zhuǎn)移格式 Jcc

label

cc:轉(zhuǎn)移條件label:目標(biāo)地址(采用段內(nèi)相對尋址方式)16位80x86:只是-128~+127間的短轉(zhuǎn)移32位IA-32:達(dá)到32位的全偏移量特點:利用但不影響標(biāo)志位1.cc轉(zhuǎn)移條件分類16種、兩類單個標(biāo)志狀態(tài)ZF、SF、PF、OF、CF兩數(shù)大小關(guān)系等于(Equal)無符號數(shù)高(Above)

、低(Below)有符號數(shù)大(Greater)

、小(Less)(1)單個標(biāo)志狀態(tài)JZ/JE

ZF=1 JumpifZero/EqualJNZ/JNE

ZF=0 JumpifNotZero/NotEqualJS

SF=1 JumpifSignJNS

SF=0 JumpifNotSignJP/JPE

PF=1 JumpifParity/ParityEvenJNP/JPO

PF=0 JumpifNotParity/ParityOddJO

OF=1 JumpifOverflowJNO

OF=0 JumpifNotOverflowJC

CF=1 JumpifCarryJNC

CF=0 JumpifNotCarry單個標(biāo)志狀態(tài)作為條件的功能JZ(JE)和JNZ(JNE):ZF是零(相等)還是非零(不等)JS和JNS:SF是負(fù)還是正JO和JNO:OF溢出還是沒有溢出JP(JPE)和JNP(JPO):PF低字節(jié)“1”的個數(shù)是偶數(shù)還是奇數(shù)JC和JNC:CF有進(jìn)位(為1)還是無進(jìn)位(為0)例1.單個條件標(biāo)志作為條件(a)ADD AL,ALJC TOOBIG ;若有進(jìn)位,轉(zhuǎn)移至TOOBIG(b)CMP AL,BLJZ ZERO ;若相等,則轉(zhuǎn)移至ZERO[例題5-2]實現(xiàn)指令CBW功能的程序-18086指令CBW等價于IA-32指令:MOVSX AX,AL功能如果AL最高位為0則:AH=0否則:AH=FFH[例題5-2]實現(xiàn)指令CBW功能的程序-2 moval,bvar ;取出要判斷的數(shù)據(jù)

testal,80h ;測試最高位

jznext1 ;最高位為0(ZF=1),則轉(zhuǎn)移

movah,0ffh ;最高位為1,則順序執(zhí)行

jmpdone ;無條件跳過另一個分支next1: movah,0 ;最高位為0轉(zhuǎn)移到此執(zhí)行done:[例題5-2]實現(xiàn)指令CBW功能的程序-3

moval,bvar ;取出要判斷的數(shù)據(jù)

testal,80h ;測試最高位

jnznext2 ;最高位為1(ZF=0),則轉(zhuǎn)移

movah,0 ;最高位為0,則順序執(zhí)行

jmpdone ;無條件跳過另一個分支next2: movah,0ffh ;最高位為1轉(zhuǎn)移到此執(zhí)行done:[例題5-2]實現(xiàn)指令CBW功能的程序-4

moval,bvar ;取出要判斷的數(shù)據(jù)

cmpal,0 ;與0比較

jnsnext3 ;最高位為0(SF=0),則轉(zhuǎn)移

movah,0ffh ;最高位為1,則順序執(zhí)行

jmpdone ;無條件跳過另一個分支next3: movah,0 ;最高位為0轉(zhuǎn)移到此執(zhí)行done:[例題5-3]實現(xiàn)奇偶校驗程序-1奇偶校驗使數(shù)據(jù)中包括校驗位在內(nèi)的“1”的個數(shù)恒為奇數(shù)奇校驗恒為偶數(shù)(包括0)偶校驗奇偶校驗特點只能檢測出錯,不能糾錯奇偶校驗標(biāo)志:PF[例題5-3]實現(xiàn)奇偶校驗程序-2

movah,1 ;1號功能

int21h ;鍵盤輸入,返回值在AL

andal,7fh ;最高位置“0” ;PF反映“1”個數(shù)的奇偶

jnp

next1 ;個數(shù)為奇數(shù),則轉(zhuǎn)向NEXT1

oral,80h ;最高位置“1”、其他位不變next1: movTdata,al ;保存待發(fā)送的數(shù)據(jù)DOS功能調(diào)用INT21H功能編號AH=01H出口參數(shù)AL=ASCII字符功能說明鍵盤輸入一個字符(回顯)奇校驗[例題5-4]統(tǒng)計“1”位個數(shù)程序-1

movah,1 int21h ;輸入一個字符 xorah,ah ;AH記錄1的個數(shù),故先清0

movecx,8 ;ASCII碼有8位,8次循環(huán)判斷again: shlal,1 ;從高位開始

jncnext ;不為1,無需處理

incah ;為1,個數(shù)加1next: loopagain[例題5-4]統(tǒng)計“1”位個數(shù)程序-2

movah,1 int21h ;輸入一個字符

xorah,ah ;AH記錄1的個數(shù),故先清0again: cmpal,0 ;也可用“TESTAL,0FFH”

jedone shral,1 ;從低位開始

jncnext ;不為1,無須處理

incah ;為1,個數(shù)加1next: jmpagaindone:好在哪里?(2)兩數(shù)大小關(guān)系無符號數(shù)JB/JNAE

CF=1 JumpifBelow/NotAboveorEqualJNB/JAE

CF=0 JumpifNotBelow/AboveorEqualJBE/JNA

CF=1或ZF=1 JumpifBeloworEqual/NotAboveJNBE/JA

CF=0且ZF=0 JumpifNotBeloworEqual/Above有符號數(shù)JL/JNGE

SF≠OF JumpifLess/NotGreaterorEqualJNL/JGE

SF=OF JumpifNotLess/GreaterorEqualJLE/JNG

SF≠OF或ZF=1 JumpifLessorEqual/NotGreaterJNLE/JG

SF=OF且ZF=0 JumpifNotLessorEqual/Greater兩數(shù)大小關(guān)系作為條件的功能無符號數(shù)用高(Above)、低(Below)低于(不高于等于):JB(JNAE)不低于(高于等于):JNB(JAE)低于等于(不高于):JBE(JNA)不低于等于(高于):JNBE(JA)有符號數(shù)用大(Greater)、?。↙ess)小于(不大于等于):JL(JNGE)不小于(大于等于):JNL(JGE)小于等于(不大于):JLE(JNG)不小于等于(大于):JNLE(JG)例1.兩數(shù)大小關(guān)系作為條件 按遞增序排列兩個無符號數(shù),第一個數(shù)偏移地址BX,第二個數(shù)偏移地址DI。 MOV AX,[BX] CMP AX,[DI] JBE DONE ;第一個數(shù)低于或等于第二個 XCHG AX,[DI] ;第一個數(shù)大于第二個,交換 MOV [BX],AX ……DONE: ……例2.比較01H和0FEH兩個數(shù)的大小 M0VAL,01H CMPAL,0FEH設(shè)執(zhí)行后:AL=01H,CF=1,OF=0,SF=0,ZF=0(a)若01H和0FEH為無符號數(shù) 判斷大?。骸案哂凇被颉暗陀凇钡戎噶睿↗A/JNBE) 轉(zhuǎn)移標(biāo)志位:CF、ZF(b)若01H和0FEH為帶符號數(shù) 判斷大?。骸按笥凇被颉靶∮凇钡戎噶钪噶睿↗G/JNLE) 轉(zhuǎn)移標(biāo)志位SF、OF、ZF條件跳轉(zhuǎn)指令的測試和轉(zhuǎn)移條件Above/BelowGreater/Less注意:無符號數(shù)和有符號數(shù)是否相等,均可用JE/JZ或JNE/JNZ5.2.2單分支結(jié)構(gòu)5.2.3雙分支結(jié)構(gòu)5.2.4多分支結(jié)構(gòu)5.2.2單分支結(jié)構(gòu)選好條件轉(zhuǎn)移指令:當(dāng)條件滿足,發(fā)生轉(zhuǎn)移,跳過分支體;條件不滿足,順序執(zhí)行分支體。5.2.3雙分支結(jié)構(gòu)選好條件轉(zhuǎn)移指令:順序執(zhí)行的分支體要有JMP指令跳過另一個分支體[例題5-5]比較兩數(shù)大小程序

movax,wvar1 ;取第一個數(shù)據(jù)

cmp

ax,wvar2 ;與第二個數(shù)據(jù)比較

je

equal ;兩數(shù)相等,轉(zhuǎn)移

jnb

first ;第一個數(shù)據(jù)大,轉(zhuǎn)移

movdx,offsetmsg2 ;第二個數(shù)據(jù)大

jmp

donefirst: movdx,offsetmsg1

jmp

doneequal: movdx,offsetmsg0done: movah,9 ;顯示結(jié)果

int21h無符號數(shù)還是有符號數(shù)?;數(shù)據(jù)段wvar1dw3765hwvar2dw8930hmsg0db‘Equal!$’msg1 db‘First!$’msg2 db‘Second!$’[例題5-6]求絕對值程序 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號數(shù)據(jù)result dd? ;保存絕對值 ;代碼段

moveax,dvar cmpeax,0 ;比較EAX與0

jgenonneg ;條件滿足:AX≥0,轉(zhuǎn)移

negeax ;AX<0,負(fù)數(shù)需求補得正值nonneg: movresult,eax ;分支結(jié)束,保存結(jié)果IF-THEN結(jié)構(gòu)[例題5-7]BCD碼顯示程序

movdl,BCD ;取BCD碼

testdl,0f0h ;如果高位是0,不顯示

jzone shrdl,4 ;BCD碼高位右移為低位

ordl,30h ;轉(zhuǎn)換為ASCII碼

movah,2 ;顯示

int21h movdl,BCD ;取BCD碼

anddl,0fh ;只取二進(jìn)制低4位one:

ordl,30h ;轉(zhuǎn)換低位為ASCII碼

movah,2 ;顯示

int21hadddl,30h[例題5-8]顯示數(shù)據(jù)最高位程序-1 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號數(shù)據(jù) ;代碼段

movebx,dvar shlebx,1 ;EBX最高位移入CF標(biāo)志

jcone ;CF=1,最高位為1,轉(zhuǎn)移

movdl,'0' ;CF=0,最高位為0:DL←'0'

jmptwo ;一定要跳過另一個分支體one:

movdl,'1' ;DL←'1'two:

movah,2 int21h ;顯示IF-THEN-ELSE結(jié)構(gòu)[例題5-8]顯示數(shù)據(jù)最高位程序-2 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號數(shù)據(jù) ;代碼段

movebx,dvar

movdl,'0' ;假設(shè)最高位為0:DL←'0' shlebx,1 ;EBX最高位移入CF標(biāo)志

jnctwo ;CF=0,即最高位為0,轉(zhuǎn)移

movdl,'1' ;CF=1,最高位為1,DL←'1'two:

movah,2 int21h ;顯示IF-THEN結(jié)構(gòu)[例題5-8]顯示數(shù)據(jù)最高位程序-3 ;數(shù)據(jù)段dvar dd0bd630422h ;有符號數(shù)據(jù) ;代碼段

movebx,dvar

movdl,'0'

shlebx,1 ;EBX最高位移入CF標(biāo)志

adcdl,0

;最高位為0,CF=0,DL←'0'='0'+0 ;最高位為1,CF=1,DL←'1'='0'+1

movah,2 ;顯示

int21h順序結(jié)構(gòu)[例題5-9]有符號數(shù)運算溢出程序 ;代碼段 moveax,dvar1 subeax,dvar2 ;求差

joerror ;有溢出,轉(zhuǎn)移

movdvar3,eax ;無溢出,保存差值

leadx,okmsg ;顯示正確

jmpdisperror:

leadx,errmsg ;顯示錯誤disp: movah,9

int21h例1.求補碼數(shù)[X]補的絕對值,并送回原處。;X≥0;X<0可得如下關(guān)系式:;X≥0;X<0典型的IF-THEN-ELSE程序結(jié)構(gòu)DATAS SEGMENTXADR DW3456H ;設(shè)[X]補=3456HDATAS ENDSSTACKS SEGMENT STACKBOTTOW DW 256DUP(?) ;定義堆棧段,預(yù)留256個單元TOP = $-BOTTOWSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,STACKS ;將堆棧段段址送SS MOV SS,AX MOV SP,TOP ;使SP指向棧底地址

MOV AX,DATAS ;將數(shù)段段址送DS MOV DS,AX

DONE: MOV AH,4CH ;返回PC-DOS狀態(tài) INT 21HCODES ENDSEND START可以省略求補碼程序段求補碼程序段 MOVAX,XADR;?。踴]補到AX ANDAX,AX ;設(shè)置標(biāo)志位 JNSDONE;若x≥0,轉(zhuǎn)DONE NEGAX ;若<0,求補得到|x| MOVXADR,AX;將|x|送回原處DATAS SEGMENTXADR DW3456H ;設(shè)[X]補=3456HDATAS ENDSSTACKS SEGMENT STACKBOTTOW DW256DUP(?) ;定義堆棧段,預(yù)留256個單元STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS ;將數(shù)段段址送DS MOV DS,AX MOV AX,XADR ;取[x]補到AX AND AX,AX ;設(shè)置標(biāo)志位 JNS DONE ;若x≥0,轉(zhuǎn)DONE NEG AX ;若<0,求補得到|x| MOV XADR,AX ;將|x|送回原處 DONE: MOV AH,4CH ;返回PC-DOS狀態(tài) INT 21HCODES ENDS END START5.2.4多分支結(jié)構(gòu)分支處理中又有分支,具有多個分支走向。可用單分支和雙分支實現(xiàn)多個分支結(jié)構(gòu)。AH=0fuction0YNAH=1fuction1YNAH=2fuction2YN[例題5-10]利用地址表實現(xiàn)多分支程序-1 ;數(shù)據(jù)段msg db'Inputnumber(1~9):','$'crlf db0dh,0ah,‘$‘ ;回車換行符msg1 db'Chapter1',0dh,0ah,'$' ……msg9 db'Chapter9',0dh,0ah,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論