微機原理與接口技術(徐惠民主編)--第3章.ppt

(126頁)

'微機原理與接口技術(徐惠民主編)--第3章.ppt'
第 三 章 8086/8088 指 令 系 統1.1 8086/8088尋址方式1.2 8086/8088指令系統指令及指令集計算機能夠識別和執行的基本操作命令指令的作用告訴CPU干什么?What? 告訴CPU從哪兒取數據?Where?告訴CPU下一條指令在哪兒?Where?指令的格式操作碼操作數或操作數地址指令總長度或轉移目標地址10111011 00110100 00010010操作碼操作數指令的數量數值計算信息處理多媒體指令數量取決于CPU的功能80X86CPU指令數量8086:133條整數運算輸入輸出程序控制擴充:多媒體指令 浮點運算指令Cache處理指令指令系統(CISC復雜與 RISC精簡)指令數量影響:程序的執行速度CPU的復雜程度指令的通用格式 標號:指令助記符 操作數1, 操作數2 ;注釋80X86指令在內存的存放形式80X86的指令操作碼和操作數由一或多個字節(8位)組成二進制與助記符(把十六進制數1234送CPU的BX寄存器)雙操作數:操作碼 目的操作數,源操作數低字節在前(34H)高字節在后(12H)000100101011101100110111100001000110002指令的助記符格式標號:指明指令所在地址。操作碼:用來說明該指令所要完成的操作。操作數1:稱為目的操作數dest,它不僅可以作為指令操作的一個對象,還可以用來存放指令操作的結果。操作數2:常被稱為源操作數src,它表示參與指令操作的一個對象。注釋:分號后的內容是對指令的解釋。標號:操作碼 操作數1,操作數2 ;注釋 操作數類型 按操作數在指令中的所起的作用,可以分為 目的操作數:不僅可以作為指令操作的一個對象,還可 以用來存放指令操作的結果源操作數:表示參與指令操作的一個對象 按操作數的存儲位置分,可以分為立即數。就是在指令中直接給出常數。 寄存器操作數。其書寫形式就是寄存器名。存儲器操作數。其書寫形式是存儲單元的邏輯地址。 指令的操作碼和操作數每種指令的操作碼:用一個助記符表示(指令功能的英文縮寫)對應著機器指令的一個或多個二進制編碼指令中的操作數:可以是一個具體的數值可以是存放數據的寄存器或指明數據在主存位置的存儲器地址3.1 8086/8088 尋址方式指令系統設計了多種操作數的來源尋找操作數的過程就是操作數的尋址把尋找操作數的方式叫做(操作數)尋址方式理解操作數的尋址方式是理解指令功能的前提操作數采取哪一種尋址方式一方面,會影響處理器執行指令的速度和效率另一方面,對程序設計也很重要MOV指令的功能3.1.1 立即數尋址方式指令中的源操作數為常數,稱為立即數尋址.立即數尋址方式常用來給寄存器賦值,多以常量形式出現MOV AX, 0102H ;AX←0102H例: MOV AX, 1C8FH MOV BYTE PTR[2A00H], 8FH 錯誤例: × MOV 2A00H, AX ; 錯誤! 注:立即數不能作目的操作數。以A~F打頭的數字,前面要加一個0,如 MOV AX,0FF00H立即數尋址方式3.1.2 寄存器尋址方式操作數存放在CPU的內部寄存器中。源操作數與目的操作數字長要相同不允許將立即數傳送到段寄存器MOV AX, BX ;AX←BX例: MOV AX, BX MOV CL, AL 錯誤例: × MOV AX, BL ; 字長不同 注意:源、目的操作數的長度一致3.1.3 直接尋址直接尋址方式的有效地址在指令中直接給出用中括號包含有效地址,表達存儲單元的內容默認的段地址在DS段寄存器,可使用段超越前綴改變。偏移地址也可用符號地址來表示,如ADDR、VARMOV AX, [2000H] ;AX←DS:[2000H]規定雙操作數指令不能兩個操作數都用直接尋址方式。 如: MOV [2000H] , [3000H] MOV AX , [2A00H] MOV DX , ES: [2A00H] MOV ES: [2A00H],DX MOV SI , TABLE_PTR例 MOV AX,[1000H]; 若 DS=2000H, (21000H)=32H,(21001H)=45H,功能:是將一個有效地址是1000H的存儲單元的內容傳送到AX。 該存儲單元的物理地址為: PA=2000H*10H + 1000H =20000H + 1000H = 21000H指令執行結果為:AX = 4532H。 AHALB8H00H10H32H45H…存儲器操作碼偏移地址數據段21000H21001H…………代碼段2 1 0 0 0 HDS 2 0 0 0 0 H+圖3-2 直接尋址方式指令執行情況EA 1 0 0 0 H3.1.4 寄存器間接尋址方式操作數的 偏移地址放在間址寄存器中。只有SI、DI、BX和BP可作間址寄存器。 1)以SI、DI、BX間址尋址時,操作數在數據段(DS)區域中,即: DX*10H+( SI、DI、BX)中的偏移量 =操作數物理地址。 2)以BP間址尋址時,操作數在堆棧段(SS)區域中,即: SS*10H+( BP)中的偏移量 =操作數物理地址。1.選擇SI、DI、BX作為間址寄存器操作數在數據段(沒有使用段超越時) MOV AX,[DI] 若已知(DS)=5000H,(DI)=1600H,則操作數的物理地址為:5000H×10H+1600H=51600H 執行的結果為(AX)=789AH 2.選擇BP作為間址寄存器 操作數在堆棧段 MOV [BP],AX 若已知(SS)=6000H,(BP)=1500H,則操作數的物理地址為: 6000H×10H+1500H=61500H 若已知(AX)=5566H,則指令的執行結果為: 66H送到61500H內存單元, 55H送到61501H內存單元3.1.5 變址尋址 以指定的寄存器內容,加上指令中給出的8位或16位位移量(必須要以一個段寄存器作為基地址),作為操作數的地址。作為變址尋址的寄存器可以是SI、DI、BX、BP四個寄存器中的任一個.若用SI、DI和BX作為變址寄存器,操作數在數據段,即段地址在DS寄存器;若用BP變址,則操作數在堆棧段,即段地址在SS寄存器 。省略部分?;蜃执鎯卧?,其中的內容是一個近過程的入口地址。CALL指令將返回地址IP壓入堆棧,然后將寄存器或字存儲單元的內容作為有效地址裝入IP。3)段間直接調用 格式:CALL FAR PTR 過程名4)段間間接調用 格式:CALL 雙字地址指針(2)返回指令 子過程執行的最后一條指令必須是返回指令,用于返回到調用該子程序的斷點處。 1)返回指令 格式:RET 2)帶彈出值的返回指令 格式:RET POP_VALUE 操作:先執行與RET相同的操作,再修改SP。 說明: 彈出值應為一個16位立即數,通常是偶數。彈出值表示返回時從堆棧中舍棄的字節數。例如:RET 4,返回時舍棄堆棧中的4個字節。 4.循環控制指令 程序中常常要重復執行一些程序段,形成循環。是否要重復執行某段程序是有條件的,或滿足某一條件時結束循環。循環轉移指令控制轉移的距離在-128~+127的范圍內。以LOOP為例,其指令格式為:格式:LOOP 目標標號 LOOP指令等效于下列指令: DEC CX JNZ 目標標號 因此,欲使用循環控制指令,應在循環程序開始前,將循環次數送CX寄存器。 指 令 助 記 符指 令 操 作LOOP CX←(CX)-1,若(CX)≠0,則轉移(循環);否則,順序執行下一條指令(退出)LOOPE / LOOPZCX←(CX)-1,若(CX)≠0且(ZF)=1,則轉移;否則,順序執行下一條指令LOOPNE / LOOPNZCX←(CX)-1,若(CX)≠0且(ZF)=0,則轉移,否則,順序執行下一條指令例: 有一首地址為ARRAY的M個字數組,試編寫一段程序,求出該數組的內容之和(不考慮溢出),并把結果存入TOTAL中,程序段如下: MOV CX,M ;設計數器初值 MOV AX,0 ;累加器初值為0 MOV SI,AX ;地址指針初值為0START:ADD AX,ARRAY[SI] ADD SI,2 ;修改指針值(字操作,因此加2) LOOP START ;重復 MOV TOTAL,AX ;存結果5.中斷指令中斷(Interrupt )是又一種改變程序執行順序的方法.中斷請求可以來自處理器外部的中斷源,也可以由處理器執行指令引起例如執行INT 20H指令。8086可以管理256個中斷.各種中斷用一個向量編號來區別.中斷向量表(0:0 – 0:3FFH) 存放中斷程序的入口地址。中斷請求斷點IRET主程序中斷服務程序中斷指令共有三條,指令格式為: (1)INT n;n = 0~255 說明:首先將標志寄存器FLAGS的內容入棧,其次,清除TF和IF標志以禁止單步方式并且屏蔽中斷;然后將程序斷點的CS和IP入棧。從中斷矢量表取出兩個字分別傳送給IP和CS,隨后控制便轉向中斷服務程序。(2)INTO 說明: INTO指令檢測到溢出標志OF=1時,則啟動一個中斷類型號為4的中斷過程。 該指令可寫在算術運算指令后面,處理溢出中斷。(3)IRET 說明:IRET作為中斷服務程序執行的最后一條指令,用于退出中斷。其操作是使斷點的段基址(CS)和偏移地址(IP)及標志寄存器FLAGS的內容出棧,返回到中斷時的斷點處。 軟件中斷有:除法錯中斷:被除數為0,產生的 0 號中斷 (INT 00H)指令中斷:執行中斷調用指令INT n 產生的 n 號中斷斷點中斷:用于斷點調試(INT 3)的 3 號中斷。溢出中斷:執行溢出中斷指令(INTO),OF=1產生的 4 號中斷。單步中斷:TF=1在每條指令執行后產生的 1 號中斷 (相當于INT 01H)。3.2.5 標志操作和處理器控制指令標志處理指令用來控制標志,主要有CF、DF和IF三個。處理器控制指令用以控制處理器的工作狀態,均不影響標志位我們僅列出了一些常用指令: STC: 置進位標志,CF=1 CLC: 清進位標志,CF=0 CMC:進位標志取反 CLD: 清方向標志,DF=0 STD: 置方向標志,DF=1 CLI: 關中斷標志,IF=0,不允許中斷 STI: 開中斷標志,IF=1,允許中斷CPU控制類指令 HLT:使處理器處于停止狀態,不執行指令WAIT:使處理器處于等待狀態,TEST線為低時, 退出等待ESC: 使協處理器從系統指令流中取得指令LOCK:封鎖總線指令,可放在任一條指令前作為 前綴NOP:空操作指令,常用于程序的延時和調試 8086/8088指令系統的簡單應用 例1 設AX 、BX內均為無符號數,求:CX=|AX-BX|。開始 AX<BXBX←BX-AX AX←AX-BX CX←BX CX←AX 結束YN(a)方法一流程圖 方法一: CMP AX,BX JC NEXT SUB AX,BX MOV CX,AXNEXT:SUB BX,AX MOV CX,BX HLT開始 AX<0?AX←AX-BX AX←-AX CX←AX 結束YN(b)方法二流程圖 方法二: SUB AX,BX JNC NEXT NEG AXNEXT:MOV CX,AX HLT例2 編寫完成以下功能的程序段(其中BL內為有符號數)程序如下: CMP BL,0 JZ ZERO JS NEXT MOV AL,1 JMP DONENEXT:MOV AL,OFFH JMP DONEZERO:MOV AL,0DONE:HLT1 BL>00 BL=0-1 BL<0AL =本章小結本章重點介紹了:80x86微處理器的指令格式、尋址方式、指令系統。其中尋址方式和對相關指令的綜合應用是難點。80x86微處理器的尋址方式主要分為六類: 立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、基址加變址尋址。指令由兩個部分組成:操作碼,它規定指令完成的操作操作數,提供操作數的地址或操作數本身。80x86微處理器的指令系統著重介紹了:數據傳送類指令算術運算類指令、邏輯運算和移位指令串操作指令轉移和調用指令處理機控制指令等。本章應熟練掌握指令系統的尋址方式、指令的基本格式及其綜合應用。
關 鍵 詞:
接口 主編 技術 微機 原理 惠民
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:微機原理與接口技術(徐惠民主編)--第3章.ppt
鏈接地址: http://www.476824.live/p-51497120.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 股票配资与资方的合同 股票没开盘买入会赔吗 pk10最牛稳赚5码计划 浙汇体彩11选5走势图 广东11选五5开奖 牛牛 陕西十一选五走势图 润旺配资 内蒙古彩票快3下载 明天股票走势怎么样 弘业期货