匯編語言的基本語法_第1頁
匯編語言的基本語法_第2頁
匯編語言的基本語法_第3頁
匯編語言的基本語法_第4頁
匯編語言的基本語法_第5頁
已閱讀5頁,還剩79頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

匯編語言的基本語法1整理ppt1.1.匯編語言源程序的格式DATA SEGMENTAT2000HARRAY DBa1,a2,a3,…a10(a1~a10為立即數(shù))COUNT EQU$-ARRAYSUM DW?DATA ENDSSTACK SEGMENTPARASTACK‘STACK’STAK DB10DUP(?)TOP EQULENGTHSTAKSTACK ENDS2整理pptCODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA MOVDS,AX MOVAX,0 MOVDI,OFFSETSUM MOVBX,OFFSETARRAY MOVCX,COUNTLOP:ADDAL,[BX] ADCAH,0 INCBX LOOPLOP MOV[DI],AX MOVAH,4CH INT 21HCODE ENDS END START3整理ppt

匯編語言源程序格式的特點是: 1.分段結(jié)構(gòu) 2.語句行 匯編語言程序的語句有兩類: (1)指令性語句 (2)指示性語句4整理ppt匯編語言源程序語句的格式

匯編語言源程序中的每個語句可以由四項組成,格式如下:

[名字]操作操作數(shù)[;注釋]

其中:

名字項是指一個標號或變量。

操作項是一個操作碼的助記符,它可以是指令、偽指令或宏指令名。

5整理ppt操作數(shù)項由一個或多個表達式組成,它提供為執(zhí)行所要求的操作而需要的信息。操作數(shù)項可以是常數(shù)、寄存器、標號、變量或由表達式組成。

注釋項用來說明程序或語句的功能。";"為識別注釋項的開始。";"也可以從一行的第一個字符開始,此時整行都是注釋,常用來說明下面一段程序的功能。6整理ppt

上面四項中帶方括號的兩項是可選項。各項之間必須用"空格"(space)或"水平制表"(Tab)符隔開。

(1)名字項

(2)操作項

(3)操作數(shù)項

(4)注釋項

7整理ppt

(1)名字項

源程序中用下列字符來表示名字:

字母A~Z

數(shù)字0~9

專用字符?、·、@、-、$

除數(shù)字外,所有字符都可以放在源語句的第一個位置。名字中如果用到·則必須是第一個字符??梢杂煤芏嘧址麃碚f明名字,但只有前面的31個字符能被匯編程序所識別。

8整理ppt

一般說來,名字項可以是標號或變量。它們都用來表示本語句的符號地址,都是可有可無的,只有當需要用符號地址來訪問該語句時它才需要出現(xiàn)。

·標號:標號在代碼段中定義,后面跟著冒號:,此外,它還可以作為過程名定義。

·變量:變量在數(shù)據(jù)段或附加數(shù)據(jù)段中定義,后面不跟冒號。變量經(jīng)常在操作數(shù)字段出現(xiàn)。

9整理ppt

(2)操作項

操作項可以是指令、偽指令或宏指令的助記符。對于指令,匯編程序?qū)⑵浞g為機器語言指令。對于偽指令,匯編程序?qū)⒏鶕?jù)其所要求的功能進行處理。對于宏指令,則將根據(jù)其定義展開。

10整理ppt(3)操作數(shù)項

操作數(shù)項由一個或多個表達式組成,多個操作數(shù)項之間一般用逗號分開。對于指令,操作數(shù)項一般給出操作數(shù)地址,它們可能有一個,或二個,或三個,或一個也沒有。對于偽操作或宏指令,則給出它們所要求的參數(shù)。

操作數(shù)項可以是常數(shù)、寄存器、標號、變量或由表達式組成。

11整理ppt

(4)注釋項

注釋項用來說明一段程序、一條或幾條指令的功能。對于匯編語言程序來說,注釋項的作用是很明顯的,它可以使程序容易被讀懂,因此匯編語言程序必須寫好注釋。注釋應該寫出本條(或本段)指令在程序中的功能和作用,而不應該只寫指令的動作。讀者在有機會閱讀程序例子時,應注意學習注釋的寫法,在編制程序時,更應學會寫好注釋。

12整理ppt指令性語句 格式為: [標號]:操作碼[操作數(shù)][;注釋] 帶方括號的為任選項, 標號是指令的符號地址,

操作碼和操作數(shù)是用匯編語言指令表示的指令部分, 注釋是對該語句在本程序中的功能的說明。13整理ppt指示性語句 格式為:[名字/變量]命令[參數(shù)][;注釋]

命令指示匯編程序進行某種匯編操作, 參數(shù)是有關(guān)的數(shù)據(jù), 名字是段名、符號名等標識符,變量用變量名表示。14整理ppt常量、標識符和表達式一、常量 其值在程序中不能改變的量, 在匯編語言源程序中的常量有: 數(shù)字常量、字符常量和符號常量(1)數(shù)字常量可以是二進制數(shù)、八進制數(shù)、十進制數(shù)或十六進制數(shù)表示(2)字符常量是用單引號‘’括起來的ASCII字符,其值是該字符的ASCII代碼值15整理ppt(3)符號常量是用標識符定義的常量。 例如,采用符號定義語句PORTAEQU80H, 則指令MOVAL,PORTA 與指令MOVAL,80H等價。二、標識符 在編程時建立的有特定意義的字符序列,標識符可用作符號常量、名字、變量和標號等。 組成標識符有如下規(guī)定:

16整理ppt

(1)組成標識符的字符有: 英文大寫字母:A~Z; 英文小寫字母:a-z; 數(shù)字0~9; 字符?、@、_、$; (2)字符長度不超過3l個; (3)首字符不能是數(shù)字; (4)?不能單獨作為一個標識符; (5)不能把保留字用作標識符,保留字包括助記符、寄存器名等。17整理ppt三、表達式

表達式是常數(shù)、標號、變量與一些操作符相組合的序列,可以有數(shù)字表達式和地址表達式兩種。在匯編期間,匯編程序按照一定的優(yōu)先規(guī)則對表達式進行計算后可得到一個數(shù)值或一個地址。

常用的表達式操作符介紹如下:18整理ppt (1)算術(shù)操作符

算術(shù)操作符有+、-、*、/和MOD。

MOD是指除法運算后得到的余數(shù),如19/7的商是2,而19MOD7則為5(余數(shù))。

19整理ppt算術(shù)操作符可以用于數(shù)字表達式或地址表達式中,但當它用于地址表達式時,只有當其結(jié)果有明確的物理意義時才是有效的結(jié)果。例如兩個地址相乘或相除是無意義的。在地址表達式中,可以使用+或-,但也必須注意其物理意義。

20整理ppt例如把兩個不同段的地址相加也是無意義的。經(jīng)常使用的是地址±數(shù)字量,它是有意義的。例如SUM+1是指SUM字節(jié)單元的下一個字節(jié)單元的地址(注意:不是指SUM單元的內(nèi)容加1),而SUM-1則是指SUM字節(jié)單元的前一個字節(jié)單元的地址。

例:如果要求把首地址為BLOCK的字數(shù)組的第6個字傳送到DX寄存器,可用指令如下:

MOVDX,BLOCK+(6-1)*2

21整理ppt

例:如數(shù)組ARRAY定義如下,寫出把數(shù)組長度(字數(shù))存入CX寄存器的指令。

ARRAYDW1,2,3,4,5,6,7

ARYENDDW?

其中ARYEND是為計算數(shù)組長度而建立的符號地址,所需指令如下:

MOVCX,(ARYEND-ARRAY)/2

匯編程序在匯編期間將計算出表達式的值而形成指令:

MOVCX,7

22整理ppt

(2)邏輯操作符邏輯操作符有:AND(與)、OR(或)、XOR(異或)、NOT(非)。

邏輯操作符都是按位操作的,只能用于數(shù)字表達式中。邏輯操作符要求匯編程序?qū)ζ淝昂髢蓚€操作數(shù)(或表達式)作指定的邏輯操作。

23整理ppt

例:

OUTPORT_VALAND0FEH,AL

上例中PORT_VAL為端口號,OUT指令中的表達式說明只為偶數(shù)號端口輸出數(shù)據(jù)。

24整理ppt

(3)關(guān)系操作符

關(guān)系操作符有:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)。

關(guān)系操作符的兩個操作數(shù)必須都是數(shù)字或是同一段內(nèi)的兩個存儲器地址。計算的結(jié)果應為邏輯值:結(jié)果為真,表示為0FFFFH;結(jié)果為假,則表示為0。

25整理ppt例如:

MOVBX,((PORT_VALLT5)AND20)OR((PORT_VALGE5)AND30)

則當PORT_VAL<5時,匯編結(jié)果應該是:

MOVBX,20

否則,匯編結(jié)果應該是:

MOVBX,30

26整理ppt(4)數(shù)值回送操作符

數(shù)值回送操作符有:TYPE、LENGTH、SIZE、OFFSET、SEG等。

數(shù)值回送操作符把一些特征或存儲器地址的一部分作為數(shù)值回送。

27整理ppt

·TYPE

格式為:TYPE表達式

如果表達式是變量,則匯編程序?qū)⒒厮驮撟兞康囊宰止?jié)數(shù)表示的類型:DB為1,DW為2,DD為4,DF為6,DQ為8,DT為10。如果表達式是標號,則匯編程序?qū)⒒厮痛碓摌颂栴愋偷臄?shù)值:NEAR為-1,F(xiàn)AR為-2。如果表達式為常數(shù),則應回送0。

28整理ppt舉例:

ARRAYDW1,2,3

則對于指令ADDSI,TYPEARRAY

匯編程序?qū)⑵湫纬蔀椋?/p>

ADDSI,2

29整理ppt·LENGTH

格式為:LENGTH變量

對于變量中使用DUP的情況,匯編程序?qū)⒒厮头峙浣o該變量的單元數(shù),而對于其他情況則送1。

30整理ppt舉例1:

FEESDW100DUP(0)

對于指令MOVCX,LENGTHFEES

匯編程序?qū)⑹蛊湫纬蔀椋?/p>

MOVCX,100舉例2:

ARRAYDW1,2,3

對于指令MOVCX,LENGTHARRAY匯編程序?qū)⑹蛊湫纬蔀椋?/p>

MOVCX,1

31整理ppt舉例3:

TABLEDB‘ABCD’

對于指令MOVCX,LENGTHTABLE

匯編程序?qū)⑹蛊湫纬蔀椋?/p>

MOVCX,1

32整理ppt·SIZE

格式為:SIZE變量

匯編程序應回送分配給該變量的字節(jié)數(shù)。但是,此值是LENGTH值和TYPE值的乘積。

33整理ppt例如:

MOVCX,SIZEFEES

將形成為MOVCX,200

又例如:

MOVCX,SIZEARRAY

將形成為MOVCX,2

又例如:

MOVCX,SIZETABLE

將形成為MOVCX,1。

34整理ppt·OFFSET

格式為:OFFSET變量或標號

匯編程序?qū)⒒厮妥兞炕驑颂柕钠频刂分怠?/p>

舉例:

MOVBX,OFFSETOPER_ONE

匯編程序?qū)PER_ONE的偏移地址作為立即數(shù)回送給指令,而在執(zhí)行時則將該偏移地址裝入BX寄存器中。所以這條指令的功能與指令

LEABX,OPER_ONE

是等價的。

35整理ppt·SEG

格式為:SEG變量或標號

匯編程序?qū)⒒厮妥兞炕驑颂柕亩蔚刂分怠?/p>

舉例:如果DATA_SEG是從存儲器的05000H地址開始的一個數(shù)據(jù)段的段名,OPER1是該段中的一個變量名,則

MOVBX,SEGOPER1

將把0500H作為立即數(shù)插入指令。實際上,由于段地址是由連接程序分配的,所以該立即數(shù)是連接時插入的。執(zhí)行期間則使BX寄存器的內(nèi)容成為0500H。

36整理ppt·PTR

格式為:類型PTR符號地址

PTR用來給已分配的存儲地址(用符號地址表示)賦予另一種屬性,使該地址具有另一種類型。

類型可有BYTE、WORD、DWORD、FWORD、QWORD、TBYTE、NEAR和FAR等幾種,所以PTR也可以用來建立字、雙字、四字或段內(nèi)及段間的指令單元等。

37整理ppt舉例:已有數(shù)據(jù)定義如下:TWO_BYTEDW?

可以用以下語句對這兩個字節(jié)賦予另一種類型定義:ONE_BYTEEQUBYTEPTRTWO_BYTE

這里ONE_BYTE和TWO_BYTE兩個符號地址具有相同的段地址和偏移地址,但是它們的類型屬性不同,前者為1,后者為2。

38整理ppt此外,有時指令要求使用PTR操作符。例如用

MOV[BX],5

指令把立即數(shù)存入BX寄存器內(nèi)容指定的存儲單元中,但匯編程序不能分清是存入字單元還是字節(jié)單元,此時必須用PTR操作符來說明屬性,應該寫明:

MOVBYTEPTR[BX],5

或MOVWORDPTR[BX],5

39整理ppt·段操作符

段操作符用來表示一個標量、變量或地址表達式的段屬性。

格式為:

段寄存器∶地址表達式

段名∶地址表達式

例如,用段前綴指定某段的地址操作數(shù)

MOVAX,ES:[BX+SI]

40整理ppt·SHORT

用來修飾JMP指令中轉(zhuǎn)向地址的屬性,指出轉(zhuǎn)向地址是在下一條指令地址的±127個字節(jié)范圍之內(nèi)。

例如:JMPSHORTTAG;轉(zhuǎn)移屬性為短轉(zhuǎn)移

.

.

.

TAG:MOV...

41整理ppt·THIS

格式為:THIS屬性或類型

THIS可以象PTR一樣建立一個指定類型(BYTE、WORD、DWORD)或指定距離(NEAR或FAR)的地址操作數(shù)。該操作數(shù)的段地址和偏移地址與下一個存儲單元地址相同。

42整理ppt

例如:FIRST_TYPEEQUTHISBYTE

WORD_TABLEDW100DUP(?)

此時FIRST_TYPE的偏移地址和WORD_TABLE完全相同,但它是字節(jié)類型的;而WORD_TABLE則是字類型的。

又如:STARTEQUTHISFAR

MOVCX,100

這樣,MOV指令有一個FAR屬性的符號地址START,這就允許其他段的JMP指令直接跳轉(zhuǎn)到START來。

43整理ppt·HIGH和LOW

稱為字節(jié)分離操作符,它接收一個數(shù)或地址表達式,HIGH取其高位字節(jié),LOW取其低位字節(jié)。

例如:

CONSTEQU0ABCDH

則MOVAH,HIGHCONST

將匯編成MOVAH,0ABH

指令MOVAH,LOWCONST

將匯編成MOVAH,0CDH

44整理ppt·操作符的優(yōu)先級

我們知道表達式是常數(shù)、寄存器、標號、變量和操作符的組合,在計算表達式時,應該首先計算優(yōu)先級高的操作符,然后從左到右地對優(yōu)先級相同的操作符進行計算。括號也可以改變計算次序,括號內(nèi)的表達式應優(yōu)先計算。

45整理ppt表達式中的運算符高優(yōu)先級低1括號中的項,即(…)和[…]2LENGTH,SIZE,WIDTH,MASK3PTR,OFFSET,SEG,TYPE,THIS4×,/,MOD5+,-6EQ,NE,L,LE,GT,GE7NOT8AND9OR,XOR46整理ppt偽指令(指示性語句)

偽指令又稱為偽操作,它是在對源程序匯編期間由匯編程序處理的操作,它們可以完成如定義數(shù)據(jù)、分配存儲區(qū)、指示程序結(jié)束等功能。

宏指令是由用戶按照宏定義格式編寫的一段程序,其中語句可以是指令、偽指令,甚至是已定義的宏指令。

47整理ppt偽指令和指令的區(qū)別在于,每一條指令必須生成機器代碼,然后在程序運行期間由CPU來執(zhí)行其操作;而偽指令是在匯編期間由匯編程序執(zhí)行的操作命令,除了數(shù)據(jù)定義及存儲器分配偽指令分配存儲器空間外,其它偽指令不生成目標碼。和各種指令一樣,偽指令也是程序設(shè)計不可缺少的工具。下面介紹一些常用的偽指令。48整理ppt段定義偽指令

段定義偽指令是表示一個段開始和結(jié)束的命令。段名SEGMENT

段名ENDS

49整理ppt段名由用戶命名。對于數(shù)據(jù)段、附加段和堆棧段來說,段內(nèi)一般是存儲單元的定義、分配等偽指令語句;對于代碼段中則主要是指令及偽指令語句。

定義了段還必須說明哪個段是代碼段,哪個段是數(shù)據(jù)段。ASSUME偽指令就是建立段和段寄存器關(guān)系的偽指令,其格式為:

ASSUME段寄存器名:段名,…

段寄存器名必須是CS、DS、ES和SS中的一個,而段名必須是由SEGMENT定義的段名。

50整理ppt

;***********************

data_seg1segment;定義數(shù)據(jù)段

data_seg1ends

;***********************

data_seg2segment;定義附加段

data_seg2ends

;***********************51整理pptcode_segsegment;定義代碼段

assumecs:code_seg,ds:data_seg1,es:data_seg2start:;程序執(zhí)行的起始地址

;setDSregistertocurrentdatasegment

movax,data_seg1;數(shù)據(jù)段地址

movds,ax;存入DS寄存器

;setESregistertocurrentextrasegment

movax,data_seg2;附加段地址

moves,ax;存入ES寄存器

..

code_segends;代碼段結(jié)束

;**************************

endstart

52整理ppt

由于ASSUME偽指令只是指定某個段分配給哪一個段寄存器,它并不能把段地址裝入段寄存器中,所以在代碼段中,還必須把段地址裝入相應的段寄存器中:

MOVAX,DATA_SEG1;數(shù)據(jù)段地址

MOVDS,AX;存入DS寄存器

MOVAX,DATA_SEG2;附加段地址

MOVES,AX;存入ES寄存器

53整理ppt如果程序中還定義了堆棧段STACK_SEG,也需要把段地址裝入SS中:

MOVAX,STACK_SEG;堆棧段地址

MOVSS,AX;存入ES寄存器

54整理ppt

注意,在程序中不需要用指令裝入代碼段的段地址,因為在程序初始化時,裝入程序已將代碼段的段地址裝入CS寄存器了。

55整理ppt程序開始和結(jié)束偽指令

在程序的開始可以用NAME或TITLE作為模塊的名字,其格式為:

NAME模塊名

TITLE文件名

表示源程序結(jié)束的偽指令的格式為:

END[標號]56整理ppt

注意:NAME及TITLE偽指令并不是必需的,如果程序中既無NAME又無TITLE偽指令,則將用源文件名作為模塊名。END偽指令中的“標號”指示程序開始執(zhí)行的起始地址。如果多個程序模塊相連接,則只有主程序的END要加上標號,其他子程序模塊則只用END而不必指定標號。上例最后使用了ENDSTART偽指令。匯編程序?qū)⒃谟鯡ND時結(jié)束匯編,并且程序在運行時從START開始執(zhí)行。57整理ppt數(shù)據(jù)定義及存儲器分配偽指令

8086提供了各種數(shù)據(jù)及存儲器分配偽指令,這些偽指令在匯編程序?qū)υ闯绦蜻M行匯編期間,由匯編程序完成數(shù)據(jù)類型定義及存儲器分配等功能。

數(shù)據(jù)定義及存儲器分配偽指令的格式是:[變量]助記符操作數(shù)[,…,操作數(shù)][;注釋]

58整理ppt

數(shù)據(jù)定義及存儲器分配偽指令格式中的"變量"是操作數(shù)的符號地址,它是可有可無的,它的作用與指令語句前的標號相同,區(qū)別是變量后面不加冒號。如果語句中有變量,那么匯編程序?qū)⒉僮鲾?shù)的第一個字節(jié)的偏移地址賦于這個變量。

"注釋"字段用來說明該偽指令的功能,它也不是必須有的。

"助記符"字段說明所用偽指令的助記符。

59整理ppt

下面介紹常用的數(shù)據(jù)定義偽指令。

DB(definebyte)

DB偽指令用來定義字節(jié),對其后的每個數(shù)據(jù)都存儲在一個字節(jié)中。DB能定義十進制數(shù)、二進制數(shù)、十六進制數(shù)和ASCII字符,二進制數(shù)和十六進制數(shù)要分別用"B"和"H"表示,ASCII字符用單引號('')括起來。DB還是唯一能定義字符串的偽操作,串中的每個字符占用一個字節(jié)。

60整理ppt

請看下面數(shù)據(jù)定義的例子,注意DB定義的每個數(shù)據(jù)的存儲情況,左邊第一列是匯編程序為數(shù)據(jù)分配的字節(jié)地址,第二列是相應地址中存儲的數(shù)據(jù)或ASCII字符(均用十六進制表示)。變量DATA7定義了3個數(shù)據(jù)和一個字符串,每個數(shù)據(jù)或串用","分開,它們分別存儲在偏移地址002E開始的6個字節(jié)單元中。

61整理ppt000019DATA1DB25;十進制數(shù)000189DATA2DB10001001B;二進制數(shù)000212DATA3DB12H;十六進制數(shù)0010ORG0010H;指定偏移地址為10h001032353931DATA4DB‘2591’;ASCII碼數(shù)0018ORG0018H;指定偏移地址為18h001800DATA5DB?;保留一個字節(jié)0020ORG0020H;指定偏移地址為20h00204D79206E616DDATA6DB'MynameisJoe';ASCII碼字符

65206973204A

6F65002E0A1002313042DATA7DB10,10H,10B,'10B';不同的數(shù)據(jù)類型62整理ppt

DW(defineword)

DW偽指令用來定義字,對其后的每個數(shù)據(jù)分配2個字節(jié)(1個字),數(shù)據(jù)的低8位存儲在低字節(jié)地址中,高8位存儲在高字節(jié)地址中,如下例中的變量DATA8的數(shù)據(jù)存儲在0070字地址中,其中0070字節(jié)存儲0BAH,0071字節(jié)存儲03H。DW還可存儲變量或標號的偏移地址。見下面DW偽指令的例子。

63整理ppt64整理ppt

DD(definedoubleword)

DD偽指令用來定義雙字,對其后的每個數(shù)據(jù)分配4個字節(jié)(2個字)。該偽指令同樣將數(shù)據(jù)轉(zhuǎn)換為十六進制,并根據(jù)低地址存儲低字節(jié),高地址存儲高字節(jié)的規(guī)則來存放數(shù)據(jù)。如下例DATA15的存儲情況是:00A8:0F2H,00A9H:57H,00AAH:2AH,00ABH:5CH。

用DD存入地址時,第一個字為偏移地址,第二個字為段地址。

65整理ppt66整理ppt

DQ(definequadword)

DQ偽指令用來定義4字,即64位字長的數(shù)據(jù),DQ之后的每個數(shù)據(jù)占用8個字節(jié)(4個字)。

DT(definetenbytes)

DT偽指令用來為壓縮的BCD數(shù)據(jù)分配存儲單元,它雖然可以分配10個字節(jié)(5個字),但最多只能輸入18個數(shù)字,要注意的是,數(shù)據(jù)后面不需要加“H”。下面是DQ和DT的例子。

67整理ppt68整理ppt

DUP(duplicate)

DUP偽指令可以按照給定的次數(shù)來復制某個(某些)操作數(shù),它可以避免多次鍵入同樣一個數(shù)據(jù)。例如,把6個FFH存入相繼字節(jié)中,可以用下面兩種方法,顯然用DUP的方法更簡便些。

存入6字節(jié)的FFH

DATA20DB0FFH0FFH0FFH0FFH0FFH0FFH;

DATA21DB6DUP(0FFH)

69整理ppt

DUP操作一般用來保留數(shù)據(jù)區(qū),如用數(shù)據(jù)定義偽指令"DB64DUP(?)"可保留64個字節(jié)單元。DUP還可以嵌套。

70整理ppt表達式賦值偽操作EQU

有時程序中多次出現(xiàn)同一個表達式,為方便起見可以用賦植偽操作給表達式賦予一個名字,其格式如下:Expresstion_nameEQUExpresstion此后,程序中凡需要用到該表達式之處就可以用表達式名來代替。上式中表達式可以是任何有效的操作數(shù)格式,可以是任何可以求出常數(shù)值的表達式,也可以是任何有效的助記符。

71整理pptEQU是一個賦值偽操作(偽指令),它給一個數(shù)據(jù)標號賦于一個常數(shù)值,但這個常數(shù)不占用存儲單元。當這個數(shù)據(jù)標號出現(xiàn)在程序中時,匯編程序即用它的常數(shù)值代替數(shù)據(jù)標號。EQU可以在數(shù)據(jù)段之外使用,甚至可用在代碼段中間。

72整理ppt

假定在數(shù)據(jù)段和代碼段中要多次使用一個數(shù)據(jù)(如25),那么在編程時凡是用到25的地方都可用數(shù)據(jù)標號COUNT來表示。如果程序想修改這個數(shù)據(jù),那么只需修改EQU的賦值,而無須修改程序中其它部分,如COUNTER和MOV語句就不必修改。

COUNTEQU25COUNTERDBCOUNT

MOVAL,COUNT

73整理pptDATAEQUHEIGHT+12;地址表達式賦以符號ALPHAEQU7;常數(shù)賦以符號名BETAEQUALPHA-2;把7-2=5賦以符號名BETAADDREQUVAR+BETA;VAR+5賦以符號名ADDRBEQU[BP+8];變址引用賦以符號名BP8EQUDS:[BP+8];加段前綴的變址引用賦以符號名P8

74整理ppt注意:在EQU語句的表達式中,如果有變量或標號的表達式,則在該語句前應該先給出它們的定義。如上例,ALPHA必須在BETA之前定義,否則匯編程序?qū)⒅甘境鲥e。

75整理ppt=偽操作

賦值偽操作"="的作用與EQU類似。它們之間的區(qū)別是,EQU偽操作中的標號名是不允許重復定義的,而=偽操作是允許重復定義的。

76整理ppt例如,TMPEQU5

TMPEQUTMP+1則是錯誤語句,因為TMP已賦值為5,就不能再把它定義為其它數(shù)值。

而TMP=5

TMP=TMP+1則是允許使用的,因為=偽操作允許重復定義。第一個語句TMP的值為5,第二個語句TMP的值就為6了。

77整理ppt地址計數(shù)器與對準偽指令

1.地址計數(shù)器$

在匯編程序?qū)υ闯绦騾R編的過程中,使用地址計數(shù)器來保存當前正在匯編的指令的地址。地址計數(shù)器的值在匯編語言中可用$來表示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論