資源描述:
《匯編語言程序設(shè)計(jì)第4章80868088匯編語言ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、8086/8088和ARM核匯編語言程序設(shè)計(jì)第4章8086/8088匯編語言(格式)第十一講4.1匯編語言和匯編程序的基本概念4.2匯編語言源程序書寫格式4.3偽指令語句第4章8086/8088匯編語言(格式)4.48086/8088匯編語言程序格式4.5匯編語言的上機(jī)過程第4章匯編語言程序格式教學(xué)重點(diǎn)?偽指令變量和標(biāo)號匯編語言程序格式與開發(fā)匯編語言是一種面向CPU指令系統(tǒng)的程序設(shè)計(jì)語言,它采用指令系統(tǒng)的助記符來表示操作碼和操作數(shù),用符號地址表示操作數(shù)地址,因而易記、易讀、易修改,給編程帶來很大方便。用匯編語言編寫的程序能夠直接利用硬件系統(tǒng)的特
2、性,直接對位、字節(jié)、字寄存器、存儲(chǔ)單元、I/O端口等進(jìn)行處理,同時(shí)也能直接使用CPU指令系統(tǒng)和指令系統(tǒng)提供的各種尋址方式編制出高質(zhì)量的程序,這種程序不但占用內(nèi)存空間少,而且執(zhí)行速度快。4.1.1匯編語言4.1匯編語言和匯編程序的基本概念用匯編語言編寫的源程序在輸入計(jì)算機(jī)后,需要將其翻譯成目標(biāo)程序,計(jì)算機(jī)才能執(zhí)行相應(yīng)指令,這個(gè)翻譯過程稱為匯編,完成匯編任務(wù)的程序稱為匯編程序。匯編程序有基本匯編ASM(Assembler)和宏匯編MASM(MacroAssembler)兩種。匯編程序以匯編語言源程序文件作為輸入,并由它產(chǎn)生兩種輸出文件:目標(biāo)程序文件
3、和源程序列表文件。4.1匯編語言和匯編程序的基本概念4.1.2匯編程序4.1匯編語言和匯編程序的基本概念4.1.2匯編程序編輯程序.ASM文件匯編程序.OBJ文件連接程序.EXE文件Edit等MASMLINK匯編語言程序的建立和匯編過程在計(jì)算機(jī)上運(yùn)行匯編語言程序的步驟是:用編輯程序(任何一種文本編輯程序)建立ASM文件;用MASM程序把ASM文件轉(zhuǎn)換成OBJ文件;用LINK程序把OBJ文件轉(zhuǎn)換成EXE文件;用DOS命令直接鍵入文件名就可執(zhí)行該程序;4.1匯編語言和匯編程序的基本概念4.1.2匯編程序匯編程序的主要功能:(1)檢查源程序,給出出錯(cuò)
4、信息。(2)產(chǎn)生目標(biāo)文件(.obj)和列表文件(.lst)。(3)展開宏指令。4.2匯編語言源程序書寫格式4.3偽指令語句第4章8086/8088匯編語言(格式)4.48086/8088匯編語言程序格式4.5匯編語言的上機(jī)過程4.1匯編語言和匯編程序的基本概念4.2匯編語言源程序書寫格式4.2.1匯編語言源程序的分段結(jié)構(gòu)●數(shù)據(jù)段●堆棧段●代碼段●附加段4.2.2匯編語言源程序的語句類型●指令語句●偽指令語句●宏指令語句區(qū)別?用途?第4章:匯編語言源程序格式完整的匯編語言源程序由段組成一個(gè)匯編語言源程序可以包含若干個(gè)代碼段、數(shù)據(jù)段、附加段或堆棧段
5、,段與段之間的順序可隨意排列需獨(dú)立運(yùn)行的程序必須包含一個(gè)代碼段,并指示程序執(zhí)行的起始點(diǎn),一個(gè)程序只有一個(gè)起始點(diǎn)所有的可執(zhí)行性語句必須位于某一個(gè)代碼段內(nèi),說明性語句可根據(jù)需要位于任一段內(nèi)通常,程序還需要一個(gè)堆棧段源程序由語句序列構(gòu)成第4章:例:在屏幕上顯示一段信息;數(shù)據(jù)段(定義要顯示的字符串)stringdb’Hello,Assembly!’,0dh,0ah,’$’;代碼段(顯示字符串的程序)movdx,offsetstringmovah,9int21hHello,Assembly!程序功能第4章:程序開始為了指明程序開始執(zhí)行的位置,需要使用一個(gè)
6、標(biāo)號(例題中采用了start標(biāo)識(shí)符)連接程序會(huì)根據(jù)程序起始點(diǎn)正確地設(shè)置CS和IP值,根據(jù)程序大小和堆棧段大小設(shè)置SS和SP值連接程序沒有設(shè)置DS和ES值。程序如果使用數(shù)據(jù)段或附加段,必須明確給DS或ES賦值大多數(shù)程序需要數(shù)據(jù)段,程序的執(zhí)行開始應(yīng)是:start:movax,data;movds,ax;設(shè)置DS第4章:程序終止應(yīng)用程序執(zhí)行結(jié)束,應(yīng)該將控制權(quán)交還操作系統(tǒng)匯編語言程序設(shè)計(jì)中,有多種返回DOS的方法,但一般利用DOS功能調(diào)用的4CH子功能實(shí)現(xiàn),它需要的入口參數(shù)是AL=返回?cái)?shù)碼(通常用0表示程序沒有錯(cuò)誤)于是,應(yīng)用程序的終止代碼就是:mov
7、ax,4c00hint21h第4章:匯編結(jié)束匯編結(jié)束表示匯編程序到此結(jié)束將源程序翻譯成目標(biāo)模塊代碼的過程源程序的最后必須有一條END偽指令END[標(biāo)號]可選的“標(biāo)號”參數(shù)指定程序開始執(zhí)行點(diǎn),連接程序據(jù)此設(shè)置CS和IP值(例題中采用了start標(biāo)識(shí)符)————不要糊涂————程序終止和匯編結(jié)束是兩碼事第4章:第一個(gè)源程序文件wjl301.asm;wjl301.asmDatasegmentstringdb’Hello,Assembly!’,0dh,0ah,’$’DataendsCodesegmentassumeds:data,cs:codestar
8、t:movax,datamovds,axmovdx,offsetstringmovah,9int21hmovax,4c00hint21hCodeend