匯編語言程序設(shè)計(jì)2.ppt_第1頁(yè)
匯編語言程序設(shè)計(jì)2.ppt_第2頁(yè)
匯編語言程序設(shè)計(jì)2.ppt_第3頁(yè)
匯編語言程序設(shè)計(jì)2.ppt_第4頁(yè)
匯編語言程序設(shè)計(jì)2.ppt_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章 匯編語言程序設(shè)計(jì),4.1 匯編語言程序設(shè)計(jì)方法 4.2 匯編語言程序的基本結(jié)構(gòu) 順序、循環(huán)、分支、子程序 4.3 常用程序設(shè)計(jì)舉例 代碼轉(zhuǎn)換、查表、邏輯運(yùn)算、極值查找等,4.1 匯編語言程序設(shè)計(jì),程序: 計(jì)算機(jī)的一系列指令的有序集合 程序設(shè)計(jì): 編制程序的過程 機(jī)器語言程序:目標(biāo)程序 直接由機(jī)器語言(指令代碼)編寫的程序 匯編語言程序: 用匯編語言編寫的程序,4.1 匯編語言程序設(shè)計(jì)方法 4.1.1 程序的設(shè)計(jì)步驟與方法 匯編語言程序設(shè)計(jì)的特點(diǎn)在于: (1) 用匯編語言進(jìn)行程序設(shè)計(jì)時(shí),對(duì)數(shù)據(jù)的存放、寄存器和工作單元的使用等要由設(shè)計(jì)者安排。而高級(jí)語言程序設(shè)計(jì)時(shí),這些工作都由計(jì)算機(jī)軟件安排,程序設(shè)計(jì)者不必考慮。 (2) 匯編語言程序設(shè)計(jì)要求設(shè)計(jì)人員必須對(duì)所使用的計(jì)算機(jī)的硬件結(jié)構(gòu)有較為詳細(xì)的了解。特別是對(duì)各類寄存器、端口、定時(shí)器/計(jì)數(shù)器、中斷等內(nèi)容要熟悉,以便在程序設(shè)計(jì)時(shí)能熟練使用。,匯編語言程序的設(shè)計(jì)步驟: (1)分析問題,抽象出描述問題的數(shù)學(xué)模型 (2)確定解決問題的算法 (3)分配存儲(chǔ)空間及工作單元 (4)根據(jù)算法繪制流程圖 (5)編寫源程序 (6)匯編和調(diào)試 程序質(zhì)量的判斷: 程序執(zhí)行時(shí)間短;占用的內(nèi)存單元少;程序的邏輯性,可讀性;程序的兼容性,可擴(kuò)展性;程序的可靠性。,4.1.2 匯編語言源程序的編輯和匯編 匯編語言源程序的編輯 編寫完成的源程序應(yīng)以“.ASM”的擴(kuò)展名保存,以備匯編程序調(diào)用。 匯編語言源程序的匯編 匯編語言源程序必須轉(zhuǎn)換為機(jī)器碼表示的目標(biāo)程序,計(jì)算機(jī)才能執(zhí)行,這種轉(zhuǎn)換過程稱為匯編。對(duì)單片機(jī)來說,有手工匯編和機(jī)器匯編兩種匯編方法。鑒于現(xiàn)在PC機(jī)的使用非常普遍,這種交叉匯編通常都是在PC機(jī)上進(jìn)行的。匯編完成后,再由PC機(jī)把生成的目標(biāo)程序加載到用戶樣機(jī)上。由于proteus軟件有單片機(jī)仿真功能,所以我們完全可以通過軟件來進(jìn)行單片機(jī)的仿真。,源程序編輯是在微型計(jì)算機(jī)上,借助編輯軟件,編寫匯編語言源程序??晒┦褂玫木庉嫻ぞ吆芏?。 例如,在文本區(qū)編寫一個(gè)源程序如下: ORG 0030 MOVX DPTR,A MOV A,#41H END 編輯結(jié)束后,存盤退出。 接下來是使用交叉匯編軟件,對(duì)編輯完成的源程序進(jìn)行匯編。 匯編完成后,如果沒有錯(cuò)誤則形成目標(biāo)碼文件,格式為: 0030 0033 F07441 首地址 末地址 目標(biāo)碼,4.2 匯編語言源程序的基本結(jié)構(gòu),共有四種基本結(jié)構(gòu)形式: 順序結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 分支結(jié)構(gòu) 子程序結(jié)構(gòu),4.2.1 順序結(jié)構(gòu)程序設(shè)計(jì) 順序結(jié)構(gòu)的程序是指既無循環(huán)又無分支(不產(chǎn)生跳轉(zhuǎn)),按程序中指令書寫的順序執(zhí)行的程序,又稱直線程序。這種結(jié)構(gòu)的程序雖然簡(jiǎn)單,但它是構(gòu)成任何結(jié)構(gòu)程序的基礎(chǔ)。,例: 兩個(gè)1位十進(jìn)制數(shù)相加,結(jié)果存于工作寄存器R6、R4中。設(shè)兩個(gè)加數(shù)分別在工作寄存器R0和R2中。 源程序清單: ORG 1000H MAIN: CLR PSW.4 ; 選定工作寄存器區(qū) CLR PSW.3 MOV A, R0 ; 取第一個(gè)數(shù) ADD A, R2 DA A ; 十進(jìn)制調(diào)整 MOV R4, A ; 低位保存 MOV A, #0 ADDC A, #0 MOV R6, A ; 高位保存 END,例: 已知X、Y、Z分別為片內(nèi)RAM 30H、31H、32H單元的內(nèi)容,設(shè)XY,試編程完成下式的算術(shù)運(yùn)算:S=(X-Y)*Z, 并將計(jì)算結(jié)果S存入片內(nèi)RAM 34H(高字節(jié))、35H(低字節(jié))單元中。 由于XY,所以X-Y0,不需要借位;(X-Y)*Z的結(jié)果最多占用兩個(gè)字節(jié)。實(shí)現(xiàn)該要求的程序流程圖如圖所示。,程序清單如下: ORG 0030H START: MOV A, 30H ; (A)X SUBB A, 31H ; (A)(A)-Y MOV B, 32H ; (B)Z MUL AB MOV 34H, B ; (34H)A*B的高字節(jié) MOV 35H, A ; (35H)A*B的低字節(jié) SJMP $ END,4.2.2 循環(huán)程序 循環(huán)程序一般由四個(gè)主要部分組成: (1) 初始化部分:設(shè)置循環(huán)過程工作單元的初始值,例如循環(huán)次數(shù)、各變量初值、和地址指針初值等。 (2) 處理部分:為反復(fù)執(zhí)行的程序段,是循環(huán)程序的主體部分(簡(jiǎn)稱循環(huán)體),一般用于完成主要的計(jì)算與操作、地址指針修改等。 (3) 循環(huán)控制部分:用于控制循環(huán)的執(zhí)行和結(jié)束。當(dāng)循環(huán)結(jié)束條件不滿足時(shí),修改控制變量,繼續(xù)循環(huán);當(dāng)條件滿足時(shí)停止循環(huán)。 (4) 結(jié)束部分:對(duì)循環(huán)程序的結(jié)果進(jìn)行分析、處理和存放。,有先執(zhí)行后判斷和先判斷后執(zhí)行兩種結(jié)構(gòu):,循環(huán)程序分為單重循環(huán)和多重循環(huán)。 若循環(huán)程序的循環(huán)體中不再包含循環(huán)程序,則稱之為單重循環(huán);如果在循環(huán)體中還有其他循環(huán)程序,即循環(huán)嵌套,這樣的程序則稱為多重循環(huán)(二重以上)。 在多重循環(huán)程序中,只允許外重循環(huán)嵌套內(nèi)重循環(huán)程序,而不允許循環(huán)體互相交叉,另外,也不允許從循環(huán)程序的外部跳入循環(huán)程序的內(nèi)部。,例: 把外部RAM 5000H50FFH單元的內(nèi)容清零。 ORG 2000H START1: MOV DPTR, #5000H ; 循環(huán)初始化 MOV R0, #00H MOV A, #00H LOOP1: MOVX DPTR, A ; 循環(huán)體 INC DPTR INC R0 CJNZ R0,#00H,LOOP1 ; 循環(huán)控制 END,INC R0 - DEC R0 ?,如果改為先判斷后執(zhí)行?,例:將內(nèi)部RAM從40H開始連續(xù)單元的數(shù)據(jù)傳送到外部RAM從2000H開始的連續(xù)單元中,當(dāng)所傳送的數(shù)據(jù)為0FFH時(shí),傳送停止。 ORG 2000H MAIN: MOV R0,#40H ;循環(huán)初始化 MOV DPTR,#2000H LOOP: MOV A,R0 CJNE A,#0FFH,LOOP1 ;循環(huán)控制 SJMP NEXT LOOP1: MOVX DPTR,A ;循環(huán)體 INC R0 INC DPTR SJMP LOOP NEXT: SJMP $ END,例:設(shè)MCS-51單片機(jī)的時(shí)鐘頻率為fosc = 12 MHz,試設(shè)計(jì)延時(shí)50ms的延時(shí)程序。 延時(shí)程序所花費(fèi)的時(shí)間是該程序指令的總機(jī)器周期數(shù)與機(jī)器周期的乘積。 通常,延時(shí)程序采用MOV和DJNZ指令來實(shí)現(xiàn)。 單循環(huán)延時(shí)程序,最大的循環(huán)次數(shù)位256,則程序段為: MOV R0, #00H ; 機(jī)器周期數(shù)為1 DJNZ R0, $ ; 機(jī)器周期數(shù)為2 若單片機(jī)晶振為12MHz,則一個(gè)機(jī)器周期為1us。 延時(shí)時(shí)間:(1+2562)1s513s。 需采用多重循環(huán)。,多重循環(huán):在一個(gè)循環(huán)體中又包含了其它的循環(huán)程序。 這種方式是實(shí)現(xiàn)延時(shí)程序的常用方法。 使用多重循環(huán)時(shí),必須注意: (1) 循環(huán)嵌套, 必須層次分明, 不允許產(chǎn)生內(nèi)外層循環(huán)交叉。 (2) 外循環(huán)可以一層層向內(nèi)循環(huán)進(jìn)入, 結(jié)束時(shí)由里往外一層層退出。 (3) 內(nèi)循環(huán)可以直接轉(zhuǎn)入外循環(huán), 實(shí)現(xiàn)一個(gè)循環(huán)由多個(gè)條件控制的循環(huán)結(jié)構(gòu)方式。,MOV R1, #M ; 1 Tosc LOOP:MOV R2, #N ; 1 Tosc NOP ; 1 Tosc DJNZ R2, $ ; 2 Tosc DJNZ R1, LOOP ; 2 Tosc 內(nèi)層循環(huán)的機(jī)器周期數(shù)為Tn=1+1+2*N, 總機(jī)器周期數(shù)為Tm(Tn+2)*M+1. 設(shè)N=123,M=200,則延時(shí)時(shí)間為50.001ms。,程序清單: ORG 2000H M EQU 200 N EQU 123 MOV R1,#M ; #200 LOOP: MOV R2,#N ; #123 NOP DJNZ R2,$ DJNZ R1,LOOP SJMP $ END,4.2.3 分支結(jié)構(gòu)程序設(shè)計(jì) 在實(shí)際應(yīng)用中,不可能所有程序都是直線運(yùn)行的,相反,多數(shù)情況都需要根據(jù)不同的條件進(jìn)行不同的處理,這就會(huì)使程序跳轉(zhuǎn)到不同位置去執(zhí)行,這種結(jié)構(gòu)的程序稱為分支結(jié)構(gòu)程序。 MCS-51單片機(jī)中條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令、位轉(zhuǎn)移指令等都可實(shí)現(xiàn)程序分支。,分支程序基本結(jié)構(gòu)分為單分支和多分支兩種。 多分支結(jié)構(gòu)特點(diǎn)是:各處理模塊是相互排斥的。,條件轉(zhuǎn)移指令,分別為: JZ,JNZ: 累加器判零轉(zhuǎn)移指令; CJNE: 比較條件轉(zhuǎn)移指令; DJNZ: 減1條件轉(zhuǎn)移指令; JC, JNC , JB,JNB,JBC: 位控制條件轉(zhuǎn)移指令等。 散轉(zhuǎn)指令:JMP A+DPTR (雙字節(jié)字節(jié)),例:片外RAM 2000H、2001H單元分別存放兩個(gè)數(shù),判斷這兩個(gè)數(shù)是否相等,如果相等,則位地址7FH置1,否則清零。 若判斷兩個(gè)數(shù)相等使用比較轉(zhuǎn)移指令很容易實(shí)現(xiàn)該題中的要求,程序流程如圖所示。,程序流程圖,程序如下: ORG 0100H MOV DPTR,#2000H ;地址指針指向片外2000H單元 MOVX A,DPTR ;(2000H)A MOV R0,A ;AR0 MOV DPTR,#2001H ;地址指針指向2001H單元 MOVX A,DPTR ;(2001H)A MOV 30H,R0 CJNE A,30H,NE ;若兩個(gè)數(shù)不相等,則轉(zhuǎn)NE SETB 7FH ;若兩個(gè)數(shù)相等,則7FH單元置1 AJMP OVER ;轉(zhuǎn)OVER NE: CLR 7FH ;7FH單元清零 OVER: RET,散轉(zhuǎn)結(jié)構(gòu) 例: 在內(nèi)部RAM 20H和21H單元中有兩個(gè)無符號(hào)的數(shù),由22H中的值決定對(duì)該數(shù)完成加、減、乘或除運(yùn)算(20H單元的數(shù)為被減數(shù)或被除數(shù)),運(yùn)算規(guī)則及結(jié)果保存處見下表。,ORG 1000H MOV A,22H MOV B,21H RL A ;AJMP為雙字節(jié)指令,乘2改變偏移量 MOV DPTR,#TAB JMP A+DPTR NOP TAB: AJMP ADDM ; 散轉(zhuǎn)表 AJMP SUBM AJMP MULM AJMP DIVM ADDM: MOV A,20H ; 加法運(yùn)算 ADD A,B MOV 30H,A MOV A,#0 ADDC A,#0 MOV 31H,A SJMP FINISH,SUBM: MOV A,20H ;減法運(yùn)算 SUBB A,B MOV 40H,A SJMP FINISH MULM: MOV A,20H ;乘法運(yùn)算 MUL AB MOV 51H,B MOV 50H,A SJMP FINISH DIVM: MOV A,20H ;除法運(yùn)算 DIV AB MOV 61H,A MOV 60H,B FINISH: END,例:假定R0中存放的是采集到的被按鍵鍵值,共有128個(gè)鍵值(0127),根據(jù)該鍵值轉(zhuǎn)向不同鍵的處理程序中去。 跳轉(zhuǎn)方法: 逐個(gè)比較,類似CASE。 使用散轉(zhuǎn)指令JMP A+DPTR 。 設(shè)(R0)= 0 n,對(duì)應(yīng)的處理程序入口地址分別為 PROG0PROGn,且按照一定的規(guī)律排列。,ORG 2000H MOV DPTR, #TAB ; 設(shè)置處理程序入口首地址 MOV A,R0 ; R0 = 0127 RL A ; ? NEXT:JMP A+DPTR ; 轉(zhuǎn)向形成的散轉(zhuǎn)地址入口 TAB:AJMP PROG0 ; 直接轉(zhuǎn)移地址表 AJMP PROG1 AJMP PROGn ,4.2.4 子程序設(shè)計(jì) 子程序的概念 通常把一些基本操作功能編制為程序段作為獨(dú)立的子程序,以供不同程序或同一程序反復(fù)調(diào)用。在程序中需要執(zhí)行這種操作的地方放置一條調(diào)用指令,當(dāng)程序執(zhí)行到調(diào)用指令,就轉(zhuǎn)到子程序中完成規(guī)定的操作,并返回到原來的程序繼續(xù)執(zhí)行下去。,子程序的調(diào)用 調(diào)用子程序的指令有“ACALL”和“LCALL”, 執(zhí)行調(diào)用指令時(shí), 先將程序地址指針PC改變(“ACALL”加2, “LCALL”加3), 然后 PC值壓入堆棧, 用新的地址值代替。執(zhí)行返回指令(RET或RETI)時(shí), 再將 PC值彈出。 子程序調(diào)用中,主程序應(yīng)先把有關(guān)的參數(shù)存入約定的位置,子程序在執(zhí)行時(shí),可以從約定的位置取得參數(shù),當(dāng)子程序執(zhí)行完,將得到的結(jié)果再存入約定的位置,返回主程序后,主程序可以從這些約定的位置上取得需要的結(jié)果,這就是參數(shù)的傳遞。,在編寫子程序時(shí)應(yīng)注意以下幾點(diǎn): (1) 要給每個(gè)子程序賦一個(gè)名字。 子程序的第一條指令的地址被稱為子程序的地址或入口地址,該指令前的標(biāo)號(hào)就是該子程序的名稱,也是子程序入口地址的代號(hào)。 (2) 在子程序的末尾必須有子程序返回指令RET / RETI。 (3) 要能正確地傳遞參數(shù)。 首先要有入口條件,說明進(jìn)入子程序時(shí)它所要處理的數(shù)據(jù)如何得到,另外,要有出口條件,即處理的結(jié)果是如何存放的。,(4) 注意保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。 注意保存主程序和子程序共同涉及的,但值不同的累加器、寄存器和單元的內(nèi)容。 保護(hù)現(xiàn)場(chǎng): PUSH, 恢復(fù)現(xiàn)場(chǎng):POP (5) 注意子程序的通用性。 子程序中操作對(duì)象盡量采用地址或寄存器形式,而不用立即數(shù)。 主程序調(diào)用子程序的指令:“LCALL”,“ACALL”。 子程序返回指令:RET / RETI。 子程序可以嵌套,嵌套次數(shù)從理論上說是無限的,但實(shí)際上由于受堆棧深度的影響,嵌套次數(shù)是有限的。,子程序調(diào)用與返回過程示意圖,例:設(shè)有a,b,c三個(gè)數(shù)(09),存于內(nèi)部RAM的DataA、DataB和DataC三個(gè)單元。 編程實(shí)現(xiàn): c = a2 + b2。 設(shè)DataA、DataB、DataC分別對(duì)應(yīng)內(nèi)部RAM的40H、41H和42H單元。,ORG 5000H DataA EQU 40H DataB EQU 41H DataC EQU 42H START: MOV A, DataA ;取第一操作數(shù) ACALL SQR ;調(diào)用查表子程序 MOV R1,A ;a2暫存R1 MOV A,DataB ;取第二操作數(shù) ACALL SQR ;調(diào)用查表子程序 ADD A,R1 ;Aa2b2 MOV DataC,A ; 保存結(jié)果,子程序: SQR: INC A ;偏移量調(diào)整 MOVC A, A+PC ;查平方表 RET TAB:DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 END,4.3 常用程序設(shè)計(jì)舉例 4.3.1 代碼轉(zhuǎn)換類程序 計(jì)算機(jī)能識(shí)別和處理的僅僅是二進(jìn)制數(shù),而計(jì)算機(jī)外設(shè)(顯示器、LED數(shù)碼管、打印機(jī)等)常使用ASCII碼和BCD碼,因此,經(jīng)常需要通過程序完成二進(jìn)制到BCD碼/ASCII碼的轉(zhuǎn)換。 程序設(shè)計(jì)中常采用算法處理和查表方式來實(shí)現(xiàn)代碼轉(zhuǎn)換。,1. 十六進(jìn)制數(shù)與ASCII碼之間的轉(zhuǎn)換 例:將從30H單元開始的連續(xù)8個(gè)單元中存放的十六進(jìn)制數(shù)轉(zhuǎn)換成其所對(duì)應(yīng)的ASCII碼,并分別存放在從40H開始的16個(gè)單元中。,; 十六進(jìn)制數(shù)(0F)轉(zhuǎn)換成ASCII碼子程序 HEXAS: CLR C SUBB A,#10 JC LOOP ADD A, #7 LOOP: ADD A, #10 ; 補(bǔ)償減掉的10 ADD A, #30H RET,; 完整程序 ORG 2000H MOV R0, #30H ; 設(shè)定地址指針 MOV R1, #40H MOV R7, #8 ; 循環(huán)次數(shù) NEXT:MOV A, R0 ; 高字節(jié)轉(zhuǎn)換 SWAP A ANL A, #0FH ACALL HEXAS MOV R1, A INC R1 ; 修改存儲(chǔ)地址指針 MOV A, R0 ; 低字節(jié)轉(zhuǎn)換 ANL A, #0FH ACALL HEXAS MOV R1, A,INC R1 INC R0 DJNZ R7, NEXT NOP SJMP $ ; $表示當(dāng)前PC值 HEXAS: CLR C SUBB A,#10 JC LOOP ADD A, #7 LOOP: ADD A, #10 ; 補(bǔ)償減掉的10 ADD A, #30H RET END,2. 十六進(jìn)制數(shù)與BCD碼的轉(zhuǎn)換 例. 將累加器A中0FFH范圍內(nèi)的二進(jìn)制數(shù)轉(zhuǎn)換為非壓縮的BCD數(shù)(0255),并分別保存于40H、41H和42H單元(低位在前)。 非壓縮的BCD碼:一個(gè)字節(jié)放一位BCD碼 壓縮的BCD碼:一個(gè)字節(jié)放兩個(gè)BCD碼 例: (A)0FEH255 0000 0010 0000 0101 0000 0101 應(yīng)用:常用于需要數(shù)碼顯示的場(chǎng)合。 分離方法: 將A中的內(nèi)容分別除以100和10。,; 子程序: HEXBCD:MOV B,#100 DIV AB ; A中為百位數(shù) MOV 42H,A ; 保存百位 MOV A,B MOV B,#10 DIV AB ; A中為十位; B中為個(gè)位 MOV 41H,A ;保存十位 MOV 40H,B ;保存?zhèn)€位 RET,4.3.2 查表程序 常用于非線性修正、非線性函數(shù)轉(zhuǎn)換以及代碼轉(zhuǎn)換等。 專用的查表指令(2條): (1) MOVC A, A+DPTR ; 遠(yuǎn)程查表, 64KB (2) MOVC A, A+PC ;近程查表,0+256B 1. 遠(yuǎn)程查表通過以下三步操作實(shí)現(xiàn)查表。 將所查表格的首地址送入DPTR; 將要查找的數(shù)據(jù)序號(hào),即數(shù)據(jù)在表中的位置送入累加器A中; 執(zhí)行查表指令 MOVC A,A+DPTR 進(jìn)行讀數(shù)并存結(jié)果存于累加器A。,(2) MOVC A, A+PC ;近程查表,0+256B 2. 近程查表也可通過以下三步操作來完成。 將要查找的數(shù)據(jù)序號(hào),即數(shù)據(jù)在表中的位置送入累加器A中; 把從查表指令到表的首地址間的偏移量與A值相加; 執(zhí)行查表指令 MOVC A,A+PC 進(jìn)行讀數(shù),查表結(jié)果送累加器A。,例4.13 若累加器A中存放的是一位BCD碼。通過查表將其轉(zhuǎn)換成為相應(yīng)的七段顯示碼,并存入寄存器B中。 七段數(shù)碼顯示管連接方式:共陽(yáng)極和共陰極兩種。 共陽(yáng)極是低電平為有效輸入, 共陰極為高電平為有效輸入。,3FH,09的七段碼: 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。,假設(shè)數(shù)碼顯示管為共陰極。,由于代碼沒有規(guī)律,一般采用查表完成。,若以DPTR為基址(遠(yuǎn)程查表),程序段如下: MOV A, #05H MOV DPTR, #TAB MOVC A, A+DPTR TAB: DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,6FH ,若以PC為基地址(近程查表),則程序段如下: MOV A, #05H ADD A, ? MOVC A, A+PC NOP ;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論