補充1 匯編語言的基本表達及其運行_第1頁
補充1 匯編語言的基本表達及其運行_第2頁
補充1 匯編語言的基本表達及其運行_第3頁
補充1 匯編語言的基本表達及其運行_第4頁
補充1 匯編語言的基本表達及其運行_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 本章主要教學(xué)內(nèi)容本章主要教學(xué)內(nèi)容 l l 匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念 l l 匯編語言源程序書寫規(guī)則、語句格式及程序分段匯編語言源程序書寫規(guī)則、語句格式及程序分段 l l 偽指令語句的格式、功能及應(yīng)用偽指令語句的格式、功能及應(yīng)用 l l 匯編語言源程序的建立、匯編、連接、調(diào)試及運行匯編語言源程序的建立、匯編、連接、調(diào)試及運行 第第第第第第5 5 5章章章章章章 匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行 第第第第第第5 5 5章章章章章章 匯編語言的

2、基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行 本章教學(xué)目的及要求本章教學(xué)目的及要求 l l 理解匯編語言和匯編程序的概念、特點及其應(yīng)用。理解匯編語言和匯編程序的概念、特點及其應(yīng)用。 l l 掌握掌握匯編語言源程序的書寫規(guī)則、語句的基本格式、匯編語言源程序的書寫規(guī)則、語句的基本格式、程序的分段程序的分段結(jié)構(gòu)。結(jié)構(gòu)。 l l 熟悉熟悉匯編語言的基本表達、匯編語言的基本表達、偽指令語句及其應(yīng)用。偽指令語句及其應(yīng)用。 l l 熟悉匯編語言程序的上機運行、調(diào)試過程,掌握熟悉匯編語言程序的上機運行、調(diào)試過

3、程,掌握基本操作技能。基本操作技能。 5.1 匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念 第第第第第第5 5 5 5 5 5章章章章章章 匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行匯編語言的基本表達及其運行 5.2 匯編語言源程序書寫格式匯編語言源程序書寫格式 5.3 8086匯編語言中的標(biāo)識符匯編語言中的標(biāo)識符、表達式和運算符表達式和運算符 5.5 匯編語言程序上機過程匯編語言程序上機過程 5.4 偽指令語句偽指令語句 5.6 匯編語言程序運行實例匯編語言程序運行實例 5.1 5.1 5.1

4、 匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念匯編語言和匯編程序的基本概念 5.1.1 匯編語言 匯編語言是一種面向CPU指令系統(tǒng)的程序設(shè)計語言,它采用指令系統(tǒng)的助記符來表示操作碼和操作數(shù),用符號地址表示操作數(shù)地址,因而易記、易讀、易修改,給編程帶來很大方便。 用匯編語言編寫的程序能夠直接利用硬件系統(tǒng)的特性,直接對位、字節(jié)、字寄存器、存儲單元、I/O端口等進行處理,同時也能直接使用CPU指令系統(tǒng)和指令系統(tǒng)提供的各種尋址方式編制出高質(zhì)量的程序,這種程序不但占用內(nèi)存空間少,而且執(zhí)行速度快 。 5.1.2

5、 匯編程序匯編程序 用匯編語言編寫的源程序在輸入計算機后,需要將其翻譯成目標(biāo)程序,計算機才能執(zhí)行相應(yīng)指令,這個翻譯過程稱為匯編,完成匯編任務(wù)的程序稱為匯編程序。 有 基 本 匯 編 A S M ( A s s e m b l e r ) 和 宏 匯 編 M A S M(MacroAssembler)兩種。 匯編程序以匯編語言源程序文件作為輸入,并由它產(chǎn)生兩種輸出文件:目標(biāo)程序文件和源程序列表文件。 目標(biāo)程序文件經(jīng)連接定位后由計算機執(zhí)行; 源程序列表文件將列出源程序、目標(biāo)程序的機器語言代碼及符號表。 5.2 5.2 5.2 匯編語言源程序書寫格式匯編語言源程序書寫格式匯編語言源程序書寫格式匯編語

6、言源程序書寫格式匯編語言源程序書寫格式匯編語言源程序書寫格式 5.2.1 匯編語言源程序的分段結(jié)構(gòu)匯編語言源程序的分段結(jié)構(gòu) 通常,一個匯編源程序一般應(yīng)該由3個邏輯段組成,即數(shù)據(jù)段、堆棧段和代碼段。每個邏輯段以SEGMENT語句開始,以ENDS語句結(jié)束。整個源程序以END語句結(jié)束。 數(shù)據(jù)段用來在內(nèi)存中建立一個適當(dāng)容量的工作區(qū),以存放常數(shù)、變量等操作數(shù)據(jù)。 堆棧段用來在內(nèi)存中建立一個適當(dāng)?shù)亩褩^(qū),以便在中斷、子程序調(diào)用時使用。 代碼段包括了許多以符號表示的指令,其內(nèi)容就是程序要執(zhí)行的指令。5.2.2 5.2.2 匯編語言源程序的語句類型和語句格式匯編語言源程序的語句類型和語句格式 1語句類型語句類

7、型 8086宏匯編MASM使用的語句可以分成3種類型: 指令語句:這類指令能夠產(chǎn)生目標(biāo)代碼,是CPU可以執(zhí)行的能夠完成特定功能的語句,主要由機器指令組成。在匯編時一條指令語句被翻譯成對應(yīng)的機器碼,對應(yīng)著特定的操作。 偽指令語句:偽指令語句是為匯編程序和連接程序提供一些必要控制的管理性語句,它不產(chǎn)生目標(biāo)代碼,僅僅在匯編過程中告訴匯編程序應(yīng)如何匯編,并完成相應(yīng)的偽操作。 宏指令語句:宏指令語句是由編程者按照一定的規(guī)則來定義的一種較“宏大”的指令,可包括多條指令或偽指令 。2 2語句格式語句格式 一般情況下,匯編語言的語句可以由以下幾部分組成: 名字 操作符 操作數(shù) ;注釋 名字是一個符號,它表示本

8、條語句的符號地址。一般來說,名字可以是標(biāo)號和變量,統(tǒng)稱為標(biāo)識符。 注意:標(biāo)號和變量都具備3種屬性段屬性、偏移屬性及類型屬性。 操作符可以是機器指令、偽指令和宏指令的助記符。 操作數(shù)字段是操作符的操作對象。操作符在完成相應(yīng)的操作時要求有一系列的操作數(shù)。當(dāng)有兩個或兩個以上的操作數(shù)時,各操作數(shù)之間用逗號隔開。 注釋字段是以“;”開頭的說明部分,可以用英文或者中文書寫。注釋字段是語句的非執(zhí)行部分 。 5.3 80865.3 80865.3 80865.3 80865.3 80865.3 8086匯編語言中的標(biāo)識符、表達式和運算符匯編語言中的標(biāo)識符、表達式和運算符匯編語言中的標(biāo)識符、表達式和運算符匯編語

9、言中的標(biāo)識符、表達式和運算符匯編語言中的標(biāo)識符、表達式和運算符匯編語言中的標(biāo)識符、表達式和運算符 5.3.1 標(biāo)識符標(biāo)識符 匯編語言每條語句的第一個字段是它的名字字段,名字可以是標(biāo)號或變量,這兩者又稱為標(biāo)識符。 重點是要掌握其組成規(guī)則和它的3個屬性。 5.3.2 表達式和運算符表達式和運算符 在表達式中,運算符充當(dāng)著重要的角色。 8086宏匯編有算術(shù)運算符、邏輯運算符、關(guān)系運算符、分析運算符和綜合運算符共5種。 下面分別討論5種運算符的作用:(1)算術(shù)運算符用于完成算術(shù)運算,有(加法)、(減法)、(乘法)、(除法)、MOD(求余)、SHL(左移)、SHR(右移)共7種運算。(2)邏輯運算符的作

10、用是對其操作數(shù)進行按位操作。邏輯運算符有AND(與)、OR(或)、XOR(異或)和NOT(非)。(3)關(guān)系運算符的運算對象是兩個性質(zhì)相同的項目。其結(jié)果為:關(guān)系成立或不成立。有EQ(相等)、NE(不相等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)共6種。 (4)分析運算符是對存儲器地址進行運算的。有5個:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求變量類型)、LENGTH(求變量長度)和SIZE(求字節(jié)數(shù))。 (5)綜合運算符可以用來建立和臨時改變變量或標(biāo)號的類型以及存儲器操作數(shù)的存儲單元類型,而忽略當(dāng)前的屬性,所以又稱為屬性修改運算符。 有6個綜合運算符

11、:PTR、段屬性前綴、SHORT、THIS、HIGH 和LOW。 各類運算符和常數(shù)、寄存器名、標(biāo)號、變量一起共同組成表達式。 在計算具有多個運算符的表達式值時,按以下規(guī)則操作:l 優(yōu)先級高的先運算,優(yōu)先級低的后運算。l 當(dāng)優(yōu)先級相同時,按表達式中從左到右的順序進行運算。l 使用括號可以提高表達式運算的優(yōu)先級。5.4 5.4 5.4 偽指令語句偽指令語句偽指令語句偽指令語句偽指令語句偽指令語句 在匯編語言中,偽指令是給匯編程序的命令,在匯編過程中由匯編程序進行處理。 例如定義數(shù)據(jù)、分配存儲區(qū)、定義段及定義過程等都采用偽指令表示。 5.4.1 數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令 數(shù)據(jù)定義偽指令用來定義一

12、個變量的類型,并將所需要的數(shù)據(jù)放入指定的存儲單元中,也可以只給變量分配存儲單元,而不賦予特定的值。1. 1. 數(shù)據(jù)定義偽指令的一般格式為:數(shù)據(jù)定義偽指令的一般格式為:變量名 偽指令 操作數(shù) ,操作數(shù) ;注釋2. 常用的常用的數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令 定義字節(jié)變量偽指令DB 定義字變量偽指令DW 定義雙字變量偽指令DD 定義四字變量偽指令DQ 定義十字節(jié)變量偽指令DT 5.4.2 符號定義偽指令符號定義偽指令 符號定義偽指令的用途是給一個符號重新命名,或定義新的類型屬性等。這些符號可以包括匯編語言的變量名、標(biāo)號名、過程名、寄存器名以及指令助記符等。 常用的符號定義偽指令有EQU、LABLE。

13、 5.4.3 段定義偽指令段定義偽指令 段定義偽指令的用途是在匯編語言程序中定義邏輯段,用它來指定段的名稱和范圍,并指明段的定位類型、組合類型及類別。 常用的段定義偽指令有SEGMENT、ENDS和ASSUME等。 5.4.4 過程定義偽指令過程定義偽指令 在程序設(shè)計中,經(jīng)常將一些重復(fù)出現(xiàn)的語句組定義為子程序。子程序又稱為過程,可以采用CALL指令來調(diào)用。 使用格式: 過程名 PROC NEAR/FAR (語句系列) RET (語句系列) 過程名 ENDP 調(diào)用一個過程的格式為: CALL 過程名 5.4.5 結(jié)構(gòu)定義偽指令結(jié)構(gòu)定義偽指令 結(jié)構(gòu)就是相互關(guān)聯(lián)的一組數(shù)據(jù)的某種組合形式。 用偽指令S

14、TRUC和ENDS把相關(guān)數(shù)據(jù)定義語句組合起來,便構(gòu)成一個完整的結(jié)構(gòu)。 使用格式: 結(jié)構(gòu)名 STRUC (數(shù)據(jù)定義語句序列) 結(jié)構(gòu)名 ENDS 5.4.6 模塊定義與連接偽指令模塊定義與連接偽指令 在編寫規(guī)模較大的匯編語言源程序時,可以將整個程序劃分為幾個獨立的源程序,稱之為模塊。 將各模塊分別進行匯編,生成各自的目標(biāo)程序,最后將它們連接成為一個完整的可執(zhí)行程序。 各模塊之間可以相互進行符號訪問。 為了進行模塊之間連接和實現(xiàn)相互的符號訪問,以便進行變量傳送,通常使用以下幾個偽指令: NAME、END、PUBLIC、EXTRN。 5.4.7 程序計數(shù)器程序計數(shù)器$和和ORG偽指令偽指令 1程序計數(shù)

15、器程序計數(shù)器$ 字符“$”在8086宏匯編中具有一種特殊的意義,把它稱為程序計數(shù)器。表示位置計數(shù)器的當(dāng)前值,它可以在數(shù)值表達式中使用。 在程序中,“$”出現(xiàn)在表達式里,它的值為程序下一個所能分配的存儲單元的偏移地址。 2ORG偽指令偽指令 ORG是起始位置設(shè)定偽指令,用來指出源程序或數(shù)據(jù)塊的起點。 利用ORG偽指令可以改變位置計數(shù)器的值。 5.5 5.5 匯編語言程序上機過程匯編語言程序上機過程 5.5.1 匯編語言的工作環(huán)境及上機步驟匯編語言的工作環(huán)境及上機步驟 1硬件環(huán)境 目前8086匯編語言程序一般多在IBM PC/XT及其兼容機上運行,要求機器具備基本配置即可以了。 2軟件環(huán)境 主要是

16、指支持匯編語言程序運行和幫助建立匯編語言源程序的一些軟件,主要包括:(1)DOS操作系統(tǒng) (2)編輯程序EDIT.COM(3)宏匯編程序MASM.EXE(4)連接程序LINK.EXE(5)調(diào)試程序DEBUG.COM 3運行匯編語言程序的步驟運行匯編語言程序的步驟 (1)用編輯程序EDIT.COM建立擴展名為.ASM的匯編語言源程序文件; (2)用匯編程序MASM.EXE將匯編語言源程序文件匯編成用機器碼表示的目標(biāo)程序文件,其擴展名為.OBJ; (3)若在匯編過程中出現(xiàn)語法錯誤,根據(jù)錯誤信息提示(如位置、類型、說明),用編輯軟件重新調(diào)入源程序進行修改。無錯誤時采用連接程序LINK.EXE把目標(biāo)文

17、件轉(zhuǎn)化成可執(zhí)行文件,其擴展名為.EXE; (4)生成可執(zhí)行文件后,在DOS命令狀態(tài)下直接鍵入文件名就可執(zhí)行該文件。5.6 5.6 5.6 匯編語言程序運行實例匯編語言程序運行實例匯編語言程序運行實例 本節(jié)中給出的程序是從鍵盤輸入10個字符,然后以與鍵入相反的順序?qū)?0個字符輸出到顯示屏幕上。設(shè)定源程序名為STR.ASM。5.6.1 用用EDIT建立匯編語言源程序建立匯編語言源程序 在DOS狀態(tài)下,調(diào)用EDIT編輯程序建立文件名為STR.ASM的匯編源程序。 其屏幕顯示如下圖: 5.6.2 用用MASM匯編生成目標(biāo)文件匯編生成目標(biāo)文件 源程序文件建立完畢后,調(diào)用宏匯編程序源程序文件建立完畢后,調(diào)用宏匯編程序MASM對對STR.ASM進行匯編,結(jié)果如下圖所示:進行匯編,結(jié)果如下圖所示:5.6.3 用用LINK進行連接生成可執(zhí)行文件進行連接生成可執(zhí)行文件 匯編完畢程序正確,則可調(diào)用LINK進行連接,生成可執(zhí)行文件STR.EXE,過程如下圖所示。 5.6.4 程序的運行程序的運行 在DOS狀態(tài)下,直接鍵入可執(zhí)

溫馨提示

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

評論

0/150

提交評論