版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第5 5章章 匯編語言匯編語言(hu bin y yn)(hu bin y yn)程序設(shè)計程序設(shè)計 5.1 匯編語言的基本概念5.2 匯編語言源程序的格式(g shi) 5.3 偽指令語句 5.4 宏指令語句 5.5 匯編語言程序的上機過程 5.6 匯編語言程序設(shè)計的基本方法 5.7 發(fā)揮80386及其后繼機型的優(yōu)勢 第1頁/共275頁第一頁,共276頁。5.1 匯編語言(hu bin y yn)的基本概念 1機器語言(Machine Language) 機器語言是一種用二進制表示指令和數(shù)據(jù),能被機器直接識別的計算機語言。 缺點:不直觀,不易理解和記憶,因此編寫、閱讀和修改機器語言程序都比較
2、繁瑣。 優(yōu)點:機器語言程序是計算機惟一(wiy)能夠直接理解和執(zhí)行的程序,具有執(zhí)行速度快、占用內(nèi)存少等特點。 第2頁/共275頁第二頁,共276頁。 任何計算機實際上只能直接識別設(shè)計微處理器時所規(guī)定好的, 一整套用“0”、 “1”數(shù)字代碼表示的機器指令。這些機器指令的全體是指令系統(tǒng)。不同類型的CPU,其機器語言必然是不同的。這種直接用機器指令來編制計算機程序的方法就稱為機器語言程序設(shè)計。 微機原理及應(yīng)用課程實驗教學(xué)用的單板計算機就是直接采用機器語言編程的機器。 這種直接用機器語言編程的方法難度大,閱讀、查錯和修改程序也很不方便。通常,只有當編程者對CPU指令系統(tǒng)比較熟悉, 編寫的程序較短時,才
3、有可能直接用機器語言來編寫計算機程序。但是,單板計算機對硬件(yn jin)操作很直觀,可以幫助大家了解和理解計算機在實際中的應(yīng)用。第3頁/共275頁第三頁,共276頁。 2高級語言(High Level Language) 如果說機器語言是面向機器的語言,那么高級語言(如BASIC,F(xiàn)ORTRAN等,C等)則是“面向過程”的語言。 利用高級語言編程,程序員可以完全不考慮機器的結(jié)構(gòu)特點,不必了解和熟記機器的指令系統(tǒng),僅使用一些接近人們書寫習慣的英語和數(shù)學(xué)表達式形式的語句去編制程序。利用高級語言編寫的程序與問題本身的數(shù)學(xué)模型之間有著良好的對應(yīng)關(guān)系,可在各種機器上通用(不同機器之間僅做少量修改)。
4、 但是,用高級語言編寫的源程序并不能在機器上直接執(zhí)行,需要被翻譯成對應(yīng)的目標程序(即機器語言程序),機器才能(cinng)運行。把具有這種翻譯作用的程序稱為解釋程序或編譯程序,如圖所示。 第4頁/共275頁第四頁,共276頁。圖5.1 編譯程序(bin y chn x)的功能示意圖 由于高級語言程序是在未考慮機器的結(jié)構(gòu)特點的條件下編寫的,因而它就不能充分利用某種具體CPU所具有的某些(mu xi)特性,而通過編譯或解釋程序生成的目標程序往往比較冗長,占有較多的內(nèi)存空間,執(zhí)行時間也比較長,這就限制了它在某些(mu xi)場合下的運用。 例如,實時的數(shù)據(jù)采集、檢測和在線的實時控制等,往往要求程序的
5、目標代碼盡可能少占內(nèi)存并有盡可能快的執(zhí)行速度,在這些場合下,使用高級語言編寫的程序常常不能滿足要求。 第5頁/共275頁第五頁,共276頁。 3匯編語言(Assembly Language) 人們?yōu)榱藬[脫(bitu)機器語言編程中原始而低級的狀態(tài),就設(shè)法采用一組字母、數(shù)字或字符來代替機器指令,這樣就產(chǎn)生了匯編語言的概念和方法。 匯編語言是一種采用助記符表示的程序設(shè)計語言,即用助記符來表示指令的操作碼和操作數(shù),用標號或符號代表地址、常量或變量。助記符一般都是英文字的縮寫,以方便人們書寫、閱讀和檢查。實際上,用匯編語言編寫的匯編語言源程序就是機器語言程序的符號表示,匯編語言源程序與其經(jīng)過匯編所產(chǎn)生
6、的目標代碼程序之間有明顯的一一對應(yīng)關(guān)系,故也稱匯編語言為符號語言。 第6頁/共275頁第六頁,共276頁。 用匯編語言編寫程序能夠直接利用硬件系統(tǒng)的特性(如寄存器、標志、中斷系統(tǒng)等)直接對位、字節(jié)、字寄存器或存儲單元、I/O端口進行處理,同時也能直接使用CPU 指令系統(tǒng)和指令系統(tǒng)提供的各種尋址方式,編制出高質(zhì)量的程序,這樣的程序不但占用內(nèi)存空間少,而且執(zhí)行速度快。當然,由于源程序和所要解決的問題的數(shù)學(xué)模型之間的關(guān)系不夠直觀,使得匯編語言程序設(shè)計需要較多的軟件開發(fā)時間,也增加了程序設(shè)計過程中出錯的可能性。 用匯編語言編寫的源程序也需要翻譯成目標程序才能被機器執(zhí)行。這個(zh ge)翻譯過程稱為匯
7、編,完成匯編任務(wù)的程序稱為匯編程序,如圖所示。 第7頁/共275頁第七頁,共276頁。圖5.2 匯編程序(hu bin chn x)的功能示意圖 由于這種符號化的語言使用了用英文字母縮寫表示(biosh)的助記符,因此便于識別與記憶。第8頁/共275頁第八頁,共276頁。 匯編程序是最早也是最成熟的一種系統(tǒng)軟件。它除了(ch le)能夠?qū)R編語言源程序翻譯成機器語言程序這一主要功能外,還能夠根據(jù)用戶的要求自動分配存儲區(qū)域(包括程序區(qū)、數(shù)據(jù)區(qū)、暫存區(qū)等);自動地把各種進位制數(shù)轉(zhuǎn)換成二進制數(shù),把字符轉(zhuǎn)換成ASCII碼,計算表達式的值等;自動對源程序進行檢查,給出錯誤信息(如非法格式,未定義的助記符
8、、標號,漏掉操作數(shù)等)等。具有這些功能的匯編程序又稱為基本匯編(或小匯編ASM)。 在基本匯編的基礎(chǔ)上,進一步允許在源程序中把一個指令序列定義為一條宏指令的匯編程序,就叫做宏匯編(MASM)。它包含全部ASM功能,還增加了宏指令、結(jié)構(gòu)、記錄等高級匯編語言功能。 第9頁/共275頁第九頁,共276頁。問題:有高級語言,為什么還要學(xué)習和使用匯編語言? 原因: (1) 匯編語言非常接近機器語言程序,通過編制匯編語言程序,可以(ky)更清楚地了解計算機的工作過程。 (2) 現(xiàn)在的微機系統(tǒng)中,底層的一些功能仍然靠匯編語言程序來實現(xiàn)。 (3) 匯編語言程序的效率通常高于高級語言程序。第10頁/共275頁第
9、十頁,共276頁。5.2 匯編語言(hu bin y yn)源程序的格式 例例 要求將兩個要求將兩個5字節(jié)十六進制數(shù)相加。字節(jié)十六進制數(shù)相加。解:解: 為實現(xiàn)上述功能,可以編寫出以下為實現(xiàn)上述功能,可以編寫出以下(yxi)匯編語言源程序。匯編語言源程序。 DATASEGMENT ;定義數(shù)據(jù)段 DATA1 DB 0F8H,60H,0ACH,74H,3BH ;被加數(shù)(ji sh) DATA2 DB 0C1H,36H,9EH,0D5H,20H ;加數(shù)(ji sh)DATAENDS ;數(shù)據(jù)段結(jié)束CODE SEGMENT ;定義代碼段 ASSUME CS:CODE,DS:DATA 第11頁/共275頁第
10、十一頁,共276頁。START:MOV AX,DATAMOV DS,AX ;初始化DS MOV CX,5 ;循環(huán)次數(shù)送CXMOV SI,0 ;置SI初值為0 CLC ;清CF標志(biozh)LOOPER:MOV AL,DATA2SI ;取一個字節(jié)加數(shù)ADC DATA1SI,AL ;與被加數(shù)相加 第12頁/共275頁第十二頁,共276頁。INC SI ;SI加1 DEC CX ;CX減1JNZ LOOPER ;若不等于(dngy)0,轉(zhuǎn)LOOPERMOV AH,4CH INT 21H;返回DOSCODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束 第13頁/共275頁第十三頁,共
11、276頁。程序結(jié)構(gòu)程序結(jié)構(gòu) 程序由數(shù)條語句構(gòu)成,每條語句占一行。程序由數(shù)條語句構(gòu)成,每條語句占一行。 指令指令(zhlng)性語句性語句(指令指令(zhlng)語句語句) 指示性語句指示性語句(偽指令偽指令(zhlng)語句語句) 分段結(jié)構(gòu)分段結(jié)構(gòu) 程序按段編寫程序按段編寫, 與與8086內(nèi)存分段編址相對應(yīng)。內(nèi)存分段編址相對應(yīng)。 每段由偽操作每段由偽操作SEGMENT開始、由開始、由ENDS結(jié)束。結(jié)束。 程序最后為程序最后為END結(jié)束語句,后跟啟動地址。結(jié)束語句,后跟啟動地址。 啟動地址指示程序開始執(zhí)行的第一條語句。啟動地址指示程序開始執(zhí)行的第一條語句。 程序中設(shè)有返回程序中設(shè)有返回DOS的功
12、能。的功能。 使程序執(zhí)行完后返回使程序執(zhí)行完后返回DOS系統(tǒng)的命令接受狀態(tài)。系統(tǒng)的命令接受狀態(tài)。 程序中用到內(nèi)存操作數(shù)時,應(yīng)按操作數(shù)的程序中用到內(nèi)存操作數(shù)時,應(yīng)按操作數(shù)的 尋址方式尋址方式,給相應(yīng)的段寄存器賦值給相應(yīng)的段寄存器賦值匯編語言程序匯編語言程序(chngx)結(jié)構(gòu):結(jié)構(gòu): aa SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段1str1 DB Hello! aa ENDSbb SEGMENT ;數(shù)據(jù)段數(shù)據(jù)段2str2 DB 6 dup (?) bb ENDScc SEGMENT ;代碼段代碼段 ASSUME CS:cc, DS:aa, ES:bb start: CLD MOV AX , aa MOV D
13、S , AX LEA SI , str1 MOV AX , SEG str2 MOV ES , AX MOV DI ,OFFSET str2 MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H ;返回返回DOScc ENDS E N D s t a r t ; 指 示 程 序指 示 程 序(chngx)結(jié)束結(jié)束第14頁/共275頁第十四頁,共276頁。5.2.1 分段結(jié)構(gòu) 由例可以看出,匯編語言源程序的結(jié)構(gòu)是分段結(jié)構(gòu)形式,一個匯編語言源程序由若干段(SEGMENT)組成,每個段以SEGMENT語句開始,以ENDS語句結(jié)束。整個源程序的結(jié)尾是END語句。 這里所說
14、的匯編語言源程序中的段與前面討論的CPU管理的存儲器的段,既有聯(lián)系,又在概念上有所區(qū)別。我們已經(jīng)知道,微處理器對存儲器的管理是分段的,因此,在匯編語言程序中也要求分段組織(zzh)指令、數(shù)據(jù)和堆棧,以便將源程序匯編成為目標程序后,可以分別裝入存儲器的相應(yīng)段中。 第15頁/共275頁第十五頁,共276頁。 但是,以8086/8088 CPU為例,它有四個段寄存器(CS,ES,SS和DS),因此CPU對存儲器按照四個物理段進行管理,即數(shù)據(jù)(shj)段、附加段、堆棧段和代碼段。任何時侯CPU只能訪問四個物理段。而在匯編語言源程序中,設(shè)置段的自由度比較大。例如,一個源程序中可以有多個數(shù)據(jù)(shj)段或
15、多個代碼段等等。一般來說,匯編語言源程序中段的數(shù)目可以根據(jù)實際需要而設(shè)定。為了和CPU管理的存儲器物理段相區(qū)別,我們將匯編語言程序中的段稱為邏輯段。在不致發(fā)生混淆的地方,有時簡稱為段。第16頁/共275頁第十六頁,共276頁。 在例的簡單源程序(chngx)中只有兩個邏輯段,一個邏輯段的名字是DATA,其中存放著與程序(chngx)有關(guān)的數(shù)據(jù),稱為邏輯數(shù)據(jù)段;另一個邏輯段的名字是CODE,其中包含著程序(chngx)的指令,稱為邏輯代碼段。每個段內(nèi)均有若干行語句(STATEMENT),因此,可以說一個匯編源程序(chngx)是由一行一行的語句組成的。下面我們來討論匯編語言語句的類型和組成。 第
16、17頁/共275頁第十七頁,共276頁。5.2.2 匯編語言語句的類型和格式 1語句的類型 匯編語言源程序中的語句可以分為兩種類型:指令語句和偽指令語句。 (1) 指令語句:它是能產(chǎn)生目標代碼,CPU 可以執(zhí)行的能完成特定功能的語句。 (2) 偽指令語句:它是一種不產(chǎn)生目標代碼的語句,它僅僅在匯編過程中告訴匯編程序應(yīng)如何匯編。例如,告訴匯編程序已寫出的匯編語言源程序有幾個段,段的名字是什么(shn me);定義變量,定義過程,給變量分配存儲單元,給數(shù)字或表達式命名等。顯然,偽指令語句是匯編程序在匯編時使用的。 第18頁/共275頁第十八頁,共276頁。 2. 語句的格式 指令語句與偽指令語句的
17、格式是類似的。一般情況下,匯編語言的語句可以由部分(b fen)構(gòu)成: 名字 助記符 操作數(shù) ;注釋 其中帶方括號的部分(b fen)表示任選項,可以有,也可以沒有。例中有如下語句:LOOPER:MOV AL,DATA2SI ;取一個字節(jié)加數(shù) 這是一條指令語句,其中:“LOOPER:”是名字,“MOV”是指令助記符,“AL,DATA2SI”是操作數(shù),“;”后面是注釋部分(b fen)。第19頁/共275頁第十九頁,共276頁。 例. DATA1 DB 0F8H,60H,0ACH,74H,3BH ;定義被加數(shù) 這是一條偽指令語句,其中:“DATA1”是名字,“DB”是偽指令定義符,“0F8H,6
18、0H,0ACH,74H,3BH”是操作數(shù),“;”后面是注釋部分。 下面,對匯編語言中的各個(gg)組成部分進行討論。 第20頁/共275頁第二十頁,共276頁。語句語句(yj)結(jié)構(gòu)結(jié)構(gòu) data SEGMENT ; 數(shù)據(jù)段數(shù)據(jù)段var DB ? data ENDScode SEGMENT ; 代碼段代碼段 ASSUME CS:code,DS:datastart: MOV AX, data MOV DS , AX MOV var, CL MOV AH , 4CH INT 21H ; 返回返回DOScode ENDS END start例:第21頁/共275頁第二十一頁,共276頁。 1) 名字
19、匯編語言語句的第一個組成部分是名字(Name)。 在指令語句中,這個名字是一個標號。指令語句中的標號實質(zhì)上是指令的符號地址。并非每條指令語句必須有標號,但如果一條指令前面有一標號,則程序中其他地方(dfng)就可以引用這個標號。在例中,START、LOOPER就是標號。標號后面通常有一個冒號。 標號有三種屬性:段、偏移量和類型。 第22頁/共275頁第二十二頁,共276頁。 標號的段屬性是定義標號在程序段的段地址。當程序中引用一個標號時,該標號的段值應(yīng)在CS寄存器中。 標號的偏移量屬性表示(biosh)標號所在段的起始地址到定義該標號的地址之間的字節(jié)數(shù)。偏移量是一個16位無符號數(shù)。 標號的類型
20、屬性有兩種:NEAR和FAR。 NEAR標號可以在段內(nèi)被引用,地址指針為2字節(jié); FAR標號可以在其他段被引用,地址指針為4字節(jié)。如果定義一個標號時后面跟著冒號,則匯編程序確認其類型為NEAR。 第23頁/共275頁第二十三頁,共276頁。 偽指令語句中的名字可以是變量名、段名、過程名。與指令語句中的標號不同,這些偽指令語句中的名字并不總是任選的,有些偽指令規(guī)定前面必須有名字,有些則不允許有名字,也有一些偽指令的名字是任選的。即不同的偽指令對于是否有名字有不同的規(guī)定。偽指令語句的名字后面(hu mian)通常不跟冒號,這是它和標號的一個明顯區(qū)別。 很多情況下偽指令語句中的名字是變量名。變量名代
21、表存儲器中一個數(shù)據(jù)區(qū)的名字。 例如,例中的DATA1、DATA2就是變量名。 第24頁/共275頁第二十四頁,共276頁。l名字項用一個符號表示。l 對符號的規(guī)定:l 由字符(z f)A-Z ,a-z ,0-9及符號、$、下劃線_ 等組成,最長31個字符(z f),超出部分忽略。l 不能用數(shù)字打頭,以免與十六進制數(shù)相混。l 不使用匯編程序中的保留字 (如指令的助記符等)。l 對定義的符號不區(qū)分大小寫。第25頁/共275頁第二十五頁,共276頁。 變量也有三種屬性:段、偏移量和類型。 變量的段屬性是變量所代表的數(shù)據(jù)區(qū)所在段的段地址。由于數(shù)據(jù)區(qū)一般在存儲器的數(shù)據(jù)段中,因此變量的段地址常常在DS和E
22、S寄存器中。 變量的偏移量屬性是該變量所在段的起始地址與變量的地址之間的字節(jié)數(shù)。 變量的類型屬性有BYTE(字節(jié))、WORD(字)、 DWORD (雙字)、 QWORD (四字)、TBYTE(十字(sh z)等,表示數(shù)據(jù)區(qū)中存取操作對象的大小。 第26頁/共275頁第二十六頁,共276頁。 2) 助記符 匯編語言語句中的第二個組成部分是助記符(Memonic)。 在指令語句中的第二部分是CPU指令系統(tǒng)中指令的助記符,如MOV、ADC等。助記符約有90多種,在第4章指令系統(tǒng)中已經(jīng)進行了討論(toln)。 在偽指令語句中的第二部分是偽指令的定義符,如DB、SEGMENT、ENDS、END等。它們在
23、程序中的作用是定義變量的類型、定義段以及告訴匯編程序結(jié)束匯編等。 關(guān)于偽指令的作用和使用方法,將在節(jié)中討論(toln)。 第27頁/共275頁第二十七頁,共276頁。 助記符可以是指令、偽操作中的助記符。 對于指令,匯編程序(hu bin chn x)將其翻譯成機器語言指令。MOV AX, 100 B8 00 01對于偽操作,匯編程序(hu bin chn x)根據(jù)其要求的功能進行處理。 data SEGMENT data與一個段值相對應(yīng)string DB USTB string與一個內(nèi)存地址相對應(yīng)。第28頁/共275頁第二十八頁,共276頁。 3) 操作數(shù) 匯編語言語句中的第三個組成部分是操
24、作數(shù)。 操作數(shù)項 在指令語句中是指令的操作數(shù),可能有單操作數(shù)或雙操作數(shù),也可能無操作數(shù); 操作數(shù)給出參與操作的數(shù)或數(shù)所在的地方。 在偽指令中可能有更多個操作數(shù)。操作數(shù)多于一個(y )時,用逗號分開。 操作數(shù)可以是常數(shù)、寄存器、存儲器操作數(shù)、標號名、過程名或表達式等。 第29頁/共275頁第二十九頁,共276頁。 (1) 常數(shù)。常數(shù)就是指令中出現(xiàn)的那些固定值,可以分為數(shù)值常數(shù)和字符串常數(shù)兩類。例如,立即數(shù)尋址時所有的立即數(shù)、直接尋址時所有的地址、ASCII字符串等都是常數(shù)。常數(shù)是除了自身的值以外,沒有其他屬性的數(shù)值。在源程序中,數(shù)值常數(shù)按其基數(shù)(jsh)的不同,可有二進制數(shù)、八進制數(shù)、十進制數(shù)、
25、十六進制數(shù)等幾種不同表示形式。匯編語言用不同的后綴加以區(qū)別(如B,H等)。 第30頁/共275頁第三十頁,共276頁。常數(shù):常數(shù):給出具體的數(shù)據(jù)。可以是數(shù)字常量或字符常量。給出具體的數(shù)據(jù)??梢允菙?shù)字常量或字符常量。 數(shù)字默認十進制,也可加數(shù)字默認十進制,也可加D表示十進制數(shù)。表示十進制數(shù)。如如 1234D, 1234 數(shù)字后加數(shù)字后加B表示二進制數(shù)。表示二進制數(shù)。 如如 1010B 數(shù)字后加數(shù)字后加H表示十六進制數(shù)。表示十六進制數(shù)。 如如 1234H 字符常量,用單引號表示。字符常量,用單引號表示。 如如 1234 匯編時,用字符對應(yīng)的匯編時,用字符對應(yīng)的ASCII表示。表示。如如 31H,
26、32H, 33H, 34H例例 data1 DB 12, 34, 56 ;十進制;十進制 data2 DB 12H, 34H, 56H ;十六進制;十六進制 MOV AL, G ;字符;字符 string DB 1234 ;字符串;字符串第31頁/共275頁第三十一頁,共276頁。l A、B、C、D、E、F開頭的十六進制數(shù)前面加0, 與H結(jié)尾的標識符區(qū)別。如 寄存器名AH、BH、CH、 DH 變量名 abcdH 等例例 mov AL, 0AH mov AL, AH mov BX, 0abcdH第32頁/共275頁第三十二頁,共276頁。 匯編語言中的數(shù)值常數(shù)的第一位必須是數(shù)字,否則匯編時將被看
27、成是標識符,如常數(shù)B7H應(yīng)寫成0B7H,F(xiàn)FH應(yīng)寫成0FFH。 字符串常數(shù)是由單引號括起來的一串字符。例. ABCDEFG和179。單引號內(nèi)的字符在匯編時都以ASCII的代碼形式(xngsh)存放在存儲單元中。如上述兩字符串的ASCII代碼為41H,42H,43H,44H,48H和31H,37H,39H。 字符串最長允許有255個字符。 第33頁/共275頁第三十三頁,共276頁。 (2) 寄存器。8086/8088CPU的寄存器可以作為指令的操作數(shù)。 (3) 標號。由于標號代表一條指令的符號地址,因此可以作為轉(zhuǎn)移(無條件轉(zhuǎn)移或條件轉(zhuǎn)移)、過程調(diào)用CALL以及循環(huán)控制LOOP指令的操作數(shù)。 (
28、4) 變量。因為變量是存儲器中某個數(shù)據(jù)區(qū)的名字(mng zi),所以在指令中可以作為存儲器操作數(shù)。 第34頁/共275頁第三十四頁,共276頁。 (5) 表達式。匯編語言語句中的表達式,按其性質(zhì)可分為兩種:數(shù)值表達式和地址表達式。 數(shù)值表達式產(chǎn)生一個數(shù)值結(jié)果,只有大小,沒有屬性(shxng)。 地址表達式的結(jié)果不是一個單純的數(shù)值,而是一個表示存儲器地址的變量或標號,它有三種屬性(shxng):段、偏移量和類型。 第35頁/共275頁第三十五頁,共276頁。 表達式中常用(chn yn)的運算符有以下幾種: 算術(shù)運算符。常用(chn yn)的算術(shù)運算符有:+(加),(減),*(乘),/(除)和M
29、OD(模除,即兩個整數(shù)相除后取余數(shù))等。 以上算術(shù)運算符可用于數(shù)值表達式,運算結(jié)果是一個數(shù)值。在地址表達式中通常只使用其中的和(加和減)兩種運算符。 第36頁/共275頁第三十六頁,共276頁。 邏輯運算符。邏輯運算符有:AND(邏輯“與”),OR(邏輯“或”),XOR(邏輯“異或”)和NOT(邏輯“非”)。 邏輯運算符只用于數(shù)值表達式中對數(shù)值進行(jnxng)按位邏輯運算,并得到一個數(shù)值結(jié)果。對地址進行(jnxng)邏輯運算是沒有意義的。 第37頁/共275頁第三十七頁,共276頁。 關(guān)系運算符。關(guān)系運算符有:EQ(等于),NE(不等),LT(小于),GT(大于),LE(小于或等于),GE(
30、大于或等于)等。 參與關(guān)系運算的必須是兩個數(shù)值或同一段中的兩個存儲單元地址(dzh),但運算結(jié)果只可能是兩個特定的數(shù)值之一:當關(guān)系不成立(假)時,結(jié)果為0(全0);當關(guān)系成立(真)時,結(jié)果為0FFFFH(全1)。例如: MOV AX,4 EQ 3 ;關(guān)系不成立,故(AX)0 MOV AX,4 NE 3 ;關(guān)系成立,故(AX)0FFFFH 第38頁/共275頁第三十八頁,共276頁。 分析(fnx)運算符 分析(fnx)運算符用于分析(fnx)一個存儲器操作數(shù)的屬性,如段值、偏移量和類型等,或取得它所定義的存儲空間的大小。分析(fnx)運算符有SEG、OFFSET、TYPE、SIZE和LENGT
31、H等。 SEG運算符。 利用SEG運算符可以得到一個標號或變量所在段的段地址。例如,下面兩條指令將變量ARRAY的段地址送DS寄存器。 MOV AX,SEG ARRAY MOV DS,AX 第39頁/共275頁第三十九頁,共276頁。 OFFSET運算符 利用OFFSET運算符可以得到一個標號或變量的偏移地址。例如: MOV DI,OFFSET DATA1 指令執(zhí)行時,將DATA1的偏移地址送到DI寄存器 TYPE運算符 TYPE運算符的運算結(jié)果是一個數(shù)值(shz),這個數(shù)值(shz)與存儲器操作數(shù)類型屬性的對應(yīng)關(guān)系見表。 第40頁/共275頁第四十頁,共276頁。第41頁/共275頁第四十一
32、頁,共276頁。 下面(xi mian)是使用TYPE運算符的例子: VAR DW ?;變量VAR的類型為字ARRAY DD 10 DUP(?) ;變量ARRAY的類型為雙字STR DB THIS IS TEST;變量STR的類型為字節(jié) MOVAX,TYPE VAR ;(AX)2 MOV BX,TYPE ARRAY ;(BX)4 MOV CX,TYPE STR ;(CX)1第42頁/共275頁第四十二頁,共276頁。 LENGTH運算符 如果一個變量已用重復(fù)操作符DUP說明其變量的個數(shù),則利用LENGTH 運算符可得到(d do)這個變量的個數(shù)。如果未用DUP說明,則得到(d do)的結(jié)果總是
33、1。例如,上面的例子中已經(jīng)用“10 DUP(?)”說明變量ARRAY的個數(shù),則LENGTH ARRAY的結(jié)果為10。 第43頁/共275頁第四十三頁,共276頁。 SIZE運算符 如果一個變量已用重復(fù)操作符DUP說明,則利用SIZE 運算符可得到分配給該變量的字節(jié)總數(shù)。如果未用DUP說明,則得到的結(jié)果(ji gu)是TYPE運算的結(jié)果(ji gu)。例如,上面的例子中變量ARRAY的個數(shù)為10,類型為DWORD(雙字),因此,SIZE ARRAY的結(jié)果(ji gu)為10440。由此可知,SIZE的運算結(jié)果(ji gu)等于LENGTH的運算結(jié)果(ji gu)乘以TYPE 的運算結(jié)果(ji g
34、u)。第44頁/共275頁第四十四頁,共276頁。 合成運算符。合成運算符可以用來建立或臨時改變變量或標號的類型或存儲器操作數(shù)的存儲單元類型。合成運算符有PTR、THIS、SHORT等。 PTR運算符。PTR運算符可以指定(zhdng)或修改存儲器操作數(shù)的類型,例如:INCBYTE PTRBXSI 指令中利用PTR運算符明確規(guī)定了存儲器操作數(shù)的類型是BYTE(字節(jié)),因此, 本指令將一個字節(jié)型存儲器操作數(shù)加1。 第45頁/共275頁第四十五頁,共276頁。 利用PTR運算符可以建立一個新的存儲器操作數(shù),它與原來的同名操作數(shù)具有相同的段和偏移量,但可以有不同的類型。不過這個新類型只在當前語句中有
35、效。例如: STUFF DD ? ;定義STUFF為雙字類型變量 MOV BX,WORD PTR STUFF ;從STUFF中取一個字到BX第46頁/共275頁第四十六頁,共276頁。 THIS運算符。THIS運算符也可指定存儲器操作數(shù)的類型。使用THIS運算符可以使標號或變量更具靈活性。例如,要求對同一個數(shù)據(jù)區(qū)既可以字節(jié)為單位,又可以字為單位進行存取,則可用以下語句:TAB1 EQU THIS WORDTAB2 DB 100 DUP(?) 上面TAB1和TAB2實際上代表同一個數(shù)據(jù)區(qū),其中(qzhng)共有100個字節(jié),但TAB1的類型為WORD(字類型),而TAB2的類型為BYTE(字節(jié)類
36、型)。 第47頁/共275頁第四十七頁,共276頁。 SHORT運算符。SHORT運算符指定一個標號的類型為SHORT(短標號),即標號到引用該標號指令之間的距離在128+127個字節(jié)(z ji)的范圍內(nèi)。短標號可以被用于無條件轉(zhuǎn)移指令中。使用短標號的指令比使用缺省的近標號的指令少一個字節(jié)(z ji)。 第48頁/共275頁第四十八頁,共276頁。 其他運算符。 段超越運算符“:”。運算符“:”(冒號)跟在段寄存器名(DS,ES,SS和CS)之后,表示段超越,用以給一個存儲器操作數(shù)指定一個段屬性,而不管其原來隱含的段是什么(shn me)。例如: MOV AX,ES:DI 第49頁/共275頁
37、第四十九頁,共276頁。 字節(jié)分離運算符LOW和HIGH。運算符LOW和HIGH分別得到一個數(shù)值(shz)或地址表達式的低位和高位字節(jié)。例如:STUFF EQU 0ABCDHMOVAH,HIGH STUFF ;(AH)0ABH MOV AL,LOW STUFF ;(AL)0CDH 第50頁/共275頁第五十頁,共276頁。 以上介紹了表達式中使用的各種運算符,如果一個表達式同時具有多個運算符,則按以下規(guī)則運算: 優(yōu)先級高的先運算,優(yōu)先級低的后運算。 優(yōu)先級相同時按表達式中從左到右的順序(shnx)運算。 括號可以提高運算的優(yōu)先級,括號內(nèi)的運算總是在相鄰的運算之前進行。 第51頁/共275頁第五
38、十一頁,共276頁。表表5.2 運算符的優(yōu)先級運算符的優(yōu)先級 第52頁/共275頁第五十二頁,共276頁。 4) 注釋 匯編語言語句的最后一個組成部分是注釋。對于一個匯編語言語句來說,注釋部分并不是必要的,但是加上適當?shù)淖⑨屢院?,可以增加源程序的可讀性。一個較長的實用程序,如果從頭到尾沒有任何注釋,可能很難讀懂。因此,最好在重要的程序段前面以及關(guān)鍵處加上簡明扼要的注釋。 注釋前面要求加上分號(;)。如果注釋的內(nèi)容較多,超過一行,則換行以后前面還要加上分號。注釋也可以從一行的最前面開始,以表示對一個程序段的說明(shumng)。 匯編程序?qū)τ谧⑨尣挥枥頃?,即注釋對匯編后產(chǎn)生的目標程序沒有任何影響
39、。 第53頁/共275頁第五十三頁,共276頁。5.3 偽 指 令 語 句 偽指令無論表示形式或其在語句中所處的位置,都與指令相似。但二者之間有著重要的區(qū)別。首先,指令是給CPU的命令,在運行時由CPU執(zhí)行,每條指令對應(yīng)CPU的一種特定的操作,例如傳送、加法等;而偽指令是給匯編程序的命令,在匯編過程中由匯編程序進行處理(chl),例如定義數(shù)據(jù)、分配存儲區(qū)、定義段以及定義過程等。其次,匯編以后,每條指令產(chǎn)生一一對應(yīng)的目標代碼;而偽指令則不產(chǎn)生與之相應(yīng)的目標代碼。 宏匯編程序MASM提供了幾十種偽指令,其中有一些偽指令小匯編ASM不能支持,如宏處理(chl)其等。根據(jù)其功能,偽指令大致可以分為以下
40、幾類: 第54頁/共275頁第五十四頁,共276頁。 數(shù)據(jù)定義偽指令 符號定義偽指令 段定義偽指令 過程定義偽指令 宏處理偽指令 模塊定義與連接偽指令 處理器選擇偽指令 條件偽指令 列表(li bio)偽指令 其他偽指令 第55頁/共275頁第五十五頁,共276頁。5.3.1 數(shù)據(jù)定義(dngy)偽指令 數(shù)據(jù)定義(dngy)偽指令的用途是定義(dngy)一個變量的類型,給變量賦初值,或者僅僅給變量分配存儲單元,而不賦予特定的值。數(shù)據(jù)定義(dngy)偽指令有DB,DW,DD,DF,DQ,DT等,而常用的是前三種。 數(shù)據(jù)定義(dngy)偽指令的一般格式為:變量名 偽指令定義(dngy)符 操作數(shù),
41、操作數(shù)其中方括號中的變量名為任選項,可以有,也可以沒有。變量名后面不跟冒號。偽指令定義(dngy)符后面的操作數(shù)可以不止一個。如有多個操作數(shù),相互之間應(yīng)該用逗號分開。 第56頁/共275頁第五十六頁,共276頁。 1. DB (Define Byte) 定義變量的類型為字節(jié)(BYTE),給變量分配字節(jié)或字節(jié)串。 DB偽指令定義符后面的操作數(shù)每個占有1個字節(jié)。 2DW (Define Word) 定義變量的類型為字(WORD)。DW偽指令定義符后面的操作數(shù)每個占有1個字,即2個字節(jié)。在內(nèi)存中存放(cnfng)時,低位字在前,高位字在后。 第57頁/共275頁第五十七頁,共276頁。 3DD (D
42、efine Double word) 定義變量的類型為雙字(DWORD)。DD后面的操作數(shù)每個占有2個字,即4個字節(jié)。在內(nèi)存中存放時,低位字在前,高位字在后。 數(shù)據(jù)(shj)定義偽指令定義符后面的操作數(shù)可以是常數(shù)、表達式或字符串,但每項操作數(shù)的值不能超過由偽指令定義符所定義的數(shù)據(jù)(shj)類型限定的范圍。例如,DB偽指令定義數(shù)據(jù)(shj)的類型為字節(jié),則其范圍為無符號數(shù):0255;帶符號數(shù):128+127,等等。字符串必須放在單引號中。另外,超過兩個字符的字符串只能用DB偽指令定義。請看下列語句: 第58頁/共275頁第五十八頁,共276頁。DATADB 101,0F0H ;存入(cn r)6
43、5H,F(xiàn)0H EXPRDB 2*8+7 ;存入(cn r)17H STR DB WELCOME! ;存入(cn r)8個字符的ASCII碼值A(chǔ)B DB AB ;存入(cn r)41H,42HBADW AB ;存入(cn r)42H,41HABDD DD AB ;存入(cn r)42H,41H,00,00OFFAB DW AB ;存入(cn r)變量AB的偏移地址ADRS DW STR,STR3,STR5 ;存入(cn r)3個偏移地址 TOTAL DD DATA ;先存DATA的偏移地址,再存段地址 第59頁/共275頁第五十九頁,共276頁。 以上第一和第二句中,分別將常數(shù)和表達式的值賦予一
44、個變量。 第三句的操作數(shù)是包含8個字符的字符串(只有(zhyu)DB偽指令才能用)。在第四、五、六句,注意偽指令DB、DW和 DD的區(qū)別,雖然操作數(shù)均為 AB 兩個字符,但存入變量的內(nèi)容各不相同。第七句的操作數(shù)是變量AB,而不是字符串,此句將AB的16位偏移地址存入變量OFFAB。 第八句存入三個等距的偏移地址,共占6字節(jié)。第九句中的 DD 偽指令定義符將 DATA 的偏移地址和段地址順序存入變量TOTAL,共占2個字。 第60頁/共275頁第六十頁,共276頁。 除了常數(shù)、表達式和字符串外,問號“?”也可以作為數(shù)據(jù)定義偽指令的操作數(shù),此時僅給變量保留相應(yīng)的存儲單元,而不賦予變量某個確定的初值
45、。 當同樣的操作數(shù)重復(fù)多次時,可用重復(fù)操作符“DUP”表示,其形式(xngsh)為:n DUP(初值 ,初值,)其中圓括號中為重復(fù)的內(nèi)容,n為重復(fù)次數(shù)。如果用“n DUP(?) ”作為數(shù)據(jù)定義偽指令定義符的惟一操作數(shù),則匯編程序產(chǎn)生一個相應(yīng)的數(shù)據(jù)區(qū),但不賦任何初值。重復(fù)操作符“DUP”可以嵌套。下面是用問號或“DUP”表示操作數(shù)的幾個例子: 第61頁/共275頁第六十一頁,共276頁。FILLERDB ?SUM DW ? DB ?,?,?BUFFER DB 10 DUP(?)ZERO DW 30 DUP(0)MASKDB 5 DUP(OK!)ARRAYDB 100 DUP(3 DUP(8),6
46、) 第62頁/共275頁第六十二頁,共276頁。其中第一、第二句分別給字節(jié)變量FILLER和字變量SUM分配存儲單元,但不賦予特定的值。第三句給一個沒有名稱的字節(jié)變量賦予3個不確定的值。第四句給變量BUFFER分配10個字節(jié)的存儲空間,但不賦任何初值。第五句給變量ZERO分配一個數(shù)據(jù)(shj)區(qū),共30個字(即60字節(jié)),每個字的內(nèi)容均為零。第六句定義一個數(shù)據(jù)(shj)區(qū),其中有5個重復(fù)的字符串OK!,共占15字節(jié)。最后一句將變量ARRAY定義為一個數(shù)據(jù)(shj)區(qū),其中包含重復(fù)100次的內(nèi)容:8,8,8,6,共占400個字節(jié)。 第63頁/共275頁第六十三頁,共276頁。 通常把用DUP作為
47、惟一(wiy)操作數(shù)而定義的變量稱為數(shù)組。 下面是幾個錯誤的數(shù)據(jù)定義偽指令語句:ERROR1: DW 99 ;變量名后有冒號ERROR2 DB 25*90 ;DB的操作數(shù)超過255ERROR3 DD 1234 ;DD的操作數(shù)是超過2個字符的字符串 第64頁/共275頁第六十四頁,共276頁。5.3.2 符號定義偽指令 符號定義偽指令的用途是給一個符號重新命名,或定義新的類型(lixng)屬性等。符號包括匯編語言的變量名、標號名、過程名、寄存器名以及指令助記符等。 常用的符號定義偽指令有EQU、(等號)和LABLE。第65頁/共275頁第六十五頁,共276頁。 1EQU 格式: 名字 EQU 表
48、達式 EQU偽指令將表達式的值賦予一個名字。以后可用這個名字來代替上述表達式。 格式中的表達式可以是一個常數(shù)、符號(fho)、數(shù)值表達式或地址表達式等。例如: CR EQU 0DH;常數(shù)(chngsh)LF EQU 0AH A EQU ASCII_TABLE ;變量第66頁/共275頁第六十六頁,共276頁。STR EQU 64*1024 ;數(shù)值(shz)表達式 ADR EQU ES:BP+DI+5 ;地址表達式CBD EQU AAM ;指令助記符 利用EQU偽指令,可以用一個名字代表一個數(shù)值,或用一個較簡短的名字來代替一個較長的名字。 如果源程序中需要多次引用某一表達式,則可以利用EQU偽指
49、令定義符給其賦一個名字,以代替程序中的表達式,從而使程序更加簡潔(jinji),便于閱讀。將來如果改變表達式的值,也只需修改一處,使程序易于維護。需要注意一個問題:EQU偽指令不允許對同一符號重復(fù)定義。 第67頁/共275頁第六十七頁,共276頁。 2=(等號) 格式: 名字=表達式 = (等號)偽指令的功能(gngnng)與EQU偽指令基本相同,主要區(qū)別在于它可以對同一個名字重復(fù)定義。例如: COUNT=100 MOV CX,COUNT ;(CX)100 COUNT=COUNT10 MOV BX,COUNT ;(BX)90 第68頁/共275頁第六十八頁,共276頁。 3LABLE 格式:
50、名字 LABLE 類型 LABLE偽指令的用途是定義標號或變量的類型。變量的類型可以是BYTE、WORD、DWORD等;標號的類型可以是NEAR或FAR。 利用LABEL偽指令可以使同一個數(shù)據(jù)區(qū)兼有BYTE和WORD兩種屬性,這樣(zhyng),在以后的程序中可根據(jù)不同的需要分別以字節(jié)或字為單位存取其中的數(shù)據(jù)。例如: 第69頁/共275頁第六十九頁,共276頁。AREAW LABEL WORD ;變量AREAW的類型為WORDAREAB DB 100 DUP(?) ;變量AREAB的類型為BYTE MOV AREAW,AX ;AX送第1和第2字節(jié)中 MOV AREAB49,AL ;AL送第50
51、字節(jié)中 第70頁/共275頁第七十頁,共276頁。 LABEL偽指令也可以將一個屬性已經(jīng)定義為NEAR或者后面跟有冒號(moho) (隱含屬性為NEAR)的標號再定義為FAR。例如:AGAINF LABEL FAR;定義標號AGAINF的屬性為FAR AGAIN: PUSH AX ;定義標號AGAIN的屬性為NEAR 上面的過程既可以利用標號AGAIN在本段內(nèi)被調(diào)用,也可以利用標號AGAINF被其他段調(diào)用。 第71頁/共275頁第七十一頁,共276頁。5.3.3 段定義偽指令段定義偽指令 段定義偽指令的用途是在匯編語言源程序中定義邏輯段。常用的段定義偽指令有SEGMENT/ENDS和ASSUM
52、E等 。1SEGMENT/ENDS 格式: 段名 SEGMENT 定位類型 組合類型 類別 段名 ENDS 第72頁/共275頁第七十二頁,共276頁。 SEGMENT 偽指令用于定義一個邏輯段,給邏輯段賦予一個段名,并以后面的任選項(定位類型、組合類型、類別)規(guī)定該邏輯段的其他特性。 SEGMENT 偽指令位于一個邏輯段的開始部分,而ENDS偽指令則表示一個邏輯段的結(jié)束。在匯編語言源程序中,這兩個偽指令定義符總是成對出現(xiàn)的,二者前面的段名必須一致(yzh)。 兩個語句之間的部分即是該邏輯段的內(nèi)容。例:對于代碼段,其中主要有指令及其他偽指令; 對于數(shù)據(jù)段和附加段,主要有定義數(shù)據(jù)區(qū)的偽指令等等。
53、 一個源程序中不同邏輯段的段名可以各不相同。 第73頁/共275頁第七十三頁,共276頁。 SEGMENT偽指令后面還有三個任選項:定位類型、組合(zh)類型和類別。在上面的格式中,它們都放在方括號內(nèi),表示可有可無。如果有,三者的順序必須符合格式中的規(guī)定。 SEGMENT偽指令后面的這些任選項是給匯編程序(MASM)和連接程序(LINK)的命令。任選項告訴匯編程序和連接程序,如何確定段的邊界,以及如何組合(zh)幾個不同的段等。 下面分別進行討論。 第74頁/共275頁第七十四頁,共276頁。 1) 定位 (Align) 類型 定位類型任選項告訴匯編程序如何確定邏輯段的邊界在存儲器中的位置。定
54、位類型共有以下四種:BYTE(邊界起始地址= B) 該類型表示(biosh)邏輯段從一個字節(jié)的邊界開始,即可以從任何地址開始。此時本段的起始地址可緊接在前一個段的后面。 第75頁/共275頁第七十五頁,共276頁。 WORD(邊界起始地址(dzh)= 0B) 該類型表示邏輯段從字的邊界開始。2字節(jié)為1個字,此時本段的起始地址(dzh)必須是偶數(shù)。例:邊界起始地址(dzh)的十六進制表示可以是 0 H 或 2 H 或 4 H 或 8 H PARA(邊界起始地址(dzh)= 0 0 0 0B) 該類型表示邏輯段從一個節(jié)(Paragraph)的邊界開始(一節(jié)等于16個字節(jié)),也即段的起始地址(dzh
55、)能被16整除,故本段的起始地址(dzh)(十六進制)應(yīng)為 0 H。 如果省略定位類型任選項,則默認其為PARA。 第76頁/共275頁第七十六頁,共276頁。 PAGE(邊界起始地址= 0 0 0 0 0 0 0 0B) 該類型(lixng)表示邏輯段從頁邊界開始(一頁等于256個字節(jié)),也即段的起始地址能被256整除,故本段的起始地址(十六進制)應(yīng)為 0 0 H。 $(地址計數(shù)器偽指令) 在匯編語言程序內(nèi),為了指示下一個數(shù)據(jù)或指令在相應(yīng)段中的偏移量,匯編程序使用了一個當前位置計數(shù)器$。例. STR1 DWAB STR2 DB 16 DUP(?) CNT EQU $-STR1 MOV CX
56、, CNT 指令執(zhí)行后, CNT=$-STR1=2+16=18=12H,所以(CX)=12H第77頁/共275頁第七十七頁,共276頁。例例 SEGMENT偽指令定義符的定位類型應(yīng)用舉例偽指令定義符的定位類型應(yīng)用舉例(j l)。STACK SEGMENT STACK ;STACK段,定位類型缺省段,定位類型缺省 DB 100 DUP(?) ;長度為;長度為100字節(jié)字節(jié)STACK ENDS ;STACK段結(jié)束段結(jié)束DATA1 SEGMENT BYTE ;DATA1段,定位類型段,定位類型BYTE STRING DB This is an example! ;長度為;長度為19字節(jié)字節(jié)DATA1
57、 ENDS ;DTAT1段結(jié)束段結(jié)束DATA2 SEGMENT WORD ;DATA2段,定位類型段,定位類型WORD BUFFER DW 40 DUP(0) ;長度為;長度為40個字個字(80字節(jié)字節(jié))DATA2 ENDS ;DATA2段結(jié)束段結(jié)束第78頁/共275頁第七十八頁,共276頁。CODE1 SEGMENT PAGE ;CODE1段,定位類型PAGE ;假設(shè)CODE2段長度為13字節(jié)CODE1 ENDS ;CODE1段結(jié)束(jish)CODE2 SEGMENT ;CODE2段,定位類型缺省 START:MOV AX,STACK ;建立堆棧段 MOV SS,AX ;假設(shè)CODE2段長
58、度為52字節(jié)CODE2 ENDS ;CODE2段結(jié)束(jish) END START ;源程序結(jié)束(jish) 第79頁/共275頁第七十九頁,共276頁。 本例的源程序中共有五個邏輯段,它們的段名、定位類型和已知條件分別如下:STACK段 PARA STACK段的長度為100字節(jié)(64H)DATA1段 BYTE DATA1段的長度為19字節(jié)(13H)DATA2段 WORD DATA2段的長度為40個字CODE1段 PAGE CODE1段占用13字節(jié)(0DH)CODE2段 PARA CODE2段占用52字節(jié)(34H) 已經(jīng)知道其中STACK段的長度為100字節(jié)(64H),DATA1段的長度為1
59、9字節(jié)(13H),DATA2段的長度為40個字,即80字節(jié)(50H)。假設(shè)CODE1段占用13字節(jié)(0DH),CODE2段占用52字節(jié)(34H)。 如果將以上邏輯段進行匯編和連接,然后再來觀察各邏輯段的目標(mbio)代碼或數(shù)據(jù)裝入存儲器的情況,如表。第80頁/共275頁第八十頁,共276頁。表表5.3 例各邏輯例各邏輯(lu j)段的起始地址和結(jié)束地址段的起始地址和結(jié)束地址 段 名定位類型字節(jié)數(shù)起始地址結(jié)束地址STACKPARA100(64H)00000H00063HDATA1BYTE19(13H)00064H00076HDATA2WORD80(50H)00078H000C7HCODE1PA
60、GE13(0DH)00100H0010CHCODE2PARA52(34H)00110H00143H 由表可清楚地看出,當SEGMENT偽指令的定位類型不同時,對段起始(q sh)邊界的規(guī)定也不相同。第81頁/共275頁第八十一頁,共276頁。 aa SEGMENT ;數(shù)據(jù)段1 str1 DB Hello! aa ENDSbb SEGMENT ;數(shù)據(jù)段2 str2 DB 6 dup (?) bb ENDScc SEGMENT ;代碼段 ASSUME CS:ccASSUME DS:aa, ES:bb start: CLD MOV AX , aa MOV DS , AX LEA SI , str1
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 3 Food Fun Time(說課稿)-2024-2025學(xué)年人教新起點版英語三年級上冊
- 2025年大學(xué)生寒假社會實踐計劃
- 2025年幼兒園個人的工作計劃
- 2025年導(dǎo)游工作計劃模板
- 2025年審計工作計劃范文樣本
- 2025年度導(dǎo)游工作計劃怎么寫
- 廁所清潔劑行業(yè)相關(guān)投資計劃提議范本
- 環(huán)保節(jié)能型冷卻塔行業(yè)相關(guān)投資計劃提議范本
- 2025年滬教版小學(xué)數(shù)學(xué)四年級下冊教學(xué)計劃
- 冷墩鋼相關(guān)項目投資計劃書
- 小班《火車開了》音樂欣賞課評課稿
- 倫理學(xué)與醫(yī)學(xué)倫理學(xué) (醫(yī)學(xué)倫理學(xué)課件)
- GB/T 6344-2008軟質(zhì)泡沫聚合材料拉伸強度和斷裂伸長率的測定
- GA/T 1740.1-2020旅游景區(qū)安全防范要求第1部分:山岳型
- 產(chǎn)后康復(fù)客戶健康評估表格
- 企業(yè)人員組織結(jié)構(gòu)圖
- 個人現(xiàn)實表現(xiàn)材料1500字德能勤績廉(通用6篇)
- 六年級上冊數(shù)學(xué)單元測試-5.圓 青島版 (含答案)
- (精心整理)高一語文期末模擬試題
- QC成果解決鋁合金模板混凝土氣泡、爛根難題
- 管線管廊布置設(shè)計規(guī)范
評論
0/150
提交評論