微機原理及應(yīng)用 課件 6.1 匯編語言源程序的結(jié)構(gòu)_第1頁
微機原理及應(yīng)用 課件 6.1 匯編語言源程序的結(jié)構(gòu)_第2頁
微機原理及應(yīng)用 課件 6.1 匯編語言源程序的結(jié)構(gòu)_第3頁
微機原理及應(yīng)用 課件 6.1 匯編語言源程序的結(jié)構(gòu)_第4頁
微機原理及應(yīng)用 課件 6.1 匯編語言源程序的結(jié)構(gòu)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理及應(yīng)用第六章匯編語言程序設(shè)計第一講匯編語言源程序的結(jié)構(gòu)從本次課開始,我們來學(xué)習匯編語言源程序設(shè)計匯編語言源程序的結(jié)構(gòu)首先來看一下什么是匯編語言在了解匯編語言之前,我們先來了解一下高級語言。高級語言是脫離了機器的語言,不需要考慮計算機生產(chǎn)的廠家或者是CPU的型號,它更接近于人的自然語言,因此比較容易學(xué),容易懂,由于高級語言比較容易掌握,因而它的應(yīng)用也十分廣泛比如大家都學(xué)習過的c語言,就是高級語言的一種什么是匯編語言?首先來看一下什么是匯編語言,在了解匯編語言之前,我們先來了解一下高級語言。高級語言是脫離了機器的語言,不需要考慮計算機生產(chǎn)的廠家或者是CPU的型號,它更接近于人的自然語言,因此比較容易學(xué),容易懂,高級語言脫離機器的語言接近人的自然語言容易掌握比如大家都學(xué)習過的c語言,就是高級語言的一種脫離機器的語言接近人的自然語言容易掌握c語言高級語言那么什么是機器語言呢?什么是機器語言?機器語言是指各種CPU所能直接識別和執(zhí)行的二進制代碼機器語言CPU能直接識別和執(zhí)行的二進制代碼它是計算機能夠直接識別的語言,但是對于人來說就比較難于記憶、書寫和輸入機器語言計算機人能夠直接識別較難記憶、書寫和輸入?yún)R編語言是介于高級語言和機器語言的一種語言匯編語言高級語言機器語言它是將機器語言中的代碼指令符號化成了助記符而構(gòu)成的一種編程語言,它的每一條指令都是用助記符來表示的,再加上一系列的編程規(guī)則,就構(gòu)成了匯編語言將機器語言中的代碼指令符號化成助記符匯編語言:每一條指令都用助記符表示,再加上編程規(guī)則匯編語言的優(yōu)點包括,它采用了助記符指令,對于人來說更容易記憶和書寫,第二個優(yōu)點是,匯編語言經(jīng)過編輯、匯編,連接和調(diào)試以后可以生成可執(zhí)行的文件,可執(zhí)行文件就是CPU能夠直接識別的代碼了,因此CPU去執(zhí)行它的時候就會非常的快01采用了助記符指令,容易記憶和書寫02經(jīng)過編輯、匯編,連接和調(diào)試后生成可執(zhí)行的文件匯編語言的優(yōu)點可執(zhí)行文件:CPU能直接識別的代碼它的缺點是跟硬件結(jié)構(gòu)相掛鉤,也就是說不同的硬件結(jié)構(gòu)的匯編語言指令可能是不相同的,因此,一旦換了硬件,程序可能就跑不了了。匯編語言的缺點硬件結(jié)構(gòu)硬件結(jié)構(gòu)不同的匯編語言指令可能不同在前面,我們已經(jīng)學(xué)習了8088和8086的指令集,這一章,我們會利用這些指令來完成一個功能程序的編寫編寫功能程序下面我們來了解一下匯編語言的程序結(jié)構(gòu)匯編語言的程序結(jié)構(gòu)一個完整的匯編語言源程序,通常是由若干個邏輯段組成的,邏輯段我們跟他叫segment,在程序中你可能會看到很多個segment,這些segment定義了邏輯段的內(nèi)容,如數(shù)據(jù)段,附加段,堆棧段和代碼段,每個邏輯段都是用segment這個語句開始,并且用ENDS這個語句結(jié)束,而整個源程序用and語句來結(jié)束程序結(jié)構(gòu)匯編語言源程序:由若干個邏輯段(SEGMENT)組成包括數(shù)據(jù)段、附加段、堆棧段和代碼段每個邏輯段以SEGMENT語句開始,ENDS語句結(jié)束整個源程序用END語句結(jié)束大體上這個結(jié)構(gòu)呢就是這樣子的段名1SEGMENT…段名1ENDS段名2SEGMENT…段名2ENDSEND下面通過一個例子來看一下,大家不需要了解這個例子它所執(zhí)行的功能,只看它的結(jié)構(gòu)DSEGSEGMENT定義數(shù)據(jù)段DATA1DW0F865H定義被加數(shù)DATA2DW360CH定義加數(shù)DSEGENDS數(shù)據(jù)段結(jié)束ESEGSEGMENT定義附加段SUMDW2DUP(?)定義存放結(jié)果區(qū)ESEGENDS附加段結(jié)束CSEGSEGMENT定義代碼段ASSUMECS:CSEG,DS:DSEG,ES:ESEG結(jié)構(gòu)首先,在程序的一開始,用紅色的字符寫出了一個Segment,它表示一個邏輯段的開始,紅色的字符ENDS,表示這個邏輯段的結(jié)束DSEGSEGMENT定義數(shù)據(jù)段DATA1DW0F865H定義被加數(shù)DATA2DW360CH定義加數(shù)DSEGENDS數(shù)據(jù)段結(jié)束ESEGSEGMENT定義附加段SUMDW2DUP(?)定義存放結(jié)果區(qū)ESEGENDS附加段結(jié)束CSEGSEGMENT定義代碼段ASSUMECS:CSEG,DS:DSEG,ES:ESEG開始一個邏輯段結(jié)束一個邏輯段隨后又用Segment和ENDS定義了第二個段,然后又定義了第三個段,DSEGSEGMENT定義數(shù)據(jù)段DATA1DW0F865H定義被加數(shù)DATA2DW360CH定義加數(shù)DSEGENDS數(shù)據(jù)段結(jié)束ESEGSEGMENT定義附加段SUMDW2DUP(?)定義存放結(jié)果區(qū)ESEGENDS附加段結(jié)束CSEGSEGMENT定義代碼段ASSUMECS:CSEG,DS:DSEG,ES:ESEG在這個段里,我們看到很多熟悉的指令,這就是代碼段,最后整個程序用END結(jié)束,這就是一個匯編語言源程序的大體結(jié)構(gòu)START:MOVAX,DSEGMOVDS,AX初始化DSMOVAX,ESEGMOVES,AX初始化ESLEASI,SUMSUM偏移地址送S

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論