微機(jī)原理與接口技術(shù)_04匯編語(yǔ)言程序基礎(chǔ)_第1頁(yè)
微機(jī)原理與接口技術(shù)_04匯編語(yǔ)言程序基礎(chǔ)_第2頁(yè)
微機(jī)原理與接口技術(shù)_04匯編語(yǔ)言程序基礎(chǔ)_第3頁(yè)
微機(jī)原理與接口技術(shù)_04匯編語(yǔ)言程序基礎(chǔ)_第4頁(yè)
微機(jī)原理與接口技術(shù)_04匯編語(yǔ)言程序基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第44章 匯編語(yǔ)言程序基礎(chǔ) 本章主要內(nèi)容 4.1機(jī)器語(yǔ)言與匯編語(yǔ)言 4.2匯編語(yǔ)言的基本語(yǔ)法 4.3偽指令 4.4 宏指令 4.5 DOS功能調(diào)用和BIOS中斷簡(jiǎn)介 4.6 匯編語(yǔ)言程序設(shè)計(jì)方法 4.7 宏匯編程序設(shè)計(jì) 4.8 匯編語(yǔ)言上機(jī)及調(diào)試過程4.1機(jī)器語(yǔ)言與匯編語(yǔ)言 程序設(shè)計(jì)語(yǔ)言按其級(jí)別可以劃分為機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言三大類。 1機(jī)器語(yǔ)言 機(jī)器語(yǔ)言就是計(jì)算機(jī)指令系統(tǒng)。用機(jī)器語(yǔ)言編的程序可以被計(jì)算機(jī)直接執(zhí)行。 2匯編語(yǔ)言 匯編語(yǔ)言用助記符來代替機(jī)器指令的操作碼和操作數(shù),如用ADD表示加法,SUB表示減法,MOV表示傳送數(shù)據(jù)等。 4.2匯編語(yǔ)言的基本語(yǔ)法4.2.1語(yǔ)句格式 匯編語(yǔ)言的

2、源程序是由若干條語(yǔ)句構(gòu)成的,每條語(yǔ)句可以由四項(xiàng)構(gòu)成,格式如下。 標(biāo)識(shí)符 操作碼 操作數(shù) ;注釋 其中,標(biāo)識(shí)符用來對(duì)程序中的變量、常量、段、過程等進(jìn)行命名,它是組成語(yǔ)句的一個(gè)常用成分,它的命名應(yīng)符合下列規(guī)定。 (1)標(biāo)識(shí)符是一個(gè)字符串,第一個(gè)字符必須是字母、“?”、“”或“_”這四種字符中的一個(gè)。 (2)從第二個(gè)字符開始,可以是字母、數(shù)字、“?”、“”、“_”。 (3)一個(gè)標(biāo)識(shí)符可以由131個(gè)字符組成。 4.2.2 語(yǔ)句類型與結(jié)構(gòu) 1指令性語(yǔ)句的結(jié)構(gòu) 標(biāo)號(hào):前綴 指令助記符 操作數(shù);注釋 說明: (1)方括號(hào)中的成分可以選用或默認(rèn)。 (2)標(biāo)號(hào)是后面緊跟“:”的一個(gè)標(biāo)識(shí)符,標(biāo)號(hào)代表該行指令在存儲(chǔ)

3、器中的首地址,標(biāo)號(hào)可作為轉(zhuǎn)移指令和調(diào)用指令的一個(gè)操作數(shù)。 (3)前綴包括重復(fù)前綴、總線封鎖前綴等。 (4)操作數(shù)可以是一個(gè)、兩個(gè)或沒有,由指令類型決定,若有兩個(gè)操作數(shù),前面為目的操作數(shù),后面為源操作數(shù),中間用逗號(hào)隔開。 (5)注釋是以“;”開始的字符串,不影響程序的匯編與執(zhí)行,僅用于增加源程序的可讀性。 2指示性語(yǔ)句的結(jié)構(gòu) 名字 偽指令助記符 操作數(shù);注釋 說明: (1)名字可以是符號(hào)常量名、變量名、過程名、段名等,名字后面不能有“:”。 (2)偽指令助記符共有四十多個(gè),按功能不同分成八類,本章介紹常用的五類共二十多個(gè)。 (3)操作數(shù)可少到一個(gè)沒有,多到兩個(gè)以上,操作數(shù)之間須用逗號(hào)分隔。 3宏

4、指令語(yǔ)句的結(jié)構(gòu) 宏名 宏操作助記符 操作數(shù);注釋 說明: (1)宏名即宏指令名,是一個(gè)標(biāo)識(shí)符,宏名后面不能有“:”。 (2)宏操作助記符共有8個(gè),分別是MACRO、ENDM、EXITM、LOCAL、REPT、IRPC、IRP、PURGE。 (3)其余同指示性語(yǔ)句。 4.2.3 匯編語(yǔ)言中的表達(dá)式 表達(dá)式由操作數(shù)和運(yùn)算符組成,在匯編時(shí)一個(gè)表達(dá)式得到一個(gè)值。表達(dá)式分為數(shù)值表達(dá)式和地址表達(dá)式。 1表達(dá)式中的常量 常量是在匯編時(shí)已經(jīng)確定的常數(shù)值,常量可以是數(shù)據(jù)和字符。常量表示一個(gè)固定的數(shù)值,它又分成多種形式。 (1)常數(shù):指由10、16、2和8進(jìn)制形式表達(dá)的數(shù)值。 (2)字符串:字符串常量是用單引號(hào)或

5、雙引號(hào)括起來的單個(gè)字符或多個(gè)字符,其數(shù)值是每個(gè)字符對(duì)應(yīng)的ASCII碼值。 2表達(dá)式中的變量 常以變量名的形式出現(xiàn)在程序中,可以看作是存放數(shù)據(jù)的存儲(chǔ)單元的符號(hào)地址,它用來定義存儲(chǔ)器中的數(shù)據(jù)。變量具有三種屬性。 (1)段屬性(SEG):變量所在段的段地址。 (2)偏移地址屬性(OFFSET):變量所在段的段內(nèi)偏移地址。 (3)類型屬性(TYPE):變量占用存儲(chǔ)單元的字節(jié)數(shù)。 3表達(dá)式中的標(biāo)號(hào) 標(biāo)號(hào)是給指令性語(yǔ)句所在單元地址取的名字,它表明該指令在存儲(chǔ)器中的位置,可作為轉(zhuǎn)移類指令的操作數(shù)。它有以下三種屬性。 (1)段屬性:標(biāo)號(hào)所在段的段地址。 (2)偏移地址屬性:標(biāo)號(hào)所在段的段內(nèi)偏移地址。 (3)類

6、型(距離)屬性:NEAR,近標(biāo)號(hào),表示該標(biāo)號(hào)在段內(nèi)使用;FAR,遠(yuǎn)標(biāo)號(hào),表示該標(biāo)號(hào)在段間使用。4.2.4 匯編語(yǔ)言的運(yùn)算符 1算術(shù)運(yùn)算符 算術(shù)運(yùn)算符包括(加)、(減)、*(乘)、/(除)、MOD(模除)、SHL(左移)、SHR(右移)。其中,除號(hào)只取商,模除只取余,SHL一次相當(dāng)于乘2,SHR一次相當(dāng)于除2。 2邏輯運(yùn)算符 邏輯運(yùn)算符包括AND(與)、OR(或)、XOR(異或)、NOT(非)四種。邏輯運(yùn)算符只出現(xiàn)在語(yǔ)句的操作數(shù)部分,運(yùn)算在匯編時(shí)完成;邏輯操作指令只出現(xiàn)在指令的操作碼部分,運(yùn)算在執(zhí)行指令時(shí)完成。 3關(guān)系運(yùn)算符 關(guān)系運(yùn)算符包括EQ(等于)、NE(不等)、LT(小于)、GT(大于)、

7、LE(小于等于)、GE(大于等于)共六種。它們對(duì)兩個(gè)運(yùn)算對(duì)象進(jìn)行比較操作,若滿足條件,表示運(yùn)算結(jié)果為真“TRUE”,輸出結(jié)果為全“1”;若比較后不滿足條件,則運(yùn)算結(jié)果為假“FALSE”,輸出結(jié)果為全“0”。 4分析運(yùn)算符 分析運(yùn)算符的操作對(duì)象必須是存儲(chǔ)器操作數(shù),即變量、標(biāo)號(hào)或過程名。返回的結(jié)果是一個(gè)數(shù)值常量。 1)SEG運(yùn)算符 取段地址運(yùn)算符,該運(yùn)算返回變量或標(biāo)號(hào)所在段的段地址(字常量)。 2)OFFSET運(yùn)算符 取段內(nèi)偏移地址符,該運(yùn)算返回變量或標(biāo)號(hào)所在段的段內(nèi)偏移地址。 3)TYPE運(yùn)算符 取類型屬性運(yùn)算符,該運(yùn)算返回變量或標(biāo)號(hào)的類型值。若運(yùn)算對(duì)象是標(biāo)號(hào),則返回標(biāo)號(hào)的距離屬性值,若運(yùn)算對(duì)象

8、是變量,則返回變量類型所占字節(jié)數(shù)。 4)LENGTH運(yùn)算符 取數(shù)組變量元素個(gè)數(shù)運(yùn)算符,如果變量是用重復(fù)數(shù)據(jù)操作符DUP說明的,則返回DUP前面的數(shù)值(即重復(fù)次數(shù));如果沒有DUP說明,則返回值總是1。 5)SIZE運(yùn)算符 取數(shù)組變量總字節(jié)數(shù)運(yùn)算符,該運(yùn)算符返回?cái)?shù)組變量所占的總字節(jié)數(shù),相當(dāng)于LENGTH和TYPE兩個(gè)運(yùn)算符返回值的乘積。 5分離運(yùn)算符 1)LOW運(yùn)算符 取地址表達(dá)式或16位絕對(duì)值低8位。 2)HIGH運(yùn)算符 取地址表達(dá)式或16位絕對(duì)值高8位。 3)SHORT運(yùn)算符 當(dāng)轉(zhuǎn)移指令的目標(biāo)地址與該指令之間的距離在128127字節(jié)范圍內(nèi)時(shí),可用SHORT運(yùn)算符進(jìn)行說明,以保證匯編程序能為該

9、指令生成最短的機(jī)器碼,從而提高運(yùn)行效率。 6組合運(yùn)算符 1)“:”運(yùn)算符 用來臨時(shí)給變量、標(biāo)號(hào)或地址表達(dá)式指定一個(gè)段屬性。 2)PTR運(yùn)算符 賦予表達(dá)式指定的類型,新的類型只在所處的指令內(nèi)有效。格式為 類型 PTR 表達(dá)式 3)THIS運(yùn)算符 該運(yùn)算符和“”(或EQU)偽指令連用,把它后面指定的類型屬性或距離屬性賦給當(dāng)前的變量或標(biāo)號(hào)。常用的格式為 變量或標(biāo)號(hào)=THIS 屬性 4)圓括號(hào)“( )”運(yùn)算符 用來改變被括運(yùn)算符的優(yōu)先級(jí)別。 4.3偽指令4.3.1 符號(hào)定義偽指令 1EQU偽指令 格式:名字 EQU 表達(dá)式 功能:將數(shù)值或字符序列與一個(gè)指定的名字等價(jià)。 2“”偽指令 與EQU具有相同的

10、功 3LABEL偽指令 格式:變量或標(biāo)號(hào)名 LABEL 類型 功能:為當(dāng)前存儲(chǔ)單元定義一個(gè)指定類型的變量名或標(biāo)號(hào)。能,區(qū)別僅在于“”定義的符號(hào)允許重新定義。4.3.2 變量定義偽指令 常用的變量定義偽指令有DB、DW、DD、DQ、DT,分別用來定義字節(jié)、單字、雙字、四字及十字節(jié)類型變量。基本應(yīng)用格式如下。 變量名 DBDWDDDQDT 表達(dá)式 其中,變量名是可選的; 中的偽操作指令必須選用一種,表達(dá)式有以下幾種。 1數(shù)值表達(dá)式 這種形式定義的變量具有表達(dá)式給定的數(shù)值初值。 例如: BETA DW 4*10H;BETA為字類型,初值為64 2ASCII字符串 字符串必須用單引號(hào)括起來。DB偽指令

11、為串中每一個(gè)字符分配一個(gè)字節(jié)單元,且自左到右按地址遞增的順序依次存放,字符個(gè)數(shù)不得超過255個(gè)。 例如: MSG DB STUDENT 3地址表達(dá)式 地址表達(dá)式的運(yùn)算結(jié)果是一個(gè)地址,因此只能用DW或DD定義。如果用DW定義,則將原變量或標(biāo)號(hào)的偏移地址定義為新變量;如果用DD定義,則將原變量或標(biāo)號(hào)的偏移地址和段地址分別置入新變量的低位和高位字中。 4?表達(dá)式 表示所定義的變量未指定初值。 例如: BUF DW ?;定義一個(gè)字變量BUF,初值為一隨機(jī)數(shù) 5nDUP表達(dá)式 用于定義重復(fù)變量,DUP是重復(fù)數(shù)據(jù)操作符,n表示重復(fù)次數(shù),括號(hào)內(nèi)的表達(dá)式表示要重復(fù)的內(nèi)容。DUP可以嵌套使用,即圓括號(hào)中的表達(dá)式

12、又是一個(gè)帶DUP的表達(dá)式。4.3.3 段定義偽指令 1SEGMENT和ENDS 1)語(yǔ)句格式 段名 SEGMENT 定位方式 組合方式 分類名 ;段內(nèi)語(yǔ)句 段名 ENDS 其中,段名是為該段起的名字;定位方式、組合方式和分類名是可選的,選兩個(gè)以上時(shí),書寫順序必須與格式中的順序一致。當(dāng)某段作為堆棧段使用時(shí),必須至少有組合方式STACK。 2)組合方式 組合方式指出如何鏈接不同模塊中的同名段,把不同模塊中的同名段按照指定的方式組合起來。既便于程序運(yùn)行,又可以達(dá)到有效使用存儲(chǔ)空間的目的。組合方式有六種。 (1)PUBLIC (2)STACK (3)COMMON (4)MEMORY (5)數(shù)值表達(dá)式

13、(6)不指定方式。 3)定位方式 定位方式通過匯編告知LINK程序如何將組合后的新段定位到存儲(chǔ)器中。定位方式有四種。 (1)PARA方式 (2)BYTE方式 (3)WORD方式 (4)PAGE方式 4)分類名 指令對(duì)分類名相同的各模塊中的所有段是如何處理的呢?LINK程序把各模塊中分類名相同的所有段(段名未必相同)放在連續(xù)的存儲(chǔ)區(qū)域內(nèi),但仍然是不同的段。分類名相同的各個(gè)段在鏈接時(shí),先出現(xiàn)的在前,后出現(xiàn)的在后。分類名應(yīng)用單引號(hào)括起來。 2ORG偽指令 格式:ORG 表達(dá)式 功能:該指令后生成的目標(biāo)代碼,從表達(dá)式提供的偏移地址開始存放。 3GROUP偽指令 格式:組名 GROUP 段名1,段名2,

14、 GROUP是群或組的意思,用來把模塊中若干不同名的段集合成一個(gè)組,并賦予一個(gè)組名,使它們都裝在同一個(gè)邏輯段中(64K)。組內(nèi)各段名間的跳轉(zhuǎn)都可以看作是段內(nèi)跳轉(zhuǎn)。組名和段名一樣,它表示該組的段地址。 4ASSUME 格式:ASSUME段寄存器:段名 ,段寄存器:段名 功能:告訴匯編哪個(gè)段寄存器將為哪個(gè)段名尋址。 4.3.4 過程定義偽指令 子程序通常是具有某種特定功能的程序段,可供其他主程序多次調(diào)用。子程序通常以過程的形式編寫。格式如下。 過程名 PROC 類型 RET 過程名 ENDP (1)過程名是為該過程取的名字。 (2)地址屬性是指過程中第一個(gè)語(yǔ)句的地址。 (3)類型屬性由格式中的類型

15、指明,可以有NEAR和FAR兩種 (4)RET為過程返回指令,不能省略,否則過程將無(wú)法返回。 (5)過程既允許嵌套定義,也允許嵌套調(diào)用。 4.3.5 模塊定義與通信偽指令 1NAME和END 格式: NAME 模塊名 END 標(biāo)號(hào) 2PUBLIC 格式:PUBLIC 符號(hào)表 功能:表示該模塊中符號(hào)表中的符號(hào)常量、變量、標(biāo)號(hào)、過程名等可以被其他模塊 引用。 3EXTRN 格式:EXTRN 符號(hào):類型, 功能:表示在其他模塊中定義過并說明為PUBLIC的那些符號(hào),在本模塊中需要引用。 4INCLUDE 格式:INCLUDE 文件名 功能:把另一個(gè)源文件插入到當(dāng)前源文件中一起匯編,直到該文件中語(yǔ)句匯

16、編完畢,匯編程序繼續(xù)匯編INCLUDE語(yǔ)句之后的語(yǔ)句。 4.4 宏指令 1宏指令的使用 宏指令的使用包括宏定義、宏調(diào)用和宏擴(kuò)展。 1)宏定義 格式:宏指令名 MACRO 形參,形參 ENDM 2)宏調(diào)用 格式:宏指令名 實(shí)參,實(shí)參 3)宏擴(kuò)展 當(dāng)匯編程序掃描到源程序中的宏調(diào)用時(shí),就把對(duì)應(yīng)宏定義的宏體指令序列插入到宏調(diào)用所在處,用實(shí)參替代形參,并在插入的每條指令前面加上一個(gè)“”號(hào),這一過程就稱為宏擴(kuò)展。 2用于宏定義的其他偽指令1)LOCAL格式:LOCAL 符號(hào)表2)PURGE格式:PURGE 宏指令名表3)特殊的宏操作符 (1)%取表達(dá)式操作符。 (2)標(biāo)識(shí)字符串或符號(hào)中的形參操作符。 (3

17、)!標(biāo)識(shí)普通字符操作符。4.5 DOS功能調(diào)用和BIOS中斷簡(jiǎn)介 1基本的輸入與輸出 1)AH01H,輸入一個(gè)字符 2)AH02H,輸出一個(gè)字符 3)AH05H,輸出一個(gè)字符到打印機(jī) 4)AH09H,輸出字符串 5)AH0AH,輸入字符串 2文件管理 文件:文件是具有名字的一維連續(xù)信息的集合。DOS以文件的形式管理數(shù)字設(shè)備和磁盤數(shù)據(jù)。 文件名:在DOS文件系統(tǒng)中,文件名是一個(gè)以零結(jié)尾的字符串,該字符串可包含驅(qū)動(dòng)器名、路徑、文件名和擴(kuò)展名,如:C:SAMPLEMY.ASM。 文件管理:將工作文件名和一個(gè)16位的數(shù)值相關(guān)聯(lián),對(duì)文件的操作不必使用文件名,而直接使用關(guān)聯(lián)數(shù)值,這個(gè)數(shù)值稱為文件稱號(hào)。文件

18、管理從PC-DOS2.0版本開始引入。 3其他 1)AH00H,程序終止 功能:退出用戶程序并返回操作系統(tǒng)。其功能與INT 20H指令相同。 2)AH4CH,進(jìn)程終止 功能:結(jié)束當(dāng)前執(zhí)行的程序,并返回父進(jìn)程DOS或DEBUG(加載并啟動(dòng)它運(yùn)行的程序)。返回時(shí),AL中保留返回的退出碼。4.6 匯編語(yǔ)言程序設(shè)計(jì)方法4.6.1 設(shè)計(jì)步驟 1建立數(shù)學(xué)模型 2確定數(shù)據(jù)結(jié)構(gòu)與算法 3繪制流程圖及編制程序 4調(diào)試 4.6.2 順序程序設(shè)計(jì) 1數(shù)字/字符的輸入和輸出 1)接收鍵盤輸入的一個(gè)字符 功能號(hào):01H 功能:等待接收鍵盤輸入的一個(gè)字符,將字符的ASCII碼送入AL中,同時(shí)在屏幕上顯示該字符。 2)顯示

19、一個(gè)字符 功能號(hào):02H 功能:在當(dāng)前光標(biāo)位置顯示DL中的字符,光標(biāo)右移。 3)接收一個(gè)字符串 功能號(hào):0AH 功能:從鍵盤中接收一字符串,存入DS:DX指示的緩沖區(qū)。 4)顯示一個(gè)字符串 功能號(hào):09H 功能:在當(dāng)前光標(biāo)處顯示由DS:DX指示的,以字符 “$”作為結(jié)束標(biāo)志的一個(gè)字符串。 2代碼轉(zhuǎn)換程序設(shè)計(jì) (1)BCD碼-ASCII碼轉(zhuǎn)換。因?yàn)閿?shù)字09的ASCII碼值等于數(shù)字本身加上30h,所以在轉(zhuǎn)換時(shí)要將數(shù)字值加上30h。 (2)十六進(jìn)制-ASCII碼轉(zhuǎn)換。09的ASCII碼可以加上30h得到,AF的ASCII碼,需要加7。 (3)BCD碼-二進(jìn)制轉(zhuǎn)換。各位分離后,從高位開始反復(fù)乘10加次

20、位。 4.6.3 分支程序設(shè)計(jì) 計(jì)算機(jī)的一個(gè)重要特點(diǎn)在于它能“判斷”情況。計(jì)算機(jī)指令系統(tǒng)中的比較指令、測(cè)試指令和條件轉(zhuǎn)移指令等就反映了這種能力。 例如,程序設(shè)計(jì)中經(jīng)常會(huì)遇到判斷“相等”和“不相等”、“負(fù)”和“正”、“大于”和“小于”、“滿足條件”和“不滿足條件”等。這種判斷使程序的流程不再是一條順序執(zhí)行的直線,而變?yōu)橛蓛蓚€(gè)或多個(gè)分支所組成的倒樹型結(jié)構(gòu),其中每個(gè)分支只有在滿足條件時(shí)才被執(zhí)行。4.6.4 循環(huán)程序設(shè)計(jì) 1循環(huán)程序的構(gòu)成 任何循環(huán)程序都可分為循環(huán)初始部分、循環(huán)體和循環(huán)結(jié)束部分。循環(huán)初始部分為進(jìn)入循環(huán)做必要的準(zhǔn)備工作。循環(huán)體是程序中重復(fù)執(zhí)行的程序段,由兩部分組成。 (1)循環(huán)工作部分

21、(2)循環(huán)參數(shù)修改及循環(huán)控制部分。 2循環(huán)的類型 循環(huán)體的結(jié)構(gòu)依照問題的不同,一般可以分為兩種類型:先判斷后處理;先處理后判斷。 3控制循環(huán)次數(shù)的方法 (1)用計(jì)數(shù)控制循環(huán)。 (2)用條件控制循環(huán)。 (3)多重循環(huán)程序設(shè)計(jì)。 4.6.5 子程序設(shè)計(jì) 1子程序的組成 (1)保護(hù)現(xiàn)場(chǎng)(一些將要在子程序運(yùn)行時(shí)被破壞的寄存器的內(nèi)容)。 (2)依入口參數(shù)從指定位置取要加工處理的信息。 (3)加工處理。 (4)依出口參數(shù)向指定位置送經(jīng)加工處理后的結(jié)果信息。 (5)返回調(diào)用程序。 2子程序調(diào)用 子程序調(diào)用可分為段內(nèi)調(diào)用和段間調(diào)用兩種情況。段內(nèi)調(diào)用是主程序和子程序處在同一代碼段中,此時(shí)只需保存主程序中調(diào)用指令

22、的下一條指令的偏移地址,并將子程序的入口地址送入IP,從而轉(zhuǎn)去執(zhí)行子程序。子程序返回時(shí)再將保存的斷點(diǎn)地址送入IP,即可繼續(xù)執(zhí)行主程序。段間調(diào)用則必須保存好斷點(diǎn)的段地址和偏移地址,并將子程序入口的偏移地址和段地址分別送入IP和CS。返回時(shí)需將保存的偏移地址和段地址重新送回IP和CS。 4.7 宏匯編程序設(shè)計(jì)4.7.1 宏匯編 1宏定義 宏定義的一般格式為: 宏指令名 MACRO形式參數(shù)列表 宏體 ENDM 2宏調(diào)用 宏調(diào)用格式如下: 宏指令名 實(shí)際參數(shù)列表 宏調(diào)用中的實(shí)參應(yīng)與宏定義中的形參一一對(duì)應(yīng),實(shí)參之間應(yīng)用逗號(hào)隔開。 3宏體內(nèi)標(biāo)號(hào)的使用 其格式為 LOCAL 標(biāo)號(hào)名,標(biāo)號(hào)名 4宏定義中的參數(shù)

23、 宏定義中的參數(shù)可以是操作數(shù)也可以是操作碼,為了使宏定義中的參數(shù)更加靈活,匯編程序提供了一些宏操作符。這里介紹一下宏定義的變?cè)惺褂?操作符的情況,它的格式是: %表達(dá)式4.7.2 重復(fù)匯編 1重復(fù)偽操作 重復(fù)偽操作的格式為 REPT 表達(dá)式 (重復(fù)塊) ENDM 其中表達(dá)式的值用來確定重復(fù)塊的重復(fù)次數(shù),表達(dá)式中如包含外部或未定義的項(xiàng)則匯編指示出錯(cuò)。 2不定重復(fù)偽操作 1)IRP偽操作 格式為 IRP啞元, (重復(fù)塊) ENDM 2)IRPC偽操作 格式為 IRPC啞元,字符串(或) (重復(fù)塊) ENDM4.7.3 條件匯編 匯編程序能根據(jù)條件把一段源程序包括在匯編語(yǔ)言程序內(nèi)或者把它排除在外,

24、這里就用到條件匯編這樣的偽指令。 格式為 IF XX argument ;自變量滿足給定條件匯編此塊 ELSE ;自變量不滿足給定條件匯編此塊 ENDIF4.8 匯編語(yǔ)言上機(jī)及調(diào)試過程4.8.1 匯編過程 1源文件的建立和匯編 這個(gè)過程也稱為源代碼錄入。 2匯編過程 匯編過程是把編寫的正確的源代碼編譯為機(jī)器語(yǔ)言、程序清單及交叉引用表的目標(biāo)文件。 3鏈接為可執(zhí)行文件 即鏈接為.EXE或.COM文件。在DOS提示符下輸入:LINK filename并按Enter鍵。4.8.2 DEBUG調(diào)試 1DEBUG的調(diào)用 用于調(diào)試程序的命令格式: DEBUG FILENAME.? 其中,F(xiàn)ILENAME是文件名,?是擴(kuò)展名。例如,已編譯好了一個(gè)文件,它的名稱為djx.exe,要對(duì)它進(jìn)行調(diào)試時(shí)就在DOS提示符下輸入DEBUG djx.exe,并按Enter鍵執(zhí)行,便可見到提示符,如無(wú)任何提示說明正確,則可進(jìn)行調(diào)試。 2DEBUG常用命令 1)D命令 功能:顯示指定內(nèi)存單元的內(nèi)容,一般用來查看DS數(shù)據(jù)段的內(nèi)容。 格式:-d 地址;表示從地址指定的內(nèi)存單元顯示128個(gè)字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論