資源描述:
《宏匯編語(yǔ)言程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、第3章宏匯編語(yǔ)言程序設(shè)計(jì)3.1教學(xué)要求·熟悉匯編語(yǔ)言程序的結(jié)構(gòu)及其語(yǔ)句的結(jié)構(gòu)?!な煜沃噶罴捌涔δ堋!ふ莆諈R編語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)方法,即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的設(shè)計(jì)?!な煜み^(guò)程(子程序)和宏指令的定義及使用規(guī)則?!な煜OS調(diào)用功能及其規(guī)則。3.2內(nèi)容提要3.2.1匯編語(yǔ)言的語(yǔ)句結(jié)構(gòu)匯編語(yǔ)言程序是由語(yǔ)句組成的。語(yǔ)句的格式如下[名稱[:]]操作助記符操作數(shù)[,操作數(shù)][;注釋]匯編語(yǔ)言語(yǔ)句的分成包含名稱、操作助記符、操作數(shù)、注釋四個(gè)域。語(yǔ)句格式“[]”中的內(nèi)容為可選項(xiàng),根據(jù)實(shí)際情況而使用。1.操作助記符域操作助記符域是指令中唯一不可缺少的部分,由指令、偽指令或宏指令構(gòu)成。
2、(1)指令指令是計(jì)算機(jī)可以執(zhí)行的基本操作,匯編時(shí)可以轉(zhuǎn)換為機(jī)器代碼。操作助記符為指令的語(yǔ)句稱為指令語(yǔ)句,每條指令語(yǔ)句在執(zhí)行時(shí)都對(duì)應(yīng)一條機(jī)器指令。例如MOV、ADD、SUB等皆為指令。(2)偽指令偽指令是在匯編語(yǔ)言源程序中使用的指令,用來(lái)定義段、定義數(shù)據(jù)、分配存儲(chǔ)器、指示程序結(jié)束等。偽指令語(yǔ)句只在匯編語(yǔ)言源程序中使用,不會(huì)轉(zhuǎn)換成機(jī)器代碼,機(jī)器不能執(zhí)行。例如,SEGMENT、DB、END等皆是偽指令。(3)宏指令宏指令是由用戶自己定義的指令。2.名稱域名稱包括標(biāo)號(hào)和變量。名稱在匯編語(yǔ)言源程序中定義和使用,名稱應(yīng)以字母開(kāi)頭,后跟若干字母、數(shù)字或特殊符號(hào)(“_”、“.”、“?”、“$
3、”、“@”)組成,符號(hào)個(gè)數(shù)不超過(guò)31個(gè)。(1)標(biāo)號(hào)標(biāo)號(hào)在代碼段中定義和使用,標(biāo)號(hào)后面需要加“:”號(hào),例如“START:”。標(biāo)號(hào)用來(lái)表示代碼段中某條語(yǔ)句的地址,因此也稱為代碼的符號(hào)地址。利用標(biāo)號(hào)可以方便實(shí)現(xiàn)程序的轉(zhuǎn)移和循環(huán)的控制。標(biāo)號(hào)有段屬性、偏移屬性和類型屬性。段屬性代表定義標(biāo)號(hào)的段地址;偏移屬性代表標(biāo)號(hào)的偏移地址;類型屬性代表標(biāo)號(hào)的使用范圍,NEAR類型屬性的標(biāo)號(hào)只能在段內(nèi)使用,而FAR類型屬性的標(biāo)號(hào)可以在不同段之間使用。(2)變量變量在除代碼段以外的其他段(DS,SS,ES)定義,后不跟“:”號(hào)。變量用來(lái)表示數(shù)據(jù)的地址,因此也稱為數(shù)據(jù)的符號(hào)地址。變量定義格式為變量名變量屬
4、性偽指令表達(dá)式變量屬性偽指令包括DB(定義變量屬性為字節(jié))、DW(定義變量屬性為字)、DD(定義變量屬性為雙字)、DQ(定義變量屬性為四字)、DT(定義變量屬性為五字)。表達(dá)式包括①一個(gè)或多個(gè)常量或表達(dá)式,中間以“,”號(hào)分隔。例如DAT1DB20H,30H,40H;②用單引號(hào)括起來(lái)的字符或字符串。例如DAT2DB’A’,’1234’;用DB偽指令定義字符串時(shí),字符串包含的字符個(gè)數(shù)不受限制,而用DW、DD、DQ和DT偽指令定義字符串時(shí),字符個(gè)數(shù)不允許超過(guò)2個(gè)。③一個(gè)“?”號(hào),表示數(shù)據(jù)未定,常用于預(yù)留存儲(chǔ)空間。例如DAT3DW?;④重復(fù)方式。重復(fù)方式的格式為重復(fù)次數(shù)DUP(表達(dá)式
5、);例如,用DAT4變量名預(yù)留256個(gè)字空間的定義語(yǔ)句為DAT4DW256DUP(?)。變量定義的目的是確定變量的屬性和安排數(shù)據(jù)的存儲(chǔ)單元。變量的屬性包括段屬性SEG(定義變量的段地址)、偏移屬性O(shè)FFSET(定義變量的偏移地址)、類型屬性TYPE(表示一個(gè)變量數(shù)據(jù)所占的字節(jié)數(shù))、長(zhǎng)度屬性LENGTH(表示定義變量的重復(fù)次數(shù),在DUP重復(fù)方式下同一變量名的長(zhǎng)度屬性為重復(fù)次數(shù),非重復(fù)方式定義的變量長(zhǎng)度均為1)、大小屬性SIZE(SIZE=TYPE×LENGTH)。變量的類型屬性包括字節(jié)類型BYTE(占1字節(jié))、字類型WORD(占2字節(jié))、雙字類型DWORD(占4字節(jié))、四字類型
6、(占8字節(jié))和五字類型(占10字節(jié))。例如:DAT1DW10DUP(10H),TYPEDAT1的值為2。3.操作數(shù)域操作數(shù)是參與操作的數(shù)據(jù)或數(shù)據(jù)所在的地址。操作數(shù)包括常數(shù)、變量和表達(dá)式。(1)常數(shù)常數(shù)有數(shù)值常數(shù)和用單引號(hào)括起來(lái)的字符常數(shù)。數(shù)值常數(shù)可用二進(jìn)制數(shù)(后綴加B)、十進(jìn)制數(shù)(后綴加D或不加后綴)、十六進(jìn)制數(shù)(后綴加H)和八進(jìn)制數(shù)(后綴加Q)。例如MOVAL,’A’;MOVAL,20H;MOVAL,B;都是用常數(shù)作為操作數(shù)的程序語(yǔ)句。(2)變量變量必須在定義后才能使用。由于變量是符號(hào)地址,因此變量代表的操作數(shù)表示數(shù)據(jù)所在的地址。例如,在程序語(yǔ)句“MOVAL,DAT1”中,
7、是用變量DAT1來(lái)表示操作數(shù)的。(3)表達(dá)式表達(dá)式是用運(yùn)算操作符將常量、變量連接起來(lái)的式子。①算術(shù)運(yùn)算操作符。算術(shù)運(yùn)算操作符有+(加)、-(減)、*(乘)、/(除)、MOD(求余)、SHL(左移)、SHR(右移)。②邏輯操作符。邏輯操作符有AND(與)、OR(或)、NOT(非)、XOR(異或)。③關(guān)系操作符有EQ(等于)、NE(不等于)、LT(小于)、GT(大于)、LE(小于等于)、GE(大于等于)。關(guān)系表達(dá)式的結(jié)果為邏輯值。當(dāng)關(guān)系成立時(shí),結(jié)果為全“1”,即為“真”;當(dāng)關(guān)系不成立時(shí),結(jié)果為全“0”,即為