MASM匯編語(yǔ)言還有兩種特殊的數(shù)據(jù)結(jié)構(gòu)形式:結(jié)">

女班长扒开内裤让我们摸视频,麻豆精产国品一二三产区区别免费,鲁一鲁一鲁一鲁一澡,久久国产精品99夜夜嗨,久久午夜无码鲁丝片秋霞

大學(xué)生之家,大學(xué)生資訊發(fā)布平臺(tái)
大學(xué)生之家

匯編語(yǔ)言特殊的數(shù)據(jù)結(jié)構(gòu)形式

    發(fā)布時(shí)間:2018-09-17    閱讀:
    來(lái)源:大學(xué)生之家
數(shù)據(jù)是指令中操作數(shù)的基本組成部分,數(shù)據(jù)的形式對(duì)語(yǔ)句格式有很大的影響。匯編程序能識(shí)別的數(shù)據(jù)項(xiàng)有常數(shù),變量和標(biāo)號(hào)。

  MASM匯編語(yǔ)言還有兩種特殊的數(shù)據(jù)結(jié)構(gòu)形式:結(jié)構(gòu)和記錄。

  1.常數(shù)

  常數(shù)是沒(méi)有任何屬性的純數(shù)值。在匯編時(shí)常數(shù)的值已確定,并且在程序運(yùn)行過(guò)程中,常數(shù)的值不會(huì)改變。常數(shù)分為兩種類(lèi)型:數(shù)值型常數(shù)和字符串型常數(shù)。

  1)數(shù)值型常數(shù)

 。1)二進(jìn)制數(shù):以字母B結(jié)尾,如01011101B。

 。2)八進(jìn)制數(shù):以字母Q或O結(jié)尾,如723Q,21O。

 。3)十進(jìn)制數(shù):以字母D(或省略)結(jié)尾,如1995D,3508。

 。4)十六進(jìn)制數(shù):以字母H結(jié)尾,例如:3A40H,5BH。

  2)字符串型常數(shù)

  用單引號(hào)括起來(lái)的字符串,如‘ABCD’,‘S|123456’等。每個(gè)字符在機(jī)內(nèi)以ASCII碼存放,例如‘A’在內(nèi)存中為41H。

  2.變量

  變量用來(lái)定義存放在存儲(chǔ)器單元中的數(shù)據(jù)。

  當(dāng)存儲(chǔ)單元中的數(shù)據(jù)在程序運(yùn)行中隨時(shí)可以修改時(shí),這個(gè)存儲(chǔ)單元中的數(shù)據(jù)可以用變量來(lái)定義。為了便于對(duì)變量的訪問(wèn),要給變量取一個(gè)名字稱(chēng)為變量名。變量名應(yīng)符合標(biāo)識(shí)符的規(guī)定,它是存放數(shù)據(jù)存儲(chǔ)單元的符號(hào)地址。

  定義變量可用變量定義偽指令(后面將介紹)。

  經(jīng)過(guò)定義的變量,有三重屬性。

  1)段屬性(SEG)

  表示變量存放在某個(gè)邏輯段中(通常指變量所在段的段基址)。如上例中,變量DATA1、DATA2、DATA3放在邏輯段DATA中。當(dāng)指令中要對(duì)這些變量進(jìn)行存取操作時(shí),需將段基址送至段寄存器中。

  2)偏移地址屬性(OFFSET)

  表示變量在所在段的偏移地址,以字節(jié)數(shù)表示。例如,上面例子中DATA1的偏移地址為0,DATA2的偏移地址為1,DATA3的偏移地址為2。段基址和偏移地址組成變量的邏輯地址。

  3)類(lèi)型屬性(TYPE)

  表示變量占用存儲(chǔ)單元的字節(jié)數(shù),這一屬性是由數(shù)據(jù)定義偽指令來(lái)規(guī)定的。變量可分別定義為8位,16位,32位,48位,64位和80位數(shù)據(jù)。

  3.標(biāo)號(hào)

  標(biāo)號(hào)是指令語(yǔ)句所在地址的符號(hào)表示。標(biāo)號(hào)表明該指令在內(nèi)存中的位置,常作為轉(zhuǎn)移指令的操作數(shù),確定程序轉(zhuǎn)移的目標(biāo)地址。

  與變量類(lèi)似,每個(gè)標(biāo)號(hào)也有三重屬性,如下所述。

 。1)段屬性(SEG):該標(biāo)號(hào)所在段的段基址。

 。2)偏移地址屬性(OFFSET):該標(biāo)號(hào)所在段的偏移地址。

  (3)距離屬性(DISTANCE):當(dāng)標(biāo)號(hào)作為轉(zhuǎn)移類(lèi)指令的操作數(shù)時(shí),可在段內(nèi)或段間轉(zhuǎn)移,這時(shí)它們的距離屬性不同。

  NEAR:只允許在本段內(nèi)轉(zhuǎn)移;

  FAR:允許在段間轉(zhuǎn)移。

  設(shè)置標(biāo)號(hào)距離可用隱含方式或偽指令LABEL定義其距離屬性?xún)煞N方式。

 。1)隱含方式:標(biāo)號(hào)后面跟“”隱含其距離屬性為NEAR,只能在本段中轉(zhuǎn)移。

 。2)用LABEL偽指令定義距離屬性。

  4.表達(dá)式

  表達(dá)式是操作數(shù)的常見(jiàn)形式,表達(dá)式由常數(shù)、變量、標(biāo)號(hào)及連接它們的運(yùn)算符組成。表達(dá)式的運(yùn)算不由CPU完成,而是在程序匯編過(guò)程中進(jìn)行計(jì)算確定,并將表達(dá)式的結(jié)果作為操作數(shù)參加指令所規(guī)定的操作。MASM允許使用的表達(dá)式分為以下兩類(lèi)。

  1)數(shù)字表達(dá)式

  數(shù)字表達(dá)式的結(jié)果是數(shù)字。

  例如:MOV DX,(6*A-B)/2

  指令的源操作數(shù)(6*A-B)/2是一個(gè)表達(dá)式。若設(shè)變量A的值為1,變量B的值為2,則此表達(dá)式的值為(6*1-2)/22,是一個(gè)數(shù)字結(jié)果,此表達(dá)式是數(shù)字表達(dá)式。

  2)地址表達(dá)式

  地址表達(dá)式的結(jié)果是一個(gè)存儲(chǔ)單元的地址。當(dāng)這個(gè)地址中存放的是數(shù)據(jù)時(shí),稱(chēng)為變量;當(dāng)這個(gè)地址中存放的是指令時(shí),則稱(chēng)為標(biāo)號(hào)。

  當(dāng)在指令的操作數(shù)部分用到地址表達(dá)式時(shí),應(yīng)當(dāng)注意其物理意義。例如,兩個(gè)地址相乘或相除是無(wú)意義的,兩個(gè)不同段的地址相加減也是無(wú)意義的。經(jīng)常使用的是地址±(加減號(hào))數(shù)字量。如SUM+l是指向SUM字節(jié)單元的下一個(gè)單元的地址。

  例如:MOV AX, ES:[BX+SI+1000H]

  BX+SI+1000H為地址表達(dá)式,結(jié)果是一個(gè)存儲(chǔ)單元的地址。
計(jì)算機(jī)學(xué)習(xí)推薦
  • 掃一掃 分享悅讀 ➤
  • 掃碼可以分享到微信 qq朋友圈
計(jì)算機(jī)學(xué)習(xí)熱點(diǎn)