![《匯編語言程序設(shè)計》第4章課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/222a6452-ffa9-4b74-8f66-38afbbda856f/222a6452-ffa9-4b74-8f66-38afbbda856f1.gif)
![《匯編語言程序設(shè)計》第4章課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/222a6452-ffa9-4b74-8f66-38afbbda856f/222a6452-ffa9-4b74-8f66-38afbbda856f2.gif)
![《匯編語言程序設(shè)計》第4章課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/222a6452-ffa9-4b74-8f66-38afbbda856f/222a6452-ffa9-4b74-8f66-38afbbda856f3.gif)
![《匯編語言程序設(shè)計》第4章課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/222a6452-ffa9-4b74-8f66-38afbbda856f/222a6452-ffa9-4b74-8f66-38afbbda856f4.gif)
![《匯編語言程序設(shè)計》第4章課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/222a6452-ffa9-4b74-8f66-38afbbda856f/222a6452-ffa9-4b74-8f66-38afbbda856f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 匯編語言源程序與匯編程序 匯編語言語句種類及其格式 匯編語言數(shù)據(jù)與運算符 偽指令 源程序結(jié)構(gòu)模式 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4.1 4.1 匯編語言源程序與匯編程序匯編語言源程序與匯編程序 1 1、匯編語言源程序、匯編語言源程序匯編語言源程序是用匯編語言編寫的程序,簡稱匯編語匯編語言源程序是用匯編語言編寫的程序,簡稱匯編語言程序。匯編語言程序通過編輯程序在計算機(jī)中建立匯編語言程序。匯編語言程序通過編輯程序在計算機(jī)中建立匯編語言源程序文件(言源程序文件(ASMAS
2、M文件)。文件)。2 2、匯編程序、匯編程序?qū)R編語言源程序編譯成目標(biāo)程序的加工程序稱為匯編將匯編語言源程序編譯成目標(biāo)程序的加工程序稱為匯編程序。這一加工過程稱為匯編。程序。這一加工過程稱為匯編。 匯編程序的作用就是把源程序文件(匯編程序的作用就是把源程序文件(ASMASM文件)轉(zhuǎn)換成用文件)轉(zhuǎn)換成用二進(jìn)制代碼表示的目標(biāo)程序文件(二進(jìn)制代碼表示的目標(biāo)程序文件(OBJOBJ文件)。文件)。匯編程序的主要功能有:匯編程序的主要功能有: 檢查源程序。檢查源程序。 測出源程序語法錯誤,并給出錯誤。測出源程序語法錯誤,并給出錯誤。 產(chǎn)生目標(biāo)程序,并可給出列表文件產(chǎn)生目標(biāo)程序,并可給出列表文件 展開宏指令
3、。展開宏指令。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4.2 4.2 匯編語言語句種類及其格式匯編語言語句種類及其格式 語句是匯編語言源程序的基本組成單位。一個匯編語言語句是匯編語言源程序的基本組成單位。一個匯編語言源程序中有源程序中有3 3種基本語句:指令語句、偽指令語句和宏指令種基本語句:指令語句、偽指令語句和宏指令語句。前兩種是最常見、最基本的語句。指令語句和偽指令語句。前兩種是最常見、最基本的語句。指令語句和偽指令語句不僅在程序中的功能不同,而且實現(xiàn)其功能的方法和時語句不僅在程序中的功能不同,而且實現(xiàn)其功能的方法和時間也是不同的。間也是不同的。
4、 1 1、指令語句、指令語句 指令語句就是計算機(jī)中指令系統(tǒng)的各條指令,每條指令指令語句就是計算機(jī)中指令系統(tǒng)的各條指令,每條指令語句在匯編時都產(chǎn)生一個供語句在匯編時都產(chǎn)生一個供CPUCPU執(zhí)行的機(jī)器目標(biāo)代碼,所以執(zhí)行的機(jī)器目標(biāo)代碼,所以這種語句又稱為可執(zhí)行語句。這種語句又稱為可執(zhí)行語句。計算機(jī)中每條指令語句表示一種基本功能,這些基本功計算機(jī)中每條指令語句表示一種基本功能,這些基本功能是在程序運行期間由計算機(jī)硬件來實現(xiàn)的。一條指令語句能是在程序運行期間由計算機(jī)硬件來實現(xiàn)的。一條指令語句由四個字段組成,其一般格式如下:由四個字段組成,其一般格式如下: 標(biāo)號:標(biāo)號: 指令助記符指令助記符 操作數(shù)操作數(shù)
5、 ;注釋;注釋 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (1 1)標(biāo)號)標(biāo)號標(biāo)號是指令語句的符號地址,它代表指令代碼存放地址標(biāo)號是指令語句的符號地址,它代表指令代碼存放地址的第一個字節(jié)地址。的第一個字節(jié)地址。標(biāo)號是指令語句的可選項,通常在一個程序段或子程序標(biāo)號是指令語句的可選項,通常在一個程序段或子程序的入口指令語句選用標(biāo)號,當(dāng)程序需要轉(zhuǎn)入這個程序段或的入口指令語句選用標(biāo)號,當(dāng)程序需要轉(zhuǎn)入這個程序段或調(diào)用子程序時,就可直接引用這標(biāo)號。標(biāo)號通常在代碼段調(diào)用子程序時,就可直接引用這標(biāo)號。標(biāo)號通常在代碼段中定義,后面跟冒號中定義,后面跟冒號“:”,它經(jīng)常在轉(zhuǎn)移
6、指令或,它經(jīng)常在轉(zhuǎn)移指令或CALLCALL指指令中引用,用以表示轉(zhuǎn)向地址,引用時標(biāo)號后不跟冒號。令中引用,用以表示轉(zhuǎn)向地址,引用時標(biāo)號后不跟冒號。(2 2)指令助記符)指令助記符指令助記符為指令語句的核心,是不可省略的主要部分,指令助記符為指令語句的核心,是不可省略的主要部分,如如MOVMOV、ADDADD、XORXOR、RCLRCL等等,它表示指令語句要求等等,它表示指令語句要求CPUCPU完成完成的具體操作。的具體操作。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章(3 3)操作數(shù)操作數(shù) 操作數(shù)表示指令助記符的操作對象,不同的指令所帶操作數(shù)表示指令助記符的操
7、作對象,不同的指令所帶的操作數(shù)不同,有一個操作數(shù)的指令(如的操作數(shù)不同,有一個操作數(shù)的指令(如INCINC、NOTNOT等),等),有二個操作數(shù)的指令(如有二個操作數(shù)的指令(如ADDADD、XORXOR等),無操作數(shù)指令等),無操作數(shù)指令(如(如CLCCLC、STDSTD等)。等)。 若需要操作數(shù),則每一個操作數(shù)要依據(jù)尋址方式來表示。若需要操作數(shù),則每一個操作數(shù)要依據(jù)尋址方式來表示。操作數(shù)可以是常數(shù)、寄存器、標(biāo)號、變量和表達(dá)式。操作數(shù)可以是常數(shù)、寄存器、標(biāo)號、變量和表達(dá)式。(4) (4) 注釋注釋 注釋是用來說明一段程序或一條或多條指令的功能,它注釋是用來說明一段程序或一條或多條指令的功能,它
8、是可選項,注釋均以分號是可選項,注釋均以分號“;”開始,它可占一行或多行。開始,它可占一行或多行。注釋還通常用于調(diào)試程序。注釋是語句的非執(zhí)行部分,因注釋還通常用于調(diào)試程序。注釋是語句的非執(zhí)行部分,因此,它不出現(xiàn)在機(jī)器目標(biāo)代碼中,也不影響指令語句的功此,它不出現(xiàn)在機(jī)器目標(biāo)代碼中,也不影響指令語句的功能。能。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 2 2、偽指令語句、偽指令語句 偽指令語句指示匯編程序在匯編源程序時完成某些工作,偽指令語句指示匯編程序在匯編源程序時完成某些工作,比如完成數(shù)據(jù)定義、分配存儲區(qū)、指示程序結(jié)束等。比如完成數(shù)據(jù)定義、分配存儲區(qū)、指示程
9、序結(jié)束等。 偽指令屬于匯編控制命令,它所指示的操作是由匯編程偽指令屬于匯編控制命令,它所指示的操作是由匯編程序在匯編源程序時完成的,在匯編時,它不產(chǎn)生目標(biāo)代碼,序在匯編源程序時完成的,在匯編時,它不產(chǎn)生目標(biāo)代碼,在將源程序匯編成目標(biāo)程序后,它就不復(fù)存在了。在將源程序匯編成目標(biāo)程序后,它就不復(fù)存在了。 綜上所述可知,偽指令語句與指令語句的主要區(qū)別是:綜上所述可知,偽指令語句與指令語句的主要區(qū)別是:偽指令語句經(jīng)匯編后不產(chǎn)生機(jī)器目標(biāo)代碼,而指令語句經(jīng)偽指令語句經(jīng)匯編后不產(chǎn)生機(jī)器目標(biāo)代碼,而指令語句經(jīng)匯編后將產(chǎn)生相應(yīng)的機(jī)器目標(biāo)代碼;偽指令語句所指示的匯編后將產(chǎn)生相應(yīng)的機(jī)器目標(biāo)代碼;偽指令語句所指示的操
10、作是在程序匯編時完成的,而指令語句的操作必須在程操作是在程序匯編時完成的,而指令語句的操作必須在程序運行時才能完成。一條偽指令語句也由四個字段組成,序運行時才能完成。一條偽指令語句也由四個字段組成,其一般格式如下:其一般格式如下: 符號名符號名 偽指令符操作數(shù)偽指令符操作數(shù) ;注釋;注釋 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (1 1)符號名)符號名 符號名在偽指令語句中是一個可選項,符號名后面沒有符號名在偽指令語句中是一個可選項,符號名后面沒有冒號,符號名可以是常量名、變量名、過程名等。冒號,符號名可以是常量名、變量名、過程名等。(2 2)偽指令符)
11、偽指令符偽指令符指定匯編程序要完成的具體操作,它是偽指令語偽指令符指定匯編程序要完成的具體操作,它是偽指令語句的核心部分,如數(shù)據(jù)定義偽指令句的核心部分,如數(shù)據(jù)定義偽指令DBDB、DWDW、DDDD,段定義偽指段定義偽指令令SEGMENTSEGMENT,定義過程偽指令定義過程偽指令PROCPROC等等。等等。(3 3)操作數(shù))操作數(shù) 偽指令中的操作數(shù)可以是常數(shù)、字符串、變量、表達(dá)式,偽指令中的操作數(shù)可以是常數(shù)、字符串、變量、表達(dá)式,其個數(shù)由具體的偽指令決定,各個操作數(shù)之間用其個數(shù)由具體的偽指令決定,各個操作數(shù)之間用“,”分隔。分隔。(4 4)注釋)注釋 偽指令語句的注釋也是可選項,需要時必須以偽
12、指令語句的注釋也是可選項,需要時必須以“;”開始。開始。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章3 3、標(biāo)識符、標(biāo)識符 指令語句中的標(biāo)號和偽指令語句中的符號名統(tǒng)稱為標(biāo)識指令語句中的標(biāo)號和偽指令語句中的符號名統(tǒng)稱為標(biāo)識符。它們由若干字符組成,標(biāo)識符的組成規(guī)則如下:符。它們由若干字符組成,標(biāo)識符的組成規(guī)則如下:(1 1)一個標(biāo)識符由)一個標(biāo)識符由1-31-3個字符組成。個字符組成。(2 2)組成標(biāo)識符的字符可以是字母()組成標(biāo)識符的字符可以是字母(A-ZA-Z或或a-za-z)、)、數(shù)數(shù)字(字(0-90-9)、專用字符()、專用字符(“?”、“”“”、“”“
13、”、“$”“$”、“下劃線下劃線_”_”)。)。(3 3)除數(shù)字外,上述其余字符均可作為標(biāo)識符的首字符,)除數(shù)字外,上述其余字符均可作為標(biāo)識符的首字符,“”“”只能作為標(biāo)識符的首字符。只能作為標(biāo)識符的首字符。(4 4)不能使用屬于系統(tǒng)的專用保留字。)不能使用屬于系統(tǒng)的專用保留字。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4.34.3匯編語言數(shù)據(jù)與運算符匯編語言數(shù)據(jù)與運算符 匯編語言的指令語句和偽指令語句操作數(shù)一般為常量、匯編語言的指令語句和偽指令語句操作數(shù)一般為常量、變量、標(biāo)號、表達(dá)式。變量、標(biāo)號、表達(dá)式。1 1、常量、常量常量是沒有任何屬性的純數(shù)值,它的
14、值在匯編期間已能常量是沒有任何屬性的純數(shù)值,它的值在匯編期間已能完全確定,且在程序運行中也不會發(fā)生變化。常量分為數(shù)值完全確定,且在程序運行中也不會發(fā)生變化。常量分為數(shù)值常量、字符串常量和符號常量,它主要用于指令語句中的立常量、字符串常量和符號常量,它主要用于指令語句中的立即數(shù)或偽指令語句中給變量賦初值等。即數(shù)或偽指令語句中給變量賦初值等。(1 1)數(shù)值常量)數(shù)值常量數(shù)值常量分為整數(shù)和實數(shù)。數(shù)值常量分為整數(shù)和實數(shù)。例如:例如:1110001111100011B B ,45693 45693 ,0 0FF2AH FF2AH ,356703356703Q Q都是正都是正確的整數(shù)形式,確的整數(shù)形式,又
15、如:又如:543.567543.567,45.2345.23,1.21.2E E2 2,45.4E45.4E9 9都是正都是正確的實數(shù)形式。確的實數(shù)形式。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章(2 2)字符串常量)字符串常量字符串常量是用單引號括起來的一個字符或多個字符。字符串常量是用單引號括起來的一個字符或多個字符。字符串常量以單引號中各字符的字符串常量以單引號中各字符的ASCIIASCII碼形式存儲在內(nèi)存碼形式存儲在內(nèi)存中,如中,如HH,在內(nèi)存中就是在內(nèi)存中就是4141H H,1212就是就是3131H H,32H32H。使用時可在單引號內(nèi)直接寫字
16、符序列,如使用時可在單引號內(nèi)直接寫字符序列,如1212ABAB,也可也可寫字符的寫字符的ASCIIASCII碼,碼,ASCIIASCII碼之間用逗號分隔(此時不需要碼之間用逗號分隔(此時不需要用單引號),如用單引號),如3131H H,32H32H,41H41H,42H42H表示字符串表示字符串1212ABAB。 (3 3)符號常量符號常量符號常量是指用符號常量是指用EQUEQU偽指令或賦值語句偽指令或賦值語句“=”“=”定義過的符定義過的符號名,可作操作數(shù)項或在表達(dá)式中使用。號名,可作操作數(shù)項或在表達(dá)式中使用。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章2
17、 2、變量、變量在匯編語言中,變量是一個數(shù)據(jù)存儲單元的名稱,即數(shù)據(jù)在匯編語言中,變量是一個數(shù)據(jù)存儲單元的名稱,即數(shù)據(jù)存放地址的符號表示。它代表存放在某些存儲單元的數(shù)據(jù),存放地址的符號表示。它代表存放在某些存儲單元的數(shù)據(jù),這些數(shù)據(jù)在程序運行期間隨時可以改變。為方便訪問變量,這些數(shù)據(jù)在程序運行期間隨時可以改變。為方便訪問變量,在程序中通過變量名來使用變量。在程序中通過變量名來使用變量。(1 1)變量的定義)變量的定義 變量通常在數(shù)據(jù)段或附加段中使用數(shù)據(jù)定義偽指令來定義,變量通常在數(shù)據(jù)段或附加段中使用數(shù)據(jù)定義偽指令來定義,定義變量就是給數(shù)據(jù)分配存儲單元,有時為存儲單元賦予一定義變量就是給數(shù)據(jù)分配存儲
18、單元,有時為存儲單元賦予一個變量名,并可同時為這些存儲單元預(yù)置初值。數(shù)據(jù)定義偽個變量名,并可同時為這些存儲單元預(yù)置初值。數(shù)據(jù)定義偽指令的格式為:指令的格式為: 變量名變量名 DB(DWDB(DW、DDDD、DQDQ、DT) DT) 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式2 2, 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章其中:變量名是可選項,它僅代表所定義數(shù)據(jù)存儲區(qū)其中:變量名是可選項,它僅代表所定義數(shù)據(jù)存儲區(qū)第一個單元的地址;第一個單元的地址;DBDB、DWDW、DDDD、DQDQ和和DTDT是偽指令符,具是偽指令符,具體一條數(shù)據(jù)定義偽指令取體一條數(shù)據(jù)定義偽指
19、令取5 5種之一。種之一。 DB DB定義的是字節(jié)類型的變量,每個表達(dá)式被分配定義的是字節(jié)類型的變量,每個表達(dá)式被分配1 1個字個字節(jié)單元。節(jié)單元。 DW DW定義的是字類型的變量,每一個表達(dá)式被分配定義的是字類型的變量,每一個表達(dá)式被分配1 1個字單個字單元(元(2 2個字節(jié))。個字節(jié))。 DD DD定義的是雙字類型的變量,每一個表達(dá)式被分配定義的是雙字類型的變量,每一個表達(dá)式被分配2 2個字個字單元(單元(4 4個字節(jié))。個字節(jié))。 DQ DQ定義的是四字類型的變量,每一個表達(dá)式被分配定義的是四字類型的變量,每一個表達(dá)式被分配4 4個字個字單元(單元(8 8個字節(jié))。個字節(jié))。 DT DT
20、定義的是十字節(jié)類型的變量,每一個表達(dá)式被分配定義的是十字節(jié)類型的變量,每一個表達(dá)式被分配1010個字節(jié)單元。個字節(jié)單元。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 表達(dá)式表達(dá)式1 1,表達(dá)式,表達(dá)式22是給變量或指定的存儲單元賦是給變量或指定的存儲單元賦予初值,它們有以下幾種形式:予初值,它們有以下幾種形式: (a a)數(shù)值表達(dá)式數(shù)值表達(dá)式 數(shù)據(jù)定義偽指令可以為一個或連續(xù)的存儲單元設(shè)置數(shù)數(shù)據(jù)定義偽指令可以為一個或連續(xù)的存儲單元設(shè)置數(shù)值初值。值初值。 (b b)字符串表達(dá)式字符串表達(dá)式 對于對于DBDB偽指令,字符串的長度允許超過偽指令,字符串的長度允許超過
21、2 2個字符,但不個字符,但不能超過能超過255255個字符,字符串必須用單引號括起來,它可為個字符,字符串必須用單引號括起來,它可為字符串中的每個字符分配字符串中的每個字符分配1 1字節(jié)單元,字符串從左至右以字節(jié)單元,字符串從左至右以字符的字符的ASCIIASCII碼形式按地址遞增的順序依次存放。碼形式按地址遞增的順序依次存放。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章(c c)?)?表達(dá)式表達(dá)式 不帶引號的?,用于為變量預(yù)留內(nèi)存單元,暫時不存入不帶引號的?,用于為變量預(yù)留內(nèi)存單元,暫時不存入數(shù)據(jù),即表示所定義的變量無確定的初值。數(shù)據(jù),即表示所定義的變量
22、無確定的初值。 例如:例如:A DW A DW ?,?,?為變量為變量A A預(yù)留預(yù)留2 2個字單元。個字單元。(d d)地址表達(dá)式地址表達(dá)式 操作數(shù)為地址表達(dá)式時,只適用于操作數(shù)為地址表達(dá)式時,只適用于DWDW和和DDDD這兩種數(shù)據(jù)定這兩種數(shù)據(jù)定義偽指令。如果地址表達(dá)式為一變量(標(biāo)號)名,用義偽指令。如果地址表達(dá)式為一變量(標(biāo)號)名,用DWDW偽偽指令則是取它的偏移地址來初始化變量;用指令則是取它的偏移地址來初始化變量;用DDDD偽指令則是偽指令則是取它的段首地址和偏移地址來初始化變量。取它的段首地址和偏移地址來初始化變量。(e e)帶帶DUPDUP的表達(dá)式的表達(dá)式格式為:格式為:n DUP
23、(n DUP (表達(dá)式表達(dá)式) ),其中,其中n n為重復(fù)因子,只能取正為重復(fù)因子,只能取正整數(shù),它表示定義了整數(shù),它表示定義了n n個數(shù)據(jù)存儲單元。個數(shù)據(jù)存儲單元。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (2 2)變量的屬性)變量的屬性 由于存儲器是分段使用的,因而源程序定義的變量具有由于存儲器是分段使用的,因而源程序定義的變量具有3 3個屬性:個屬性:(a a)段屬性(段屬性(SEGSEG) 變量的段屬性是指定義變量時它所在段的段首地址。變量的段屬性是指定義變量時它所在段的段首地址。(b b)偏移屬性(偏移屬性(OFFSETOFFSET) 變量的偏移
24、屬性是指所在段的段首地址到定義該變量的變量的偏移屬性是指所在段的段首地址到定義該變量的位置之間的字節(jié)數(shù)(即偏移地址)。上述的段屬性和偏移位置之間的字節(jié)數(shù)(即偏移地址)。上述的段屬性和偏移屬性值就構(gòu)成了一個變量的邏輯地址。屬性值就構(gòu)成了一個變量的邏輯地址。(c c)類型屬性(類型屬性(TYPETYPE) 變量的類型屬性表示存儲變量時所占存儲單元的字節(jié)個變量的類型屬性表示存儲變量時所占存儲單元的字節(jié)個數(shù)。數(shù)。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章(3 3)變量的使用)變量的使用 定義后的變量,在程序中的引用有兩種情況:定義后的變量,在程序中的引用有兩種情況:
25、(a a)在指令語句中,采用存儲器操作數(shù)的幾種尋址方式,在指令語句中,采用存儲器操作數(shù)的幾種尋址方式,除寄存器間接尋址方式不使用變量名外,其余各種尋址方除寄存器間接尋址方式不使用變量名外,其余各種尋址方式均可使用變量名。式均可使用變量名。例如,某數(shù)據(jù)段已定義一變量例如,某數(shù)據(jù)段已定義一變量ARRAYARRAY: ARRAY DW 5000H ARRAY DW 5000H,4000H4000H (b b)在數(shù)據(jù)定義偽指令在數(shù)據(jù)定義偽指令DWDW和和DDDD中,操作數(shù)字段可直接引中,操作數(shù)字段可直接引用已定義過的變量名。用已定義過的變量名。 如:如: A DB 50HA DB 50H,40H40H
26、 B DW A B DW A C DD B C DD B匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章3 3、標(biāo)號、標(biāo)號 標(biāo)號是一條指令語句的符號地址,在匯編源程序中,只標(biāo)號是一條指令語句的符號地址,在匯編源程序中,只有在需要轉(zhuǎn)向一條指令語句時,才為該指令語句設(shè)置標(biāo)號,有在需要轉(zhuǎn)向一條指令語句時,才為該指令語句設(shè)置標(biāo)號,以便在控制轉(zhuǎn)移指令中直接引用這個標(biāo)號。標(biāo)號一般在代碼以便在控制轉(zhuǎn)移指令中直接引用這個標(biāo)號。標(biāo)號一般在代碼段中定義和引用。由于標(biāo)號代表了指令的符號地址,所以標(biāo)段中定義和引用。由于標(biāo)號代表了指令的符號地址,所以標(biāo)號也有號也有3 3個屬性:個屬性:(a
27、 a)段屬性(段屬性(SEGSEG)。)。標(biāo)號的段屬性是指標(biāo)號定義所在段的標(biāo)號的段屬性是指標(biāo)號定義所在段的段首地址。段首地址。(b b)偏移屬性(偏移屬性(OFFSETOFFSET)。)。標(biāo)號的偏移屬性是指標(biāo)號所在標(biāo)號的偏移屬性是指標(biāo)號所在段的段首地址到該標(biāo)號的字節(jié)距離。段的段首地址到該標(biāo)號的字節(jié)距離。(c c)類型屬性(類型屬性(TYPETYPE)。)。標(biāo)號的類型屬性表示了它的轉(zhuǎn)移標(biāo)號的類型屬性表示了它的轉(zhuǎn)移特性,即該標(biāo)號是作為段內(nèi)還是段間轉(zhuǎn)移(或調(diào)用)指令的特性,即該標(biāo)號是作為段內(nèi)還是段間轉(zhuǎn)移(或調(diào)用)指令的目標(biāo)地址。標(biāo)號的類型屬性有目標(biāo)地址。標(biāo)號的類型屬性有2 2種:種:NEARNEAR
28、類型和類型和FARFAR類型。類型。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4 4、表達(dá)式和運算符、表達(dá)式和運算符匯編語言的指令語句和偽指令語句中,表達(dá)式是操作匯編語言的指令語句和偽指令語句中,表達(dá)式是操作數(shù)項的常見形式,表達(dá)式是由常量、變量、標(biāo)號用運算數(shù)項的常見形式,表達(dá)式是由常量、變量、標(biāo)號用運算符連接而成有意義的式子。表達(dá)式分為數(shù)值表達(dá)式和地符連接而成有意義的式子。表達(dá)式分為數(shù)值表達(dá)式和地址表達(dá)式,任一表達(dá)式的值只計算一次,表達(dá)式的計算址表達(dá)式,任一表達(dá)式的值只計算一次,表達(dá)式的計算是在源程序匯編過程中進(jìn)行的,而不是在程序運行中進(jìn)是在源程序匯編過程
29、中進(jìn)行的,而不是在程序運行中進(jìn)行的,匯編程序?qū)⒈磉_(dá)式計算后得到一個數(shù)值或一個地行的,匯編程序?qū)⒈磉_(dá)式計算后得到一個數(shù)值或一個地址。址。 在在80868086匯編語言中,運算符分為:算術(shù)運算符、邏輯匯編語言中,運算符分為:算術(shù)運算符、邏輯運算符、關(guān)系運算符、數(shù)值返回運算符、屬性運算符和運算符、關(guān)系運算符、數(shù)值返回運算符、屬性運算符和字節(jié)分離運算符。字節(jié)分離運算符。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章(1 1)數(shù)值表達(dá)式)數(shù)值表達(dá)式 數(shù)值表達(dá)式是由常量與算術(shù)運算符、邏輯運算符或關(guān)系數(shù)值表達(dá)式是由常量與算術(shù)運算符、邏輯運算符或關(guān)系運算符構(gòu)成的有意義的式子。數(shù)
30、值表達(dá)式在匯編期間進(jìn)行運算符構(gòu)成的有意義的式子。數(shù)值表達(dá)式在匯編期間進(jìn)行運算,運算結(jié)果為一數(shù)值常量,它只有大小而沒有屬性。運算,運算結(jié)果為一數(shù)值常量,它只有大小而沒有屬性。(2 2)地址表達(dá)式)地址表達(dá)式 地址表達(dá)式是由常量、變量、標(biāo)號、寄存器(地址表達(dá)式是由常量、變量、標(biāo)號、寄存器(BXBX、BPBP、SISI、DIDI)內(nèi)容(用寄存器名加方括號表示)和運算符組成內(nèi)容(用寄存器名加方括號表示)和運算符組成的有意義的式子。單個的變量、標(biāo)號、寄存器的內(nèi)容是地的有意義的式子。單個的變量、標(biāo)號、寄存器的內(nèi)容是地址表達(dá)式的特例。址表達(dá)式的特例。 地址表達(dá)式中可以使用算術(shù)運算符中的地址表達(dá)式中可以使用算
31、術(shù)運算符中的“+”“+”、“-”“-”運運算符和關(guān)系運算符。算符和關(guān)系運算符。 在地址表達(dá)式中,常用的形式是:變量常量。在地址表達(dá)式中,常用的形式是:變量常量。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 地址表達(dá)式除使用數(shù)值表達(dá)式的運算符外,還可以使地址表達(dá)式除使用數(shù)值表達(dá)式的運算符外,還可以使用特殊算符。用特殊算符。(a a)屬性運算符屬性運算符 屬性運算符主要用于臨時修改變量、標(biāo)號或某個內(nèi)存單屬性運算符主要用于臨時修改變量、標(biāo)號或某個內(nèi)存單元中的操作數(shù)的類型屬性。元中的操作數(shù)的類型屬性。 段超越前綴段超越前綴“:”。 其格式為:段寄存器名:地址表達(dá)式其
32、格式為:段寄存器名:地址表達(dá)式 或段名:地址表達(dá)式或段名:地址表達(dá)式 類型運算符類型運算符PTRPTR。 其使用格式為:類型其使用格式為:類型 PTR PTR 地址表達(dá)式地址表達(dá)式 根據(jù)地址表達(dá)式的不同值,類型可以是根據(jù)地址表達(dá)式的不同值,類型可以是BYTEBYTE、WORDWORD、DWORDDWORD、NEARNEAR、FARFAR等。等。 定義類型運算符定義類型運算符THISTHIS。 其格式為:標(biāo)識符其格式為:標(biāo)識符 EQU THIS EQU THIS 類型類型匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (b b)數(shù)值返回運算符數(shù)值返回運算符 數(shù)值返
33、回運算符有數(shù)值返回運算符有5 5種,這些運算符的運算對象必須是變種,這些運算符的運算對象必須是變量或標(biāo)號,其功能是分離出變量或標(biāo)號的段、偏移地址及量或標(biāo)號,其功能是分離出變量或標(biāo)號的段、偏移地址及類型的屬性值,運算結(jié)果為一數(shù)值常量。類型的屬性值,運算結(jié)果為一數(shù)值常量。 SEGSEG運算符運算符 格式:格式:SEG SEG 變量或標(biāo)號變量或標(biāo)號 功能:分離出其后變量或標(biāo)號所在段的段首地址。功能:分離出其后變量或標(biāo)號所在段的段首地址。 OFFSET OFFSET運算符運算符 格式:格式:OFFSET OFFSET 變量或標(biāo)號變量或標(biāo)號 功能:分離出其后變量或標(biāo)號的偏移地址。功能:分離出其后變量或標(biāo)
34、號的偏移地址。 TYPE TYPE運算符運算符 格式:格式:TYPE TYPE 變量或標(biāo)號變量或標(biāo)號 功能:分離出其后變量或標(biāo)號的類型值。功能:分離出其后變量或標(biāo)號的類型值。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 LENGTH LENGTH運算符運算符 格式:格式:LENGTH LENGTH 變量變量 功能:取出變量所含的數(shù)據(jù)存儲單元個數(shù)。該運算符只功能:取出變量所含的數(shù)據(jù)存儲單元個數(shù)。該運算符只對變量起作用,它的取值根據(jù)定義該變量時數(shù)據(jù)定義偽指對變量起作用,它的取值根據(jù)定義該變量時數(shù)據(jù)定義偽指令后面第一個表達(dá)式的形式而定。如果第一個表達(dá)式為重令后面第一
35、個表達(dá)式的形式而定。如果第一個表達(dá)式為重復(fù)子句復(fù)子句“n nDUP DUP (表達(dá)式)表達(dá)式)”的形式,則取值為前面的重的形式,則取值為前面的重復(fù)因子復(fù)因子n n。如果為其它形式的表達(dá)式,則取值均為如果為其它形式的表達(dá)式,則取值均為1 1。 SIZE SIZE運算符運算符 格式:格式:SIZE SIZE 變量變量 功能:取出變量所含的數(shù)據(jù)存儲區(qū)的總字節(jié)數(shù)。其返回功能:取出變量所含的數(shù)據(jù)存儲區(qū)的總字節(jié)數(shù)。其返回值為該變量的值為該變量的LENGTHLENGTH值和值和TYPETYPE值的乘積,即:值的乘積,即:LENGTH LENGTH 變量變量 * * YTPE YTPE 變量。變量。匯編語言匯
36、編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (c c)分離運算符分離運算符 分離高字節(jié)運算符分離高字節(jié)運算符HIGHHIGH。 格式:格式:HIGH HIGH 常量或地址表達(dá)式常量或地址表達(dá)式 功能:用來分離出其后功能:用來分離出其后1616位常量或地址表達(dá)式的偏移地位常量或地址表達(dá)式的偏移地址的高字節(jié)。址的高字節(jié)。 分離低字節(jié)運算符分離低字節(jié)運算符LOWLOW。 格式:格式:LOW LOW 常量或地址表達(dá)式常量或地址表達(dá)式 功能:用來分離出其后功能:用來分離出其后1616位常量或地址表達(dá)式的偏移地位常量或地址表達(dá)式的偏移地址的低字節(jié)。址的低字節(jié)。 (d d)其他運算
37、符其他運算符 SHORT SHORT運算符:用于說明其后的標(biāo)號在短距離運算符:用于說明其后的標(biāo)號在短距離 (-128-27-128-27之間)內(nèi)。之間)內(nèi)。 ()運算符用于改變運算的優(yōu)先級別。()運算符用于改變運算的優(yōu)先級別。 運算符用于表示間接尋址。運算符用于表示間接尋址。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4.4 4.4 偽指令偽指令 偽指令又稱為偽操作,偽指令是匯編語言程序設(shè)計的一偽指令又稱為偽操作,偽指令是匯編語言程序設(shè)計的一個重要部分,由于匯編程序在匯編過程中無法區(qū)分源程序中個重要部分,由于匯編程序在匯編過程中無法區(qū)分源程序中的分段情況,哪
38、些是數(shù)據(jù),哪些是指令,也無法識別數(shù)據(jù)的的分段情況,哪些是數(shù)據(jù),哪些是指令,也無法識別數(shù)據(jù)的類型,以及源程序在哪結(jié)束,因此,類型,以及源程序在哪結(jié)束,因此,8080X86X86宏匯編語言提供宏匯編語言提供了多種偽指令,它主要告訴匯編程序如何正確地將匯編源程了多種偽指令,它主要告訴匯編程序如何正確地將匯編源程序匯編成目標(biāo)程序。序匯編成目標(biāo)程序。 1、數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令常用的數(shù)據(jù)定義偽指令有常用的數(shù)據(jù)定義偽指令有DBDB、DWDW、DDDD、DQDQ、DTDT。格式:格式: 變量變量 數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令 表達(dá)式表達(dá)式 ,表達(dá)式,表達(dá)式,功能:定義數(shù)據(jù)存儲區(qū),類型由數(shù)據(jù)定義偽指令確
39、定,初功能:定義數(shù)據(jù)存儲區(qū),類型由數(shù)據(jù)定義偽指令確定,初值由表達(dá)式給定。值由表達(dá)式給定。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 2 2、符號定義偽指令、符號定義偽指令符號定義偽指令用于為程序中多次出現(xiàn)的同一個常量或符號定義偽指令用于為程序中多次出現(xiàn)的同一個常量或表達(dá)式定義為一個標(biāo)識符,以便在源程序中以標(biāo)識符來代表達(dá)式定義為一個標(biāo)識符,以便在源程序中以標(biāo)識符來代替對應(yīng)的常量或表達(dá)式。符號定義偽指令有以下兩種。替對應(yīng)的常量或表達(dá)式。符號定義偽指令有以下兩種。(1 1)等價偽指令)等價偽指令EQUEQU 格式:符號名格式:符號名 EQU EQU 表達(dá)式表達(dá)式
40、 功能:為常量或表達(dá)式及其它各種符號定義一個等價的功能:為常量或表達(dá)式及其它各種符號定義一個等價的 符號名,但它不申請分配存儲單元。符號名,但它不申請分配存儲單元。 說明:說明: 表達(dá)式可以是常量或數(shù)值表達(dá)式;地址表達(dá)式;變表達(dá)式可以是常量或數(shù)值表達(dá)式;地址表達(dá)式;變量、標(biāo)號或指令助記符。量、標(biāo)號或指令助記符。 符號名不占存儲單元,沒有段、偏移和類型符號名不占存儲單元,沒有段、偏移和類型3 3種屬性種屬性 在同一源程序中,使用在同一源程序中,使用EQUEQU定義的符號不能與本程序定義的符號不能與本程序中的其它符號名同名;另外,同一符號不能用中的其它符號名同名;另外,同一符號不能用EQUEQU偽
41、指令重偽指令重新定義。新定義。匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 EQUEQU偽指令主要有以下偽指令主要有以下3 3方面應(yīng)用:方面應(yīng)用: 定義符號常量。用符號名表示常量、數(shù)值表達(dá)式。定義符號常量。用符號名表示常量、數(shù)值表達(dá)式。 EQU EQU與屬性運算符與屬性運算符PTRPTR或或THISTHIS連用,可以給變量或標(biāo)號連用,可以給變量或標(biāo)號定義新的類型屬性并重新命名。但其段屬性和偏移屬性不定義新的類型屬性并重新命名。但其段屬性和偏移屬性不變。變。 利用利用EQUEQU可以用一個符號名替代一個復(fù)雜的地址表可以用一個符號名替代一個復(fù)雜的地址表達(dá)式和其它一
42、些符號達(dá)式和其它一些符號 ,如指令助記符、變量名、標(biāo)號、段,如指令助記符、變量名、標(biāo)號、段名、寄存器名、宏定義名等。名、寄存器名、宏定義名等。 (2 2)等號偽指令)等號偽指令 格式:符號名格式:符號名 = = 表達(dá)式表達(dá)式 功能:該語句的功能與功能:該語句的功能與EQUEQU語句類似,不同的是等號偽語句類似,不同的是等號偽指令能對所定義的符號名多次重新定義,且以最后一次定指令能對所定義的符號名多次重新定義,且以最后一次定義的值為準(zhǔn)。義的值為準(zhǔn)。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 3 3、段結(jié)構(gòu)偽指令段結(jié)構(gòu)偽指令編制一個編制一個8080X86X86
43、匯編語言源程序,段是基礎(chǔ),這有兩方面匯編語言源程序,段是基礎(chǔ),這有兩方面含義:一是必須按段來構(gòu)造程序,二是在程序執(zhí)行時,要憑含義:一是必須按段來構(gòu)造程序,二是在程序執(zhí)行時,要憑借四個段寄存器對各個段的存儲單元進(jìn)行訪問。段結(jié)構(gòu)偽指借四個段寄存器對各個段的存儲單元進(jìn)行訪問。段結(jié)構(gòu)偽指令主要有兩條語句,即段定義偽指令和假定偽指令。令主要有兩條語句,即段定義偽指令和假定偽指令。(1 1)段定義偽指令)段定義偽指令SEGMENT/ ENDSSEGMENT/ ENDS格式:段名格式:段名 SEGMENT SEGMENT 定位類型定位類型 組合類型組合類型 類別類別 段體段體 段名段名 ENDSENDS功能
44、:定義一個邏輯段,指定段的名字和范圍,段在內(nèi)存功能:定義一個邏輯段,指定段的名字和范圍,段在內(nèi)存中的起始位置、段與段之間的連接關(guān)系。中的起始位置、段與段之間的連接關(guān)系。說明:說明: 段名由用戶指定,開始與結(jié)束的段名須一致。段名由用戶指定,開始與結(jié)束的段名須一致。 SEGMENT/ ENDSSEGMENT/ ENDS偽指令把程序分成若干邏輯段。偽指令把程序分成若干邏輯段。 刪節(jié)號為段體,段體內(nèi)為指令和偽指令序列。刪節(jié)號為段體,段體內(nèi)為指令和偽指令序列。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (2 2)假定偽指令)假定偽指令A(yù)SSUMEASSUME假定偽指
45、令主要用于指示匯編程序哪些段是當(dāng)前段以及這假定偽指令主要用于指示匯編程序哪些段是當(dāng)前段以及這些段與段寄存器之間的對應(yīng)關(guān)系。些段與段寄存器之間的對應(yīng)關(guān)系。格式格式: :ASSUME ASSUME 段寄存器名段寄存器名: :段名段名,段寄存器名段寄存器名: :段名段名, , 其中,段名是指用其中,段名是指用SEGMENT/ ENDSSEGMENT/ ENDS語句已定義的段名,也可語句已定義的段名,也可以是表達(dá)式以是表達(dá)式“SEG SEG 變量或標(biāo)號變量或標(biāo)號”,或者是關(guān)鍵字,或者是關(guān)鍵字NOTHINGNOTHING;段段寄存器名可為寄存器名可為CSCS、DSDS、SSSS、ESES四者之一。四者之
46、一。功能:該語句一般出現(xiàn)在代碼段中,用來設(shè)定段寄存器與段功能:該語句一般出現(xiàn)在代碼段中,用來設(shè)定段寄存器與段之間的對應(yīng)關(guān)系,以便匯編程序知道段的結(jié)構(gòu)和在執(zhí)行各種之間的對應(yīng)關(guān)系,以便匯編程序知道段的結(jié)構(gòu)和在執(zhí)行各種指令時知道應(yīng)訪問哪個段;也可用來取消段寄存器與段之間指令時知道應(yīng)訪問哪個段;也可用來取消段寄存器與段之間的對應(yīng)關(guān)系(使用的對應(yīng)關(guān)系(使用NOTHINGNOTHING時)。時)。說明:說明: ASSUMEASSUME偽指令設(shè)置在代碼段內(nèi),第一個偽指令設(shè)置在代碼段內(nèi),第一個ASSUMEASSUME語句一般放語句一般放在段定義語句之后,是說明性語句。在段定義語句之后,是說明性語句。 匯編語言
47、匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 在一個代碼段中,如果沒有另外的在一個代碼段中,如果沒有另外的ASSUMEASSUME偽指令重偽指令重新設(shè)置,原有新設(shè)置,原有ASSUMEASSUME語句的設(shè)置一直有效。語句的設(shè)置一直有效。 不在當(dāng)前段中的變量和數(shù)據(jù)存儲單元均是不可訪問不在當(dāng)前段中的變量和數(shù)據(jù)存儲單元均是不可訪問的,否則,會在匯編時產(chǎn)生錯誤或運行時造成混亂,產(chǎn)生邏的,否則,會在匯編時產(chǎn)生錯誤或運行時造成混亂,產(chǎn)生邏輯上的錯誤,得出錯誤結(jié)果。輯上的錯誤,得出錯誤結(jié)果。 ASSUMEASSUME偽指令不產(chǎn)生任何目標(biāo)代碼,它僅僅是告訴匯偽指令不產(chǎn)生任何目標(biāo)代碼,它
48、僅僅是告訴匯編程序,哪些段是當(dāng)前段,而且它們分別由哪個段寄存器指編程序,哪些段是當(dāng)前段,而且它們分別由哪個段寄存器指向。向。 匯編程序不能檢查在程序運行期間段寄存器內(nèi)容是否匯編程序不能檢查在程序運行期間段寄存器內(nèi)容是否與上述與上述ASSUMEASSUME語句的設(shè)置一致。如果在程序中間用語句的設(shè)置一致。如果在程序中間用ASSUMEASSUME語語句重建了句重建了DSDS或或ESES與某段的關(guān)系時,就一定要緊跟著將這個新與某段的關(guān)系時,就一定要緊跟著將這個新段首地址送入段首地址送入DSDS或或ESES中,否則,會因段寄存器的內(nèi)容未更改中,否則,會因段寄存器的內(nèi)容未更改而使得后面數(shù)據(jù)的讀寫仍在原來的
49、數(shù)據(jù)段中進(jìn)行,這樣的錯而使得后面數(shù)據(jù)的讀寫仍在原來的數(shù)據(jù)段中進(jìn)行,這樣的錯誤,系統(tǒng)是檢查不出來的,即出現(xiàn)邏輯錯誤。誤,系統(tǒng)是檢查不出來的,即出現(xiàn)邏輯錯誤。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 4 4、源程序開始和結(jié)束偽指令源程序開始和結(jié)束偽指令 (1 1)源程序開始偽指令)源程序開始偽指令 在源程序開始處可以用在源程序開始處可以用NAMENAME或或TITLETITLE為模塊取名字。為模塊取名字。 NAMENAME偽指令偽指令 格式:格式:NAME NAME 模塊名模塊名 匯編程序?qū)⒁越o出的匯編程序?qū)⒁越o出的“模塊名模塊名”作為模塊的名字。作為模塊的
50、名字。 TITLETITLE偽指令偽指令 如果程序中沒有如果程序中沒有NAMENAME偽指令,則也可使用偽指令,則也可使用TITLETITLE偽指令。偽指令。 格式:格式:TITLE textTITLE text TITLE TITLE偽指令可指定每一頁上打印的標(biāo)題。同時,若程序中偽指令可指定每一頁上打印的標(biāo)題。同時,若程序中沒有沒有NAMENAME偽指令,則匯編程序?qū)⒂脗沃噶?,則匯編程序?qū)⒂胻ext text 中的前中的前6 6個字符作為個字符作為模塊名。模塊名。texttext最多可有最多可有6060個字符。個字符。 若程序中既無若程序中既無NAMENAME又無又無TITLETITLE偽指
51、令,則將用源程序名作為偽指令,則將用源程序名作為模塊名。所以模塊名。所以NAMENAME及及TITLETITLE偽指令并不是必要的,但一般常使偽指令并不是必要的,但一般常使用用TITLETITLE,以便在列表文件中能打印出標(biāo)題來。以便在列表文件中能打印出標(biāo)題來。 匯編語言匯編語言淮南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章 (2 2)源程序結(jié)束偽指令源程序結(jié)束偽指令格式:格式:END END 地址表達(dá)式地址表達(dá)式 功能:該語句為源程序的最后一個語句,用以標(biāo)志整功能:該語句為源程序的最后一個語句,用以標(biāo)志整個程序的結(jié)束,即告訴匯編程序匯編工作到此個程序的結(jié)束,即告訴匯編程序匯編
52、工作到此結(jié)束。結(jié)束。其中,地址表達(dá)式為可選項,若選用地址表達(dá)式,則其中,地址表達(dá)式為可選項,若選用地址表達(dá)式,則表示此程序是主程序,它可以單獨執(zhí)行,其地址表達(dá)式表示此程序是主程序,它可以單獨執(zhí)行,其地址表達(dá)式為該程序的啟動地址,即程序開始運行的第一條指令的為該程序的啟動地址,即程序開始運行的第一條指令的地址,例如,地址,例如,“ENDENDSTART”START”,此此STARTSTART是第一條指令的是第一條指令的標(biāo)號;若不選用表達(dá)式,則說明此程序為一子程序,不標(biāo)號;若不選用表達(dá)式,則說明此程序為一子程序,不能單獨運行,只能被其它程序調(diào)用。能單獨運行,只能被其它程序調(diào)用。 匯編語言匯編語言淮
53、南師范學(xué)院重點課程淮南師范學(xué)院重點課程匯編語言程序設(shè)計第4章5 5、定位偽指令、定位偽指令ORGORG與匯編地址計數(shù)器(與匯編地址計數(shù)器($ $) 匯編程序在匯編源程序時,每遇到一新段,就為該段匯編程序在匯編源程序時,每遇到一新段,就為該段設(shè)置一個初值為設(shè)置一個初值為0 0的匯編地址計數(shù)器,匯編程序使用匯編的匯編地址計數(shù)器,匯編程序使用匯編地址計數(shù)器記載正在匯編的數(shù)據(jù)或指令的目標(biāo)代碼在當(dāng)前地址計數(shù)器記載正在匯編的數(shù)據(jù)或指令的目標(biāo)代碼在當(dāng)前段內(nèi)的偏移地址。段內(nèi)的偏移地址。 當(dāng)前匯編地址計數(shù)器的值可用符號當(dāng)前匯編地址計數(shù)器的值可用符號$ $表示,用戶可在程表示,用戶可在程序中直接使用序中直接使用$ $,表示引用當(dāng)前匯編地址計數(shù)器的值。例,表示引用當(dāng)前匯編地址計數(shù)器的值。例如:如: ARRAY DW 4000HARRAY DW 4000H,5000H5000H,6000H6000H COUNT EQU COUNT EQU ($ - ARRAY$ - ARRAY)/ 2 / 2 匯編地址計數(shù)器的值可以用定位偽指令匯編地址計數(shù)器的值可以用定位偽指令ORGORG設(shè)置。設(shè)置。 ORG ORG偽指令格式:偽指令格式: ORG ORG 數(shù)值表達(dá)式數(shù)值表達(dá)式 功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 執(zhí)行案件代理合同(2篇)
- 八年級上冊道德與法治第二單元 遵守社會規(guī)則 復(fù)習(xí)聽課評課記錄
- 冀教版歷史九年級上冊第2課《古代印度文明》聽課評課記錄
- 新版(修訂版)北師大版小學(xué)五年級數(shù)學(xué)下冊聽評課記錄精寫
- 蘇科版數(shù)學(xué)八年級上冊4.3《實數(shù)》聽評課記錄2
- 湘教版數(shù)學(xué)七年級上冊《2.5整式的加法和減法(1)》聽評課記錄5
- 蘇教版數(shù)學(xué)九年級上冊聽評課記錄《2-1圓(2)》
- 蘇科版數(shù)學(xué)八年級上冊《4.2 立方根》聽評課記錄
- 華師大版歷史九年級上冊第6課《古希臘羅馬文化》聽課評課記錄
- 人民版道德與法治七年級上冊5.1《心中有他人》聽課評課記錄
- 礦井主要災(zāi)害事故防治應(yīng)急避災(zāi)知識培訓(xùn)課件
- 不老莓行業(yè)分析
- STARCCM基礎(chǔ)培訓(xùn)教程
- 2016-2023年婁底職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 貴陽市2024年高三年級適應(yīng)性考試(一)一模英語試卷(含答案)
- 地理標(biāo)志專題通用課件
- 全國大學(xué)高考百科匯編之《哈爾濱工業(yè)大學(xué)》簡介
- 《小英雄雨來》讀書分享會
- 學(xué)校安全教育教你如何遠(yuǎn)離危險
- 【人教版】九年級化學(xué)上冊全冊單元測試卷【1-7單元合集】
- 口腔科導(dǎo)診分診技巧(PPT課件)
評論
0/150
提交評論