資源描述:
《匯編語言中常用的偽指令檔》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、匯編語言中常用的偽指令分類:?軟件相關(guān)2013-01-2320:13?515人閱讀?評論(0)?收藏?舉報areaequ偽指令常用匯編語言匯編語言中,指令語句在源程序匯編時會產(chǎn)生可供計算機(jī)執(zhí)行的指令代碼,即目標(biāo)代碼。匯編程序除指令語句外,還需要提供一些指令,用于輔助源程序的匯編。比如指定程序或數(shù)據(jù)存放的起始地址,為數(shù)據(jù)分配一段連續(xù)的內(nèi)存單元等。這些指令在匯編時并不生成目標(biāo)代碼,不影響程序執(zhí)行,因此稱之為偽指令。本文簡單總結(jié)了常用的偽指令,如下。1、EQU(Equate)一般格式為:?標(biāo)號:???????
2、?EQU?????????操作數(shù)指令功能為將操作數(shù)賦予標(biāo)號,兩邊的值完全相等。使用EQU偽指令給一個標(biāo)號賦值后,此標(biāo)號在整個源文件中值固定。AREA:??????EQU????????1000H???????????????;將標(biāo)號AREA賦值為1000H?2、ORG(Origin)一般格式為:????????ORG?xxxxH(絕對地址或標(biāo)號)XxxxH決定此語句后第一條指令(或數(shù)據(jù))的地址。該段源程序或數(shù)據(jù)被連續(xù)存放在此后的地址內(nèi),直到下一條ORG指令為止。ORG?????????8000H????
3、???????????;此后目標(biāo)代碼存儲在存儲器中以0x8000h開始的地址空間中。ADD????R1,?#1MOV????????R2,?#2?3、DB(DefineByte)一般格式為:????????標(biāo)號:????DB???????字節(jié)常數(shù)或字符或表達(dá)式標(biāo)號字段可有可無,字節(jié)常數(shù)或字符是指一個字節(jié)數(shù)據(jù)。此偽指令的功能是把字節(jié)常數(shù)或字節(jié)串存放至內(nèi)存連續(xù)的地址空間中。ORG?????????8000HDATA1:?DB???43H,09H,08HDATA2:?DB???07H偽指令DB指定了43H,0
4、9H,08H?????順序存放在8000H開始的存儲單元中,DATA2中的07H緊挨著DATA1的地址空間存放,即07H存放在8003H單元中。注:DW(DefineWord)指令定義與DB類似,區(qū)別在于DW定義一個字,DB定義一個字節(jié)。?4、END一般格式為:????????標(biāo)號:????END?????????地址或標(biāo)號地址或標(biāo)號可以忽略。此偽指令用于指示匯編語言程序段結(jié)束。因此一個源程序中僅有一個END,且一般放在程序最后。若END放在程序中間,則END后面的語句將不再被匯編。?5、AREA一般格
5、式為:????????標(biāo)號????????sectionname{,attr}{,attr}……Sectionname指定節(jié)的名稱。節(jié)是不可分的已命名獨立代碼模塊或數(shù)據(jù)模塊,由連接器進(jìn)行處理。Attr則是一個或多個用逗號分隔的節(jié)的屬性。屬性有多種,比如:ALIGN=expression。默認(rèn)條件下節(jié)以四字節(jié)邊界對齊。Expression取值范圍為0-31.表征的對齊邊界是2的expression平方。CODE?包含機(jī)器指令。默認(rèn)值為READONLY????DATA????????包含數(shù)據(jù)但不包含指令。默
6、認(rèn)值為READWRITEREADONLY??????指示此節(jié)只讀。代碼區(qū)域默認(rèn)值。READWRITE????指示此節(jié)可讀可寫。數(shù)據(jù)區(qū)域默認(rèn)值。AREA??Example,?DATA,READWRITE?????????????????????????;data以上代碼定義了名為Example的可讀寫數(shù)據(jù)節(jié)。?6、PUBLIC一般格式為:????????PUBLIC????標(biāo)識符1,標(biāo)識符2……在開發(fā)較為復(fù)雜的應(yīng)用程序時,其執(zhí)行文件的生成一般由多個目標(biāo)文件鏈接而成。多個目標(biāo)文件之間一般存在數(shù)據(jù)交互,匯編語
7、言中通過偽指令PUBLIC及EXTRN來解決模塊之間的聯(lián)系。PUBLIC用來說明當(dāng)前模塊中可被其他模塊所引用的公共標(biāo)識符。PUBLIC????_STARTUP聲明標(biāo)識符_STARTUP可被其他模塊所引用。?7、EXTRN或EXTERN一般格式為:????????EXTRN?????標(biāo)識符1:類型1,標(biāo)識符2:類型2…….表明標(biāo)識符1、2是外部標(biāo)識符,其已經(jīng)在其他模塊中被定義為類型1、類型2等。在一個模塊中,可用多條EXTRN來說明本模塊中所引用的外部標(biāo)識符。實質(zhì)為匯編器提供一個并未在當(dāng)前匯編文件中定義的
8、名稱。注:EXTRN所聲明的標(biāo)識符必須在其定義的模塊中被PUBLIC聲明為公共標(biāo)識符,且聲明的標(biāo)識符類型需與該標(biāo)識符定義類型一致。類似:EXPORT或GLOBAL聲明一個符號,鏈接器可以使用此符號解析不同對象和庫文件中的符號引用。即,可使其他文件中的代碼能夠訪問當(dāng)前文件中的符號。?8、PROC一般格式為:??????????????????<過程名>??????????????????PROC???????[類型]此指令為過程定義指令。過程