版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章8086微處理器及其尋址方式匯編語言的過程用匯編語言編寫的程序不能由機(jī)器直接運(yùn)行,而必須經(jīng)過匯編程序翻譯成機(jī)器語言程序。----匯編:匯編語言源程序由ASM.EXE生成目標(biāo)代碼(.obj,可能有多個)。----鏈接:由LINK.exe將.obj連接成可執(zhí)行程序。匯編語言的過程一、編輯源程序操作形成以.ASM為擴(kuò)展名的源程序文件工具用EDIT、NOTPAD、UltraEdit編輯存盤形式以ASCII碼形式存盤二、編譯操作將源程序編譯為以.OBJ為擴(kuò)展名的目標(biāo)文件工具M(jìn)icrosoft公司的MASM.exeVer5.0及以上版本Borland公司的TASM.exeVer2.0及以上版本存盤形式以二進(jìn)制形式存盤匯編語言的過程三、連接操作把一個.OBJ文件或多個.OBJ文件連接(再定位)形成可執(zhí)行文件,即.EXE或.COM文件。工具Link.EXE或TLink.EXE四、調(diào)試操作對程序進(jìn)行調(diào)試工具DEBUG.EXE或TD.EXE匯編語言的過程MASMLINK文件名EXE2BINEDITLINKMASM.ASM.OBJ.EXE.COM調(diào)試程序DEBUGDEBUG是常用的匯編語言級調(diào)試工具,為匯編語言程序員提供了分析指令、跟蹤程序的有效手段。常用的命令:-A匯編-U反匯編-T單步執(zhí)行-G斷點(diǎn)執(zhí)行-D數(shù)據(jù)顯示-R寄存器指令的組成指令是由操作碼和操作數(shù)兩部分組成。操作碼說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分。操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象。注意:有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)。尋址方式如何尋址一個操作數(shù)對程序設(shè)計(jì)很重要。指令的格式:操作碼操作數(shù)1,操作數(shù)2;注釋操作數(shù)1稱為目的操作數(shù),它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結(jié)果。操作數(shù)2稱為源操作數(shù)。分號后的內(nèi)容是對指令的解釋。傳送指令MOVMOV目的操作數(shù),源操作數(shù)MOV指令的功能是將源操作數(shù)傳送至目的操作數(shù),如:MOVAL,05H;AL←05HMOVBX,AX;BX←AXMOVAX,[SI];AX←DS:[SI]MOVAX,[BP+06H];AX←SS:[BP+06H]MOVAX,[BX+SI];AX←DS:[BX+SI]尋址方式與數(shù)據(jù)有關(guān)的尋址方式:以MOV指令為例立即尋址MOVAX,3069H寄存器尋址MOVAL,BH直接尋址MOVAX,[2000H]寄存器間接尋址MOVAX,[BX]寄存器相對尋址MOVAX,COUNT[SI]基址變址尋址MOVAX,[BP][DI]相對基址變址尋址MOVAX,MASK[BX][SI]存儲器尋址例:編寫一段顯示字符串STRING的程序數(shù)據(jù)段已經(jīng)給出,分別用各種尋址輸出。DATASEGMENTSTRINGDB'HELLO',0DH,0AH,'$'COUNTDW8DATAENDS顯示字符串STRING的程序(直接尋址)MOVDL,STRINGMOVAH,02HINT21HMOVDL,STRING+1MOVAH,02HINT21H
顯示字符串STRING的程序(DOS顯示字符串功能)MOVDL,OFFSETSTRINGMOVAH,09HINT21H顯示字符串STRING的程序(寄存器間接尋址)MOVCX,COUNTMOVBX,OFFSETSTRINGL:MOVDL,[BX]MOVAH,02HINT21HINCBXLOOPL例:編寫一段顯示字符串STRING的程序顯示字符串STRING的程序(基址變址尋址)MOVCX,COUNTMOVBX,OFFSETSTRINGMOVSI,0L:MOVDL,[BX][SI]MOVAH,02HINT21HINCSILOOPL
顯示字符串STRING的程序(寄存器相對尋址)MOVCX,COUNTMOVSI,0L:MOVDL,STRING[SI]MOVAH,02HINT21HINCSILOOPL立即數(shù)尋址方式---操作數(shù)在指令中給出操作數(shù)就在指令中直接給出,而指令本身在存儲器的代碼段中存放。當(dāng)取指令時(shí)操作數(shù)作為指令機(jī)器字節(jié)的一部分去出來存入CPU的指令隊(duì)列中。執(zhí)行該指令時(shí),直接得到該數(shù)。這種操作數(shù)稱為立即數(shù)它可以是8位數(shù)值(00H~FFH)也可以是16位數(shù)值(0000H~FFFFH)立即數(shù)尋址方式MOVAL,05H;AL←05HMOVAX,0102H;AX←0102HMOVAL,'A';AL←A只能用于源操作數(shù)MOV40H,AL×源操作數(shù)和目的操作數(shù)類型要一致MOVAH,2036H×寄存器尋址方式---操作數(shù)在指定的寄存器中操作數(shù)存放在CPU的內(nèi)部寄存器reg中,可以是:8位寄存器AH、AL、BH、BL、CH、CL、DH、DL16位寄存器AX、BX、CX、DX、SI、DI、BP、SP4個段寄存器CS、DS、SS、ES寄存器尋址方式MOVAX,BX;AX←BXMOVAL,BH;AL←BHMOVAX,3064H
;AX←3064H注意:字節(jié)寄存器只有AHALBHBLCHCLDHDL源操作數(shù)和目的操作數(shù)類型要一致
MOVAH,BX
×CS不能用MOV指令改變
MOVCS,AX×
存儲器尋址方式指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EA),而段地址在默認(rèn)的或用段超越前綴指定的段寄存器中。8086設(shè)計(jì)了多種存儲器尋址方式1、直接尋址MOVAX,[2000H]2、寄存器間接尋址MOVAX,[BX]3、寄存器相對尋址MOVAX,COUNT[SI]4、基址變址尋址MOVAX,[BP][DI]5、相對基址變址尋址MOVAX,MASK[BX][SI]直接尋址方式有效地址在指令中直接給出默認(rèn)的短地址在DS段寄存器,可以使用段超越前綴改變。MOVAX,[2000H]
;AX←DS:[2000H]MOVAX,ES:[2000H]
;AX←ES:[2000H]注意:隱含的段為數(shù)據(jù)段DS操作數(shù)地址可由變量(符號地址)表示,但要注意變量的屬性。
VALUEDB10MOVAH,VALUEMOVAX,VALUE×MOVAX,WORDPTRVALUE√直接尋址方式---有效地址EA由指令直接給出例:MOVAX,[2000H]
EA=2000H,假設(shè)(DS)=3000H,那么PA=32000H3050AHAL32003050(AX)=3050H寄存器間接尋址方式有效地址存放在基址寄存器BX/BP或變址寄存器SI、DI中。默認(rèn)的段地址在DS段寄存器,可使用段超越前綴改變。MOVAX,[SI]PA=16D×(DS)+(BX);AX←DS:[SI]MOVAX,[BX]PA=16D×(DS)+(BX);AX←DS:[BX]MOVAX,ES:[BX]PA=16D×(ES)+(BX);AX←ES:[BX]MOVAX,[BP]PA=16D×(SS)+(BP);AX←SS:[BP]不允許使用AX、CX、DX存放EAMOVAX,[CX]×寄存器相對尋址方式指令格式:MOVAX,COUNT[SI]或MOVAX,[COUNT+SI]假設(shè)(DS)=3000H(SI)=2000H,COUNT=3000H,則PA=35000H假設(shè)(35000H)=1234H,那么(AX)=1234HBX、SI、DI寄存器默認(rèn)的寄存器是DS,BP寄存器默認(rèn)的段寄存器是SS,可以使用段超越前綴?;纷冎穼ぶ贩绞街噶罡袷?MOVAX,[BX][DI];AX←DS:[BX+DI]或MOVAX,[BX+DI];AX←DS:[BX+DI]或MOVAX,ES:[BX][SI];AX←ES:[BX+SI]MOVAX,[BX][BP]×MOVAX,[SI][DI]×BX、SI、DI寄存器默認(rèn)的寄存器是DS,BP寄存器默認(rèn)的段寄存器是SS,可以使用段超越前綴。相對基址變址尋址方式
MOVAX,MASK[BX][SI]或MOVAX,MASK[BX+SI]或MOVAX,[MASK+BX+SI]MOVAX,[BX+SI+06H];AX←DS:[BX+SI+06H]段寄存器的使用規(guī)定訪問存儲器的方式默認(rèn)的段寄存器可跨越的段寄存器偏移地址取指令CS無IP堆棧操作SS無SP一般數(shù)據(jù)訪問DSCSESSS有效地址EABP作為基址的尋址SSCSDSSSBP串操作的源操作數(shù)DSCSESSSSI串操作的目的操作數(shù)ES無DI------------進(jìn)制之間的轉(zhuǎn)換二進(jìn)制→八進(jìn)制、十進(jìn)制、十六進(jìn)制二進(jìn)制B→八進(jìn)制Q(23=8)11001100B=314Q二進(jìn)制B→十進(jìn)制D11001100B=0×20+0×21×1×22+1×23×0×24+0×25×1×26+1×27=204D二進(jìn)制B→十六進(jìn)制H(24=16)11001100B=CCH進(jìn)制之間的轉(zhuǎn)換(續(xù))十進(jìn)制→二進(jìn)制、八進(jìn)制、十六進(jìn)制十進(jìn)制D→二進(jìn)制B123.625整數(shù)部分:123不斷除以2,得到余數(shù),逆序?qū)懗龅?111011B小數(shù)部分:0.625不斷乘以2,0.625×2=1.25取整1(進(jìn)位1)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程監(jiān)理勞務(wù)分包協(xié)議
- 車站附近人行道改造合同
- 游泳池電工招聘合同模板
- 家電銷售經(jīng)紀(jì)人合作協(xié)議
- 政府宣傳片編劇招聘協(xié)議
- 清潔能源高速公路合同管理辦法
- 社區(qū)活動中心球場施工合同
- 紡織生產(chǎn)電動工具租賃協(xié)議
- 污水處理廠改造圍擋施工合同
- 皮膚病醫(yī)院聘用協(xié)議樣本
- OGS工藝介紹(for聞泰20140715)
- 2023年上海英語高考卷及答案完整版
- 上海層廠房造價(jià)指標(biāo)
- 2023年復(fù)旦大學(xué)博士研究生入學(xué)考試專家推薦信模板
- 危險(xiǎn)源風(fēng)險(xiǎn)告知及控制措施(維修電工)
- 自動控制理論的早期發(fā)展歷史課件
- 國家開放大學(xué)《機(jī)械設(shè)計(jì)基礎(chǔ)》機(jī)考試題001-009參考答案
- 電氣二次系統(tǒng)簡介課件
- 《碗中日月》:作家丁立梅親自示范中考、高考真題作文60篇
- 大班科學(xué)《奇妙的信》課件
- 考古繪圖課件
評論
0/150
提交評論