資源描述:
《+偽指令與匯編語言程序結(jié)構(gòu)課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第4章偽指令及匯編語言程序結(jié)構(gòu)重點掌握:匯編語言和匯編程序源程序的格式及程序分段參數(shù)的表達、變量的定義偽指令的格式、功能及應(yīng)用匯編語言源程序的建立、匯編、連接、調(diào)試及運行4.1匯編語言和匯編程序匯編語言的特點匯編語言是一種以處理器指令系統(tǒng)為基礎(chǔ)的低級程序設(shè)計語言,它采用助記符表達指令操作碼,采用標識符號表示指令操作數(shù)。利用匯編語言編寫程序的主要優(yōu)點是可以直接、有效地控制計算機硬件,因而容易創(chuàng)建代碼序列短小、運行快速的可執(zhí)行程序。在有些應(yīng)用領(lǐng)域,匯編語言的作用是不容置疑和無可替代的。匯編程序設(shè)計的過程是與其他高級語言程序設(shè)計大致相同。匯編程序編輯程序連接程序program.asmprogra
2、m.objprogram.exe匯編程序功能●匯編程序的主要功能:檢查源程序,給出出錯信息。產(chǎn)生目標文件(.obj)和列表文件(.lst)。展開宏指令?!駞R編語言程序的處理過程(開發(fā)步驟):編輯程序.ASM文件匯編程序.OBJ文件連接程序.EXE文件Edit等MASMLINK運行與調(diào)試1、編輯:形成.ASM文件(EDIT)2、匯編(編譯):將.ASM文件翻譯成二進制代碼的目標文件(即將助記符語言翻譯成機器指令),形成.OBJ文件。(MASM)3、連接:.OBJ雖是二進制文件,但不能直接上機運行,必須經(jīng)過連接,把目標文件與庫文件等其他連接在一起,形成可執(zhí)行文件.EXE。(LINK)4、運行:
3、可在DOS提示符下鍵入文件名運行。5、調(diào)試:在DEBUG下進行動態(tài)調(diào)試,檢查錯誤等。4.2匯編語言語句格式●匯編語言程序由三種基本語句組成:指令語句、偽指令語句、宏指令語句●指令語句格式:標號:助記符操作數(shù);注釋,完整的匯編語言程序格式;大于50送數(shù),小于等于則省略my_datasegmentagain:Moval,[si]array1db05,a2H,00,10H,85HIncsinequ5Cmpal,50array2dbndup(?)Jbenextmy_dataendsMov[di],almy_codesegmentIncdiassumecs:my_codenext:deccxassu
4、meds:my_datajnzagainbegin:movax,my_datamovah,4chmovds,axint21hLeasi,array1my_codeendsLeadi,array2endbeginMovcx,n05A2001085array1array2DSCS匯編語言源程序格式完整的匯編語言源程序由段組成。一個匯編語言源程序可以包含若干個代碼段、數(shù)據(jù)段、附加段或堆棧段,段與段之間的順序可隨意排列。需獨立運行的程序必須包含一個代碼段,并指示程序執(zhí)行的起始點,一個程序只有一個起始點。所有的可執(zhí)行性語句必須位于某一個代碼段內(nèi),說明性語句可根據(jù)需要位于任一段內(nèi)。通常,程序還需要一個
5、堆棧段。源程序由語句序列構(gòu)成匯編語言的語句格式⑴執(zhí)行性語句——執(zhí)行性語句用于表達處理器指令(也稱為硬指令),匯編后對應(yīng)一條指令代碼。由處理器指令組成的代碼序列是程序設(shè)計的主體。標號:硬指令助記符操作數(shù),操作數(shù);注釋⑵說明性語句——說明性語句用于表達偽指令,指示源程序如何匯編、變量怎樣定義、過程怎么設(shè)置等。名字偽指令助記符參數(shù),參數(shù),……;注釋匯編語言程序格式標號指令寄存器說明程序或語句變量偽指令標號的功能宏指令變量常數(shù)表達式源程序的每條語句可表示為:[名字]操作項操作數(shù)[;注釋]標號/變量:段值、偏移量、類型三種屬性表達式:數(shù)字表達式地址表達式一、名字項●每條語句中的名字項可以是標號,或偽
6、指令定義的對象。例:START:PUSHDSXORAX,AXPUSHAXMESS1DB‘NO····$'標號,用來表示一條指令的地址。變量,用來表示數(shù)據(jù)的地址。●不論是標號還是偽指令定義的對象,都可稱標識符?!魳俗R符的組成:◆標識符的規(guī)定:①不能以數(shù)字開頭。②標識符的長度≦31。③專用字符?不能單獨構(gòu)成標識符。一般情況下,名字項可以是標號或變量。他們用來表示本語句的符號地址,是可有可無的,只有當需要用符號地址來訪問該語句時才出現(xiàn)。1、標號標號實際上是用符號表示的地址。標號在代碼段中定義,后跟“:”號。是一條指令目標代碼所在存儲單元的符號地址,表明該指令代碼在存儲器中的位置,可作為轉(zhuǎn)移指令或
7、CALL指令的操作數(shù),以確定程序轉(zhuǎn)移的目標地址?!駱颂栍腥N屬性:◆段屬性(SEG):表明該條指令目標代碼在哪個邏輯段中,即提供標號所在段的基址。(16位)◆偏移量屬性(OFFSET):表明標號所在段的偏移地址,即標號所在單元與首地址之間的字節(jié)距離。(16位)◆類型屬性(距離屬性):表明標號可作為段內(nèi)或段間轉(zhuǎn)移的特性。①NEAR(近距離):段內(nèi)轉(zhuǎn)移,只修改IP值,不修改CS值。類型值為-1(0FFH)。②FAR(遠距離)