《《微型計算機(jī)原理與接口技術(shù)》第3章8088指令系統(tǒng)5程序控制指令、處》由會員分享,可在線閱讀,更多相關(guān)《《微型計算機(jī)原理與接口技術(shù)》第3章8088指令系統(tǒng)5程序控制指令、處(56頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1 2 表3-6 控制轉(zhuǎn)移類指令 3 續(xù)表(2) 4 續(xù)表(3) 5 續(xù)表(4) 6 7 8 9 JMP LableLabel代碼段位移量近地址標(biāo)號CS : IP= 10 11 JMP BX代碼段數(shù)據(jù)段BX=1200XXHXXHIP指令碼CS : IP 12 13 14遠(yuǎn)地址標(biāo)號 JMPLabel代碼段1代碼段2XXHXXHXXHXXHIPCSCS : IP= 15 16 40001212+) 41212 DSSI 0010004A 41212412134121441215 10004A00 IPCS段間間接轉(zhuǎn)移操作示意圖1111111111101100JMP DWORD PTR SI的機(jī)器碼
2、DS:SI 17XXHXXHXXHXXHBXIPCS JMP指令碼代碼段1代碼段2數(shù)據(jù)段CS : IP 18 19 20 21 22 23 24 25 26 27 28 29 30斷點 入口地址RETCALL 31 32 33 34 35 CALL IPH IPL操作圖示:81200H81201H 36 保護(hù)斷點跳轉(zhuǎn) 37 38 CALL IPH IPL CSH CSL DIDI+1DI+2DI+3段間間接調(diào)用示意圖 39 40n中斷源分類:外部中斷、內(nèi)部中斷n內(nèi)部中斷(軟件中斷):CPU內(nèi)部執(zhí)行程序(INT n或INTO)時自身產(chǎn)生的中斷。n外部中斷(硬件中斷):CPU以外的設(shè)備、部件產(chǎn)生的
3、中斷。用于處理外設(shè)與CPU間的通信。 41 42 CALLINT RETIRET 43 0000 : n4 XXHXXHYYHYYH中斷服務(wù)程序入口的偏移地址(IP)中斷服務(wù)程序入口的段地址(CS)中斷類型碼n = 0 255內(nèi)存中斷向量 44 45 IPLIPHCSLCSHSP=1200 FLAGSLFLAGSHSP=11FA執(zhí)行INT 21H指令后保護(hù)斷點堆棧執(zhí)行INT 21H指令前(1)先做:保護(hù)標(biāo)志FLAGS和保護(hù)斷點地址CS:IP 460000:0084H 23H11H00H20HIP CS0000 : 21H4 47 相當(dāng)于INT 4 48 49 50 51 52 53 54 (3
4、) 等待指令 WAITn CPU每隔5個時鐘周期就要檢查一次 ,WAIT指令可以使CPU進(jìn)入等待狀態(tài),等待狀態(tài)期間( 變?yōu)闊o效)CPU可被中斷。當(dāng)它為有效時, CPU會停止執(zhí)行WAIT,退出等待狀態(tài)。 n WAIT主要用于: (1)CPU (8086)與協(xié)處理器(8087/8089)和外部設(shè)備 的同步; (2)也可用來等待被允許的外部中斷的到來,但中斷 任務(wù)執(zhí)行完后仍返回WAIT指令,繼續(xù)等待。TESTTEST 55 (4) 換碼或協(xié)處理器指令 ESC ESC指令主處理器可向協(xié)處理器提供一條可執(zhí)行的指令及相應(yīng)的操作數(shù)。 當(dāng)執(zhí)行ESC指令時,協(xié)處理器監(jiān)視系統(tǒng)總線, 并可取得操作碼。由于8087協(xié)處理器無尋址能力,當(dāng)取得操作需要存儲器訪問時,8086主處理器將指定存儲單元的內(nèi)容送到數(shù)據(jù)總線上,否則不需要8086做任何事情。指令一般格式: ESC OPRD OPRD為存儲器操作數(shù)。指令執(zhí)行時,把一個指定的存儲單元的內(nèi)容送到DB上,由協(xié)處理器獲取后,完成相應(yīng)的操作。 56 (5) 封鎖指令 LOCK LOCK是一個可用在有關(guān)指令前面的前綴,使用了這個指令前綴的指令,可在指令執(zhí)行期間封鎖局部總線,以保證在多處理器及多任務(wù)下的數(shù)據(jù)安全。 LOCK指令前綴可使CPU的LOCK 引腳產(chǎn)生一個有效電平,以實現(xiàn)總線封鎖,此過程一直持續(xù)到該指令執(zhí)行結(jié)束。