2014計算機三級《PC技術》考試要點: 80x86宏匯編語言的數據和
● 二進制常數
● 十進制常數
● 八進制常數
● 十六進制常數
● 十進制科學記數法
● 串常數
(二)變量
變量用于定義存儲器中的數據,這些數據在程序運行過程中可隨機修改。為了便于對變量的訪問,變量常常以變量名的形式出現在程序中。變量名可以認為是存放數據的存儲單元號地址。變量的三個屬性是:
(1)段屬性
指變量所在段的段基址。
(2)偏移地址屬性
指變量所在段中的偏移量,即變量所在地址與段基址之間的字節距離。
(3)類型屬性
指變量占用存儲單元的字節數。占用1個字節的稱為字節變量,其類型BYTE;占用2個字節的稱為字變量,其類型為WORD;占用4個字節的稱為雙字變量,其類型為DWORD。此外,還有8字節(即4個字)變量和10字節變量,它們分別占用8個字節存儲單元和10個字節存儲單元,其類型為QWORD和TBYTE。
變量可以用偽指令DB、DW、DD、DZ、DT進行定義。
(三)標號
標號是給指令性語句所在地址取的名字,和變量一樣,標號有三個屬性:
(1)段屬性
(2)偏移地址屬性
(3)類型屬性
(四)表達式和運算符
宏匯編中有三種運算符:算術運算符、邏輯運算和關系運算符。
1.算術運算符
算術運算符包括加(+)、減(-)、乘(*)、除(/)、模除(MOD)、左移(SHL)和右移(SHR)七種。+、-、*、/是常用的運算符,參加運算的數和運算結果均為整數。除法運算的結果取商的整數部分,而模除的運算結果只取它的余數。左移或右移運算符可使二進制數左移或右移若干位,相當于二進制數進行乘法或除法運算,因此也把它們作為算術運算符。
2.邏輯運算符
邏輯運算符包括AND(與)、OR(或)、XOR(異或)、NOT(非)四種。它們只適用于對常量進行邏輯運算。注意,表達式中的邏輯運算符只能出現在語言的操作數部分并且是在匯編時完成運算的。
3.關系運算符
關系運算符包括EQ(相等)、NE(不等)、LT(小于)、(GT)大于、LE(小于或等于)、GE(大于或等于)6種運算。關系運算符是用于比較兩類的大小,要求兩個操作數都是數字或者是同一段中的兩個地址值。比較的結果用邏輯值表示。關系運算符與邏輯運算符常結合在一起使用。
4.數值回送運算符
數值回送運算符分為兩類:一類是將指定的變量名或標號地址的有關內容賦給指令,如OFFSET和SEG;另一類有3種:TYPE,LENGTH和SIZE,將變量名或標號的一些特征傳送給指令。
(1)OFFSET
格式: OFFSET 變量或標號
匯編程序將回送變量或標號所在地址的偏移量給該指令。
(2)SEG
格式: SEG 變量或標號
匯編程序將回送變量或標號所在地址的段地址給該指令。
(3)TYPE格式: TYPE 變量或標號
用來確定標號或變量的類型,并根據類型作為一個操作數回送給指令。匯編中規定,如果是變量,則根據DB、DW、DD、DQ和DT分別用數值1、2、4、8和10回送給指令。如果是標號,根據標號的類型用-1和-2分別代表NEAR和FAR。
(4)LENGTH
格式: LENGTH 變量名
用來回送變量名下定義的數據項數目。值得注意的是它只對用DUP定義的數據起作用,凡沒使用DW的回送值均為1。
(5)SIZE
格式: SIZE 變量名
用來回送為該變量名分配的字節數。可見SIZE應是TYPE和LENGTH值的乘積。
5.指定屬性操作符
指定屬性操作符有PTR和THIS等6種。它們的功能是建立一些新的存儲器地址操作數,即新的變量、標號或地址表達式。
(1)PTR
格式:類型 PTR 表達式
說明:類型可以是BYTE、WORD、DWORD、NEAR、FAR等,表達式可以是某個變量、標號或地址表達式。
功能:建立一個新的存儲器地址操作數,但不分配內存。新操作數與PTR右邊的存儲器地址作數有相同的段地址和偏移量,類型為PTR左邊規定的類型。因些,實際上,PTR操作符可給變量、標號或地址表達式定義新的名字和類型。
(2)THIS
格式:THIS 類型
功能:定義當前單元類型的操作符。
(3)SHORT
格式:JMP SHORT DES
功能:確定轉移地址的屬性,用在JMP指令中,規定轉移范圍在-128~+127個字節內。
(4)HIGH和LOW
兩個字節選取操作符。在指令中用在字操作數之前,指定取該字的高字節或低字節參與運算。
(5)段屬性
利用“段寄存器:地址表達式”的形式改變操作數的地址表達式所屬段的特性。