




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第4章8086指令系統(tǒng)
本章內(nèi)容提示指令系統(tǒng)、指令的一般格式指令中涉及到的訪問內(nèi)存或I/O端口所使用的尋址方式指令系統(tǒng)中的數(shù)據(jù)傳送類指令、算術運算類指令、位操作類指令、串操作類指令、控制轉移類指令、處理機控制類指令各類指令的語句格式和功能4.1指令的基本概念和指令格式什么是指令系統(tǒng)
一定要采用調(diào)試程序DEBUG進行實踐指該計算機能夠執(zhí)行的全部指令的集合每種計算機都有它支持的指令集合
16位8086指令系統(tǒng)是Intel80x86系列微處理器指令系統(tǒng)的基礎一、指令的組成指令由操作碼和操作數(shù)兩部分組成操作碼說明計算機要執(zhí)行的操作,不可缺少操作數(shù)是指令中的操作對象通常的指令有一個或兩個操作數(shù)操作碼操作數(shù)每種指令的操作碼:用一個唯一的助記符表示(指令功能的英文縮寫)對應著機器指令的一個二進制編碼指令中的操作數(shù):可以是一個具體的數(shù)值可以是存放數(shù)據(jù)的寄存器或指明數(shù)據(jù)在主存位置的存儲器地址4.2指令的尋址方式4.2.1概念指令系統(tǒng)設計了多種操作數(shù)的來源尋址:尋找操作數(shù)的過程操作數(shù)采取哪一種尋址方式,會影響機器運行的速度和效率
如何尋址一個操作數(shù)對程序設計很重要4.2.2
與數(shù)據(jù)有關的尋址方式一、立即尋址二、寄存器尋址三、存儲器尋址1.直接尋址2.寄存器間接尋址3.寄存器相對尋址4.基址變址尋址5.相對基址變址尋址一、立即尋址指令中的操作數(shù)直接存放在機器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)這種操作數(shù)被稱為立即數(shù)它可以是8位數(shù)值i8(00H~FFH)也可以是16位數(shù)值i16(0000H~FFFFH)立即數(shù)尋址方式常用來給寄存器賦值立即數(shù)尋址指令MOVAL,05H ;AL←05HMOVAX,0102H ;AX←0102H指令功能執(zhí)行過程二、寄存器尋址操作數(shù)存放在CPU的內(nèi)部寄存器reg中,可以是:8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4個段寄存器seg:CS、DS、SS、ES寄存器尋址指令MOVAX,1234H ;AX←1234HMOVBX,AX ;BX←AX指令功能執(zhí)行過程三、存儲器尋址1.直接尋址2.寄存器間接尋址3.寄存器相對尋址4.基址變址尋址5.相對基址變址尋址指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EA),而段地址在默認的或用段超越前綴指定的段寄存器中1.直接尋址指令功能執(zhí)行過程有效地址在指令中直接給出默認的段地址在DS段寄存器,可使用段跨越前綴改變MOVAX,[2000H];AX←DS:[2000H]MOVAX,ES:[2000H];AX←ES:[2000H]直接尋址【例】(AX)=1212H,BUF為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。執(zhí)行指令:MOVAX,BUF執(zhí)行后:(AX)=?執(zhí)行:(32000H)→AX執(zhí)行后:(AX)=4545H2.寄存器間接尋址有效地址存放在基址寄存器BX或變址寄存器SI、DI中默認的段地址在DS段寄存器,可使用段跨越前綴改變MOVAX,[SI] ;AX←DS:[SI]指令功能執(zhí)行過程3.寄存器相對尋址有效地址是寄存器內(nèi)容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI
有效地址=(BX)/(BP)/(SI)/(DI)+8/16位位移量段地址對應BX/SI/DI寄存器默認是DS,對應BP寄存器默認是SS;可用段跨越前綴改變寄存器相對尋址指令MOVAX,[DI+06H] ;AX←DS:[DI+06H]MOVAX,[BP+06H];AX←SS:[BP+06H]指令功能執(zhí)行過程4.基址變址尋址有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構成:有效地址=(BX)/(BP)+(SI)/(DI)段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是SS;可用段跨越前綴改變基址變址尋址指令MOVAX,[BX+SI] ;AX←DS:[BX+SI]MOVAX,[BP+DI] ;AX←SS:[BP+DI]MOVAX,DS:[BP+DI];AX←DS:[BP+DI]指令功能執(zhí)行過程5.相對基址變址尋址有效地址是基址寄存器(BX/BP)、變址寄存器(SI/DI)與一個8位或16位位移量之和:有效地址=(BX)/(BP)+(SI)/(DI)+8/16位位移量段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是SS;可用段跨越前綴改變相對基址變址尋址指令MOVAX,[BX+SI+06H];AX←DS:[BX+SI+06H]
位移量可用符號表示
同一尋址方式有多種表達形式指令功能執(zhí)行過程指令中直接給出端口地址端口地址:2位十六進制數(shù)或用符號可訪問的端口號為0~255。4.2.3I/O端口尋址方式1.直接端口尋址例如:INAL,65HOUT84H,AXI/O端口獨立編址方式,有專門的輸入輸出指令:IN和OUT2.寄存器間接端口尋址IN和OUT指令中,當端口地址大于255必須間接尋址方式。間接尋址,是指把I/O端口的地址先送到DX中,用DX作間接尋址寄存器。只能用DX。例如:MOVDX,318HOUTDX,AL
邏輯段分配立即數(shù)尋址的功能立即數(shù)尋址的執(zhí)行寄存器尋址的功能寄存器尋址的執(zhí)行直接尋址的功能直接尋址的執(zhí)行寄存器間接尋址的執(zhí)行寄存器相對尋址的功能寄存器相對尋址的執(zhí)行基址變址尋址的功能基址變址尋址的執(zhí)行相對基址變址尋址的功能相對基址變址尋址的執(zhí)行4.38086指令系統(tǒng)全面而準確地理解每條指令的功能和應用,是編寫匯編語言程序的關鍵逐個展開指令4.3.1數(shù)據(jù)傳送類指令最基本、最重要的一種操作最常使用把數(shù)據(jù)從一個位置傳送到另一個位置除標志寄存器傳送指令外,均不影響標志位重點掌握MOV、XCHG、XLAT、PUSH、POP、LEA一、通用數(shù)據(jù)傳送指令提供方便靈活的通用傳送操作有4條指令MOVXCHGPUSHPOPMOVXCHGPOPPUSH1、傳送指令MOV(move)把操作數(shù)從源地址傳送至目的地址MOVREG/MEM,IMM;立即數(shù)送寄存器或主存MOV例題1MOVREG/MEM/SEG,REG;寄存器送(段)寄存器或主存例題2MOVREG/SEG,MEM;主存送(段)寄存器例題3MOVREG/MEM,SEG;段寄存器送寄存器或主存例題4MOV指令傳送功能立即數(shù)段寄存器CSDSESSS通用寄存器AXBXCXDXBPSPSIDI存儲器MOV也并非任意傳送兩個操作數(shù)的類型不一致兩個操作數(shù)都是存儲器單元段寄存器的操作突破一些限制不允許立即數(shù)傳送給段寄存器不允許直接改變CS值不允許段寄存器之間的直接數(shù)據(jù)傳送非法傳送2、交換指令XCHG(exchange)把兩個地方的數(shù)據(jù)進行互換寄存器與寄存器之間對換數(shù)據(jù)寄存器與存儲器之間對換數(shù)據(jù)不能在存儲器與存儲器之間對換數(shù)據(jù)XCHGREG,REG/MEM;REG
REG/MEM例題6例題53、堆棧操作指令堆棧:“FILO”
或“LIFO”
的主存區(qū)域,位于堆棧段中;SS記錄其段地址只有一個出口——棧頂;SP指定棧頂是地址較小的一端(低端),棧底不變堆棧的操作PUSH;進棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部POP;出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2堆棧只有兩種基本操作:進棧和出棧,對應兩條指令PUSH和POP①進棧指令PUSHPUSHAXPUSH[2000H]PUSHR16/M16/SEG;SP←SP-2;SS:[SP]←R16/M16/SEGPUSH②出棧指令POPPOPDXPOP[2000H]POPR16/M16/SEG;R16/M16/SEG←SS:[SP];SP←SP+2POP例7:現(xiàn)場保護恢復PUSHAX ;進入子程序后PUSHBXPUSHDS...POPDS ;返回主程序前POPBXPOPAX二、累加器專用傳送指令8086通過輸入輸出指令與外設進行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設是端口(Port),即I/O地址8086用于尋址外設端口的地址線為16條,端口最多為216=65536(64K)個,端口號為0000H~FFFFH每個端口用于傳送一個字節(jié)的外設數(shù)據(jù)1、輸入輸出指令①輸入指令將外設數(shù)據(jù)傳送給CPU內(nèi)的AL/AXINAL,i8;字節(jié)輸入:AL←I/O端口(i8直接尋址)INAL,DX;字節(jié)輸入:AL←I/O端口(DX間接尋址)INAX,i8;字輸入:AX←I/O端口(i8直接尋址)INAX,DX;字輸入:AX←I/O端口(DX間接尋址);直接尋址,字節(jié)量輸入INAL,21HMOVAH,ALINAL,20H;直接尋址,字量輸入INAX,20H;間接尋址,字量輸入MOVDX,20HINAX,DX②輸出指令OUT將CPU內(nèi)AL/AX中的數(shù)據(jù)傳送給外設OUTi8,AL
;字節(jié)輸出:I/O端口←AL(i8直接尋址)OUTDX,AL
;字節(jié)輸出:I/O端口←AL(DX間接尋址)OUTi8,AX
;字輸出:I/O端口←AX(i8直接尋址)OUTDX,AX
;字輸出:I/O端口←AX(DX間接尋址);間接尋址,字節(jié)量輸出
MOVDX,3FCH
MOVAL,80H
OUTDX,AL2、換碼指令XLAT(translate)換碼指令執(zhí)行前:主存中的字節(jié)量表格內(nèi)含要轉換成的目的代碼,表格首地址為(BX),(AL)為相對表格首地址的位移量換碼指令執(zhí)行后:(AL)為轉換的目標代碼將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給ALXLATXLAT
;AL←(DS:[BX+AL])例題10三、地址傳送指令地址傳送指令將存儲器單元的邏輯地址送至指定的寄存器有效地址傳送指令LEA指針傳送指令LDS和LES注意不是獲取存儲器單元的內(nèi)容①有效地址傳送指令LEA(loadEA)將存儲器操作數(shù)的有效地址傳送至指定的16位寄存器中LEAR16,MEM;R16←MEM的有效地址EA例8:獲取有效地址MOVBX,0400HMOVSI,3CHLEABX,[BX+SI+0F62H];(BX)=0400H+003CH+0F62H=139EH
獲得主存單元的有效地址;不是物理地址,也不是該單元的內(nèi)容可以實現(xiàn)計算功能例9:地址指針傳送MOVWORDPTR[3060H],0100HMOVWORDPTR[3062H],1450HLESDI,[3060H];(ES)=1450H,(DI)=0100HLDSSI,[3060H];(DS)=1450H,(SI)=0100H
MEM指定主存的連續(xù)4個字節(jié)作為邏輯地址(32位的地址指針),送入DS:R16或ES:R16②指針傳送指令LDSR16,MEM
;R16←(MEM)
;DS←(MEM+2)將主存中MEM指定的字送至R16,并將MEM的下一字送DS寄存器LESR16,MEM
;R16←(MEM)
;ES←(MEM+2)將主存中MEM指定的字送至R16,并將MEM的下一字送ES寄存器四、標志寄存器傳送指令標志寄存器傳送指令用來傳送標志寄存器FLAGS的內(nèi)容,方便進行對各個標志位的直接操作有2對4條指令低8位傳送:LAHF和SAHF16位傳送:PUSHF和POPF第4章教學要求(2)掌握8086的I/O端口編址方式掌握數(shù)據(jù)傳送類指令的格式與應用作業(yè)(p143)4.3、4.9例1立即數(shù)傳送MOVAL,4 ;AL←4,字節(jié)傳送MOVCX,0FFH ;CX←00FFH,字傳送MOVSI,200H ;SI←0200H,字傳送MOVBYTEPTR[SI],0AH;BYTEPTR說明是字節(jié)操作MOVWORDPTR[SI+2],0BH;WORDPTR說明是字操作
注意立即數(shù)是字節(jié)量還是字量明確指令是字節(jié)操作還是字操作MOV例2寄存器傳送MOVMOVAX,BX ;AX←(BX),字傳送MOVAH,AL ;AH←(AL),字節(jié)傳送MOVDS,AX ;DS←(AX),字傳送MOV[SI],AL ;[SI]←(AL),字節(jié)傳送例3存儲器傳送
不存在存儲器向存儲器的傳送指令MOVAL,[BX];AL←(DS:[SI])MOVDX,[BP] ;DX←(SS:[BP])MOVES,[SI] ;ES←(DS:[SI])MOV例4段寄存器傳送MOV[SI],DSMOVAX,ES ;AX←(ES)MOVDS,AX ;DS←(AX)MOV例5寄存器間交換MOVAX,1234H
;(AX)=1234HMOVBX,5678H
;(BX)=5678HXCHGAX,BX
;(AX)=5678H,(BX)=1234HXCHGAH,AL
;(AX)=7856HXCHG例6寄存器與存儲器交換XCHGXCHGAX,[2000H] ;字交換;等同于
XCHG[2000H],AXXCHGAL,[2000H]
;字節(jié)交換;等同于
XCHG[2000H],AL例10代碼轉換
換碼指令沒有顯式的操作數(shù),但使用了BX和AL;因為換碼指令使用了隱含尋址方式——采用默認操作數(shù)XLATMOVBX,100HMOVAL,03HXLAT4.3.2DOS系統(tǒng)功能調(diào)用DOS使用的中斷類型號是20H~3FH,為用戶程序和系統(tǒng)程序提供磁盤讀寫、程序退出、系統(tǒng)功能調(diào)用等功能。
DOS所有的系統(tǒng)功能調(diào)用都是利用INT
21H中斷指令實現(xiàn)的,每個功能調(diào)用對應一個子程序,并有一個編號,其編號就是功能號。DOS擁有的功能子程序因版本而異。DOS中斷調(diào)用方法在中斷調(diào)用前要把功能號裝入AH中,把子功能號裝入AL中:⑴將調(diào)用參數(shù)裝入指定的寄存器;⑵如需要功能號,將它裝入AH;⑶如需要子功能號,將它裝入AL;⑷按中斷類型號調(diào)用DOS或BIOS;⑸檢查返回參數(shù)是否正確。
DOS系統(tǒng)功能調(diào)用21H號中斷是DOS提供給用戶的用于調(diào)用系統(tǒng)功能的中斷
l在AH寄存器中設置系統(tǒng)功能調(diào)用號l在指定寄存器中設置入口參數(shù)l執(zhí)行指令INT21H(或ROM-BIOS的中斷向量號)實現(xiàn)中斷服務程序的功能調(diào)用
常見DOS系統(tǒng)功能調(diào)用⑴單字符輸入(1號調(diào)用)MOVAH,1INT21H;從鍵盤輸入字符的ASCII碼送入AL中,并顯示。⑵單字符顯示(2號調(diào)用)MOVDL,待顯示字符的ASCII碼MOVAH,2INT21H;將DL中的字符顯示,若DL為CTRL+BREAK的ASCII碼,則退出。
⑷結束調(diào)用(4CH號調(diào)用)MOV AH,4CHINT21H;終止當前程序并返回調(diào)用程序
⑶打印輸出(5號調(diào)用)MOV DL,待打印字符的ASCII碼MOV AH,5INT 21H
;將DL中的字符送打印。
⑸顯示字符串(9號調(diào)用)LEA DX,待顯示字符串首偏移地址MOV AH,9INT 21H;將當前數(shù)據(jù)區(qū)中以‘$’結尾的字符串顯示⑹字符串輸入(10號調(diào)用)LEA DX,緩沖區(qū)首偏移地址MOV AH,10INT 21H
;從鍵盤上輸入一字符串到用戶定義的輸入緩沖區(qū)中,并顯示。
DEBUG.COM,實用程序:查看內(nèi)存內(nèi)容(ROM和RAM),一次一條指令地執(zhí)行用戶程序,翻譯并執(zhí)行匯編語言程序。調(diào)試步驟:首先必須在DEBUG下運行程序,如:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建中考數(shù)學真題試卷【含答案、解析】
- 超節(jié)點背景下高速銅連
- 2025年四川省宜賓市中考歷史真題(原卷版)
- 2025年福建中考數(shù)學真題試卷(解析版)
- 鄉(xiāng)鎮(zhèn)財政一體化管理制度
- 公司流水線安全管理制度
- 制藥公司辦公室管理制度
- 安全防疫一體化管理制度
- 學校培訓j教師管理制度
- 對公司發(fā)展規(guī)劃管理制度
- 2022年江西南昌高新技術產(chǎn)業(yè)開發(fā)區(qū)人民檢察院聘用制檢察輔助人員招聘考試真題
- 小學安全隱患排查表
- 測控電路課程設計報告-信號采集調(diào)理電路的設計【完整版】
- 銀行業(yè)法律法規(guī)與綜合能力經(jīng)濟基礎知識課
- 套管開窗側鉆技術
- 2023-2024學年山西省長治市小學語文五年級期末??碱}詳細參考答案解析
- 淘寶客服銷售技巧-客戶分析
- 現(xiàn)代物流管理(第三版-錢廷仙)課件3.物流成本核算特點與內(nèi)容
- 混凝土結構下冊第章鋼筋混凝土框架結構設計
- 江西師范大學師范類教育心理學期末考試答案
- 小區(qū)燃氣壁掛爐采購及安裝合同
評論
0/150
提交評論