《《微型計(jì)算機(jī)原理與接口技術(shù)》第3章8088指令系統(tǒng)5程序控制指令、處》由會(huì)員分享,可在線閱讀,更多相關(guān)《《微型計(jì)算機(jī)原理與接口技術(shù)》第3章8088指令系統(tǒng)5程序控制指令、處(56頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(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)號(hào)CS : IP= 10 11 JMP BX代碼段數(shù)據(jù)段BX=1200XXHXXHIP指令碼CS : IP 12 13 14遠(yuǎn)地址標(biāo)號(hà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斷點(diǎn) 入口地址RETCALL 31 32 33 34 35 CALL IPH IPL操作圖示:81200H81201H 36 保護(hù)斷點(diǎn)跳轉(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)時(shí)自身產(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ù)斷點(diǎn)堆棧執(zhí)行INT 21H指令前(1)先做:保護(hù)標(biāo)志FLAGS和保護(hù)斷點(diǎn)地址CS:IP 460000:0084H 23H11H00H20HIP CS0000 : 21H4 47 相當(dāng)于INT 4 48 49 50 51 52 53 54 (3
4、) 等待指令 WAITn CPU每隔5個(gè)時(shí)鐘周期就要檢查一次 ,WAIT指令可以使CPU進(jìn)入等待狀態(tài),等待狀態(tài)期間( 變?yōu)闊o(wú)效)CPU可被中斷。當(dāng)它為有效時(shí), CPU會(huì)停止執(zhí)行WAIT,退出等待狀態(tài)。 n WAIT主要用于: (1)CPU (8086)與協(xié)處理器(8087/8089)和外部設(shè)備 的同步; (2)也可用來(lái)等待被允許的外部中斷的到來(lái),但中斷 任務(wù)執(zhí)行完后仍返回WAIT指令,繼續(xù)等待。TESTTEST 55 (4) 換碼或協(xié)處理器指令 ESC ESC指令主處理器可向協(xié)處理器提供一條可執(zhí)行的指令及相應(yīng)的操作數(shù)。 當(dāng)執(zhí)行ESC指令時(shí),協(xié)處理器監(jiān)視系統(tǒng)總線, 并可取得操作碼。由于8087協(xié)處理器無(wú)尋址能力,當(dāng)取得操作需要存儲(chǔ)器訪問時(shí),8086主處理器將指定存儲(chǔ)單元的內(nèi)容送到數(shù)據(jù)總線上,否則不需要8086做任何事情。指令一般格式: ESC OPRD OPRD為存儲(chǔ)器操作數(shù)。指令執(zhí)行時(shí),把一個(gè)指定的存儲(chǔ)單元的內(nèi)容送到DB上,由協(xié)處理器獲取后,完成相應(yīng)的操作。 56 (5) 封鎖指令 LOCK LOCK是一個(gè)可用在有關(guān)指令前面的前綴,使用了這個(gè)指令前綴的指令,可在指令執(zhí)行期間封鎖局部總線,以保證在多處理器及多任務(wù)下的數(shù)據(jù)安全。 LOCK指令前綴可使CPU的LOCK 引腳產(chǎn)生一個(gè)有效電平,以實(shí)現(xiàn)總線封鎖,此過程一直持續(xù)到該指令執(zhí)行結(jié)束。