資源描述:
《匯編語言第3章宏匯編語言》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、母親卡第3章宏匯編語言3.1宏匯編語言格式3.2匯編語句表達(dá)式3.3偽指令3.4DOS系統(tǒng)功能調(diào)用3.5綜合舉例開始3.1宏匯編語言格式3.1.1指令語句格式3.1.2偽指令語句格式返回本章首頁3.1.1指令語句格式指令語句的一般格式如下:[標(biāo)號:]指令助記符操作數(shù);注釋1.標(biāo)號:標(biāo)號是機(jī)器指令語句存放地址的符號表示,代表該指令目標(biāo)代碼的第一個字節(jié)地址,后面必須緊跟冒號“:”。2.指令助記符:指令助記符為語句的核心成分,表示了該語句的操作類型。3.操作數(shù):操作數(shù)表示指令助記符的操作對象。4.注釋:注釋均以分號
2、開始,它可占一行或多行,一般放在一條語句的后面。返回本節(jié)3.1.2偽指令語句格式偽指令語句格式如下:[符號名]偽指令符操作數(shù);注釋1.符號名:符號名是偽指令語句的一個可選項。2.偽指令符:偽指令符指定匯編程序要完成的具體操作,如數(shù)據(jù)定義偽指令DB、DW、DD,段定義偽指令SEGMENT,假定偽指令A(yù)SSUME等。3.操作數(shù):偽指令后面的操作數(shù)可以是常數(shù)、字符串、變量、表達(dá)式等,其個數(shù)由具體的偽指令決定,各個操作數(shù)之間必須以“逗號”分隔。4.注釋:偽指令的注釋必須以“;”開始,其作用同指令語句中的注釋部分。返回
3、本節(jié)3.2匯編語句表達(dá)式3.2.1常量3.2.2變量3.2.3標(biāo)號3.2.4表達(dá)式與運算符3.2.5運算符的優(yōu)先級返回本章首頁3.2.1常量1.?dāng)?shù)值常量2.字符串常量1.?dāng)?shù)值常量表3.1各種形式數(shù)字常量格式對照表2.字符串常量字符串常量是用單引號或雙引號引起來的一個或多個字符。字符串常量是以各字符的ASCⅡ碼表示的。如‘A’用41H表示,字符串‘A1B2’用41H,31H,42H,32H表示。返回本節(jié)3.2.2變量1.變量2.變量的定義(1)段屬性(2)偏移地址屬性(3)類型屬性1.變量表達(dá)式項是給變量或指定
4、存儲單元賦予初值,它有以下幾種形式:(1)數(shù)值表達(dá)式(2)字符串表達(dá)式(3)地址表達(dá)式(只適用DW和DD兩個偽指令)(4)?表達(dá)式(5)帶DUP的表達(dá)式2.變量的定義數(shù)據(jù)定義偽指令可以為一個或連續(xù)的存儲單元設(shè)置數(shù)值初值?!纠?.1】為數(shù)據(jù)段分配存儲單元。DATASEGMENTADB11H,12H,13HBDW1122H,3344HCDD12345678HDATAENDS上述變量的存儲單元分配及初始化情況如下圖3.1所示。(1)數(shù)值表達(dá)式圖3.1數(shù)據(jù)段中數(shù)據(jù)存儲分配圖字符串表達(dá)式中的字符串必須用引號引起來。DB
5、、DW、DD偽指令將字符串中的各字符均以ASCⅡ碼形式存放在相應(yīng)的存儲單元,但表示形式各不相同?!纠?.2】為字符串分配存儲單元。DATASEGMENTSTR1DB‘1234’STR2DW‘AB’,‘CD’,‘A’STR3DD‘AB’DATAENDS其存儲單元分配如下圖3.2所示。(2)字符串表達(dá)式圖3.2數(shù)據(jù)段存儲分配圖(3)地址表達(dá)式(只適用DW和DD兩個偽指令)如果該地址表達(dá)式為一變量(或標(biāo)號)名,用DW偽指令則是取它的偏移地址來初始化變量,用DD偽指令則是取它的段首址和偏移地址來初始化變量。例如:BU
6、F1DWABUF2DDB在表達(dá)式中使用重復(fù)數(shù)據(jù)操作符DUP,可以為連續(xù)的存儲單元提供重復(fù)數(shù)據(jù),其格式為:NDUP(表達(dá)式)其中N為重復(fù)因子,只能取正整數(shù),表示定義了N個重復(fù)數(shù)據(jù)存儲單元,其類型由它前面的數(shù)據(jù)定義偽指令確定,而每個數(shù)據(jù)存儲單元中的初值由DUP后面圓括號中的表達(dá)式給定。例如:BUFDB100DUP(0)以上語句定義了以BUF為首址,大小為100個字節(jié),初值為0的數(shù)據(jù)存儲單元。(5)帶DUP的表達(dá)式返回本節(jié)3.2.3標(biāo)號標(biāo)號是一條指令語句的符號地址。在匯編源程序中,只有在需要轉(zhuǎn)向一條指令語句時,才為
7、該指令語句設(shè)置標(biāo)號,以便在轉(zhuǎn)移類指令(含子程序調(diào)用指令)中直接引用這個標(biāo)號。因此,標(biāo)號可作為轉(zhuǎn)移類指令的操作數(shù),即轉(zhuǎn)移地址。【例3.3】符號地址表示。┆NEXT:MOVAL,[SI];帶標(biāo)號NEXT的指令┆DECCXJNENEXT;標(biāo)號NEXT作轉(zhuǎn)移指令的操作數(shù)1.段屬性2.偏移地址屬性3.類型屬性標(biāo)號也具有三種屬性返回本節(jié)3.2.4表達(dá)式與運算符1.算術(shù)運算符2.邏輯運算符3.關(guān)系運算符4.屬性運算符5.?dāng)?shù)值返回運算符算術(shù)運算符包括:+(加)、-(減)、*(乘)、/(除)、MOD(求模)、SHL(左移)、S
8、HR(右移)幾種,它既可以用于數(shù)值表達(dá)式又可用于地址表達(dá)式。1.算術(shù)運算符┆NUM1EQU25*4–50;NUM1=50NUM2EQUNUM1/7;NUM2=7NUM3DBNUM1MOD7;NUM3=1VAR1DB1,2,3,4,5VAR2DB‘12345’NUM4EQUVAR2-VAR1;NUM4=5NUM5EQU0FH┆MOVAL,NUM5SHL4;(AL)=11110000BMOVBL,NUM