版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
指令系統(tǒng)
本章主要介紹微機(jī)系統(tǒng)的指令格式及其常用的尋址方式、指令類型8086指令系統(tǒng)
*數(shù)據(jù)傳送類指令*算術(shù)運(yùn)算類指令*邏輯運(yùn)算指令*字符串操作指令*程序控制類指令*CPU控制指令介紹DEBUG調(diào)試工具3.1指令格式與尋址方式有關(guān)的基本概念微機(jī)工作過程中其內(nèi)部信息有兩類:一類是控制信息(指令);一類是被加工處理的信息(數(shù)據(jù))。指令:微機(jī)中的控制信息就是使計(jì)算機(jī)進(jìn)行某種操作的命令,這些命令就稱為指令。指令系統(tǒng):一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部指令的集合稱為指令系統(tǒng)。不同的計(jì)算機(jī)其指令系統(tǒng)是不同的。匯編語(yǔ)言指令或符號(hào)指令:用字母和其它一些符號(hào)組成的“助記符”與操作數(shù)等表示的指令稱為匯編語(yǔ)言指令或符號(hào)指令。例如:MOVAX,BX;AX←BX
其二進(jìn)制代碼(機(jī)器代碼)為89D8H,就是1000100111011000B
不易理解,不易記憶。匯編程序與匯編過程:把符號(hào)指令變成機(jī)器代碼的過程叫匯編,完成匯編任務(wù)的程序叫匯編程序。一、指令格式指令一般由兩部分組成:操作碼與地址碼操作碼規(guī)定操作的性質(zhì)(即執(zhí)行什么樣的操作)地址碼提供操作數(shù)地址或操作數(shù)本身。還有多地址指令微機(jī)中操作數(shù)的來源有以下三處:操作數(shù)就含在指令中(碼區(qū)中);操作數(shù)在CPU的REG中;
操作數(shù)在內(nèi)存的數(shù)據(jù)區(qū)中;QDQD1D2D3二、尋址方式如何尋找操作數(shù)就是尋址方式。(在何處,如何找)8086有24種尋址方式(可對(duì)位,字節(jié),字,字串,BCD等數(shù)據(jù)類型等進(jìn)行操作)這里介紹常用的幾種尋址方式。立即尋址操作數(shù)直接包含在指令中,操作碼后緊跟著一個(gè)或兩個(gè)字節(jié)的操作數(shù),又稱為立即數(shù)(碼區(qū)中)。例如:MOVAL,34HMOVAX,1234H
圖3.1立即尋址示意圖寄存器尋址操作數(shù)放在CPU內(nèi)部的REG中,如AX,BX,CX,DX等。例如:MOVCX,AX;CX←AX.
圖3.2寄存器尋址示意圖
寄存器間接尋址操作數(shù)是在存儲(chǔ)器中,而不在REG中,操作數(shù)地址的16位偏移量是在REG中(即SI,DI,BP,BX之一中)。分以下兩種情況:①若以SI、DI、BX間址,操作數(shù)在現(xiàn)行數(shù)據(jù)段區(qū)域中,操作數(shù)地址為DS左移4位加上SI、DI、BX中之一的內(nèi)容。例如:DS=2000H,SI=1500H,執(zhí)行MOXAX,[SI]—(間址用[])則操作數(shù)地址為21500H與21501H。(若指令中指定是段超越的,則SI、DI、BX之內(nèi)容也可以與其它段REG相加,形成操作數(shù)之地址。如:MOVAX,ES:[SI]或ES:MOVAX,[SI]若ES=2200H,SI=1500H,則地址為23500H與23501H)。②若以BP間址,則操作數(shù)在堆棧段區(qū)域內(nèi),操作數(shù)地址為SS左移4位加上BP之內(nèi)容。例如:SS=1200H,BP=2200H,執(zhí)行MOVAX,[BP]
操作數(shù)地址為14200H與14201H
約定:若以SI、DI、BX作間址,對(duì)應(yīng)的段寄存器為DS,若以BP作間址,對(duì)應(yīng)的段寄存器為SS。
允許段超越,即在指令中可以指定其他段寄存器。直接尋址操作數(shù)地址的16位偏移量直接在指令中(存放于碼區(qū)),而操作數(shù)是在數(shù)據(jù)區(qū)中。(操作數(shù)地址為DS左移4位加上該16位偏移量)例如:MOVAX,[1200H];1200H為16位地址偏移量若DS=1200H,則操作數(shù)地址為12000H和12001H。
(允許段超越)變址尋址以指定的REG內(nèi)容,加上指令中給定的8位(或16位)偏移量(必須要一個(gè)段REG作基址),作為操作數(shù)之地址。作為變址尋址的REG是SI、DI、BX、BP中任一個(gè)。(三個(gè)內(nèi)容相加→地址)例如:MOVAX,[DI+60]或MOVAX,60[DI];MOVBX,[SI+1000H]或MOVBX,1000H[SI]
若DS=1500H,SI=1200H,則尋址過程如圖3.6。通常SI,DI,BX作變址REG時(shí)→DS
BP作變址時(shí)→SS。
(允許段超越)基址加變址尋址方式通常把BX和BP作基址REG,SI與DI做變址REG,把這兩種尋址結(jié)合起來形成一種新的尋址方式。即BX或BP加上SI或DI再加上8(or16)位偏移量,四個(gè)量相加。例如:MOVAX,[BX+SI+1030H]或MOVAX,1030[BX][SI]
若BX=2100H,SI=1400H,偏移量1030H,DS=1200H,尋址過程如圖3.7。則操作數(shù)地址為12000+2100+1400+1030=16530H與16531H。正常情況下:由基址REG決定哪個(gè)段REG作為地址基準(zhǔn)
約定:BX→DS,BP→SS。(允許段超越)3.2數(shù)據(jù)傳送類指令
一、通用數(shù)據(jù)傳送類指令MOVOPRD1,OPRD2;OPRD1←OPRD2
其中OPRD1為目的操作數(shù),可以是存儲(chǔ)器操作數(shù),又可以是寄存器操作數(shù);OPRD2為源操作數(shù),可以是寄存器或內(nèi)存操作數(shù),也可以是立即數(shù);注意:
OPRD1,OPRD2不能同時(shí)為內(nèi)存操作數(shù);CS和IP不能做目的操作數(shù);
所有的MOV指令都不改變標(biāo)志位。傳送方向示意圖段寄存器CS,DS,SS,ES通用REGAX…DXBP,SI,DI,SPMEM立即數(shù)堆棧操作指令堆棧是一個(gè)按照后進(jìn)先出原則組織的一段內(nèi)存區(qū)域,要由堆棧區(qū)域與棧指針SP組成,堆棧主要用于子程序調(diào)用與中斷服務(wù)處理程序。
堆棧指令分為壓棧和出棧指令。①壓棧指令PUSHreg/mem或PUSHOPRD
操作如下:SP←SP-1(棧操作都是16位)[SP]←OPRDHSP←SP-1[SP]←OPRDL例如SP=2000H,SS=1000H,AX=1234H執(zhí)行PUSHAX,則堆棧內(nèi)容與SP如下:
SP=1FFEH3412××SP→1FFE1FFFSP→2000M出棧指令POPOPRD
與PUSH過程相反。交換指令
XCHGOPRD1,OPRD2;B/WOPRD1,OPRD2可以是CPU內(nèi)部REG,也可以是內(nèi)存單元,但不能同時(shí)為兩個(gè)內(nèi)存單元。不可以指定段寄存器為交換寄存器。
XCHGBX,[BP+SI]XCHGCX,SI二、累加器專用傳送指令輸入/輸出指令I(lǐng)N,OUTINAL/AX,portINAL/AX,DXOUTport,AL/AXOUTDX,AL/AX例如:有兩個(gè)I/O端口分別為:80H和120H,如何讀/寫這兩個(gè)端口?
讀80H口:
INAL,80H;
寫80H口:OUT80H,AL
讀120H口:MOVDX,120H;INAL,DX
寫120H口:MOVDX,120H;OUTDX,AL表格查找指令(操作數(shù)是隱含的,操作數(shù)地址為基址+索引值)
XLAT;BX為表格起點(diǎn),AL為索引值;從[BX+AL]中取一個(gè)字節(jié)送給AL。BX+0→BX+1→BX+2→BX+AL→XXYYZZ表格地址內(nèi)容DD三、地址傳送指令LEAreg,src;src代表地址偏移量(16位)例如:LEABX,[2400H];BX=2400HLDSreg,mem;(DW)
將mem中的字裝入到指定的reg中,跟在內(nèi)存單元字后面的mem單元中的字裝入到DS中。若DS=1000H,例如:LDSSI,[20H]
SI=1234H,DS=2000HLESreg,mem;(DW)
將上述指令的DS換為ES即可。20001234→SI→DS10020H10021H10022H10023HM四、標(biāo)志傳送指令LAHF(LoadAHfromFlags):將FR中的低8位送到AH中SAHF(StoreAHintoFlags)
與LAHF相反,將AH→FR中的低8位。PUSHF
將FR壓入堆棧。POPF
將堆棧頂內(nèi)容彈出給FR。CFPFAFZFSFAHFR3.3算術(shù)運(yùn)算指令一、加法指令(ADD,ADC,INC)1.不帶進(jìn)位CF的加法指令
ADDOPRD1,OPRD2;OPRD1←OPRD1+OPRD2ADDmem/reg1,mem/reg1/data2.帶進(jìn)位的加法指令
ADCOPRD1,OPRD2;OPRD1←OPRD1+OPRD2+CF
ADD與ADC影響標(biāo)志位SZAPCO(六個(gè))加1指令
INCOPRD;
(8位或16位REG,MEM內(nèi)容)注:段REG內(nèi)容不能加1;不改變CF,只改變S,Z,A,P,O。
二、減法指令不帶CF減法指令
SUBOPRD1,OPRD2;OPRD1←OPRD1-OPRD2。帶CF減法指令
SBBOPRD1,OPRD2;OPRD1←OPRD1-OPRD2-CF。
SUB與SBB影響SZAPCO。減1指令
DECreg/mem;(B/W);reg/mem←reg/mem-1。求補(bǔ)指令
NEGreg/mem;reg/mem←0-reg/mem
標(biāo)志同減法SUB。比較指令
CMPOPRD1,OPRD2;OPRD1-OPRD2
不送回相減的結(jié)果,只影響標(biāo)志位。?當(dāng)兩數(shù)x,y為無符號(hào)數(shù)比較時(shí),判斷大小用CF標(biāo)志:若x-y,CF=0,x>y;
若x-y,CF=1,x<y。?若兩數(shù)x,y為帶符號(hào)數(shù)比較大小時(shí),用OF與SF判斷大?。喝魓-y后,SF=1,OF=1,則x>y;
SF=0,OF=0,則x>y;
即若SF
OF=0,則x>y。若x-y后,SF=1,OF=0或SF=0,OF=1,即:SF
OF=1則x<y。例如:AL=50H,BL=A0H,判斷AL,BL誰大。
CMPAL,BL之后,SZAPCO=100011
(50H-A0=B0H,有一個(gè)借位)
?若為無符號(hào)數(shù),CF=1,BL>AL;?若為符號(hào)數(shù),SF=1,OF=1,則SF
OF=0
所以AL>BL。三、乘法指令無符號(hào)數(shù)乘法
MULreg/mem;(B/W)
該指令只影響CF與OF,當(dāng)乘積的高一半為0,則OF=CF=0;否則CF=OF=1。
Reg/memALAHAL8×8AXReg/memAXDX|AX16×16帶符號(hào)數(shù)乘法
IMULreg/mem;
與MUL相似,只是兩操作數(shù)是符號(hào)數(shù)。
若OF=CF=0,則表示AH或DX中不是00就是FF,積的符號(hào)位擴(kuò)展。若OF=CF=1,表示AH(orDX)內(nèi)容是積的有效數(shù)字部分。例如:MOVAL,FBH|MOVAL,FBHMOVBH,02H|MOVBH,02HIMULBH|MULBH
則AX=FFF6H,|則AX=01F6H,即502CF=OF=0,符號(hào)位擴(kuò)展。|CF=OF=1(AH=01為有效位)。四、除法指令無符號(hào)數(shù)除法
DIVmem/regDX|AX÷mem/reg(32位÷16位)→AX…DXAX÷mem/reg(16位÷8位)→AL…AH
標(biāo)志ZSAPCO不確定。帶符號(hào)數(shù)除法
IDIVmem/reg
商范圍:8位:-128~+12716位:-32768~+32767
若超出了這個(gè)范圍,則會(huì)作為除數(shù)為0的情況來處理,即產(chǎn)生一個(gè)0號(hào)中斷(不是按常規(guī)使OF=1)。若8位÷8位,或16÷16時(shí),被除數(shù)AH與DX做符號(hào)擴(kuò)展。商余將AL之符號(hào)擴(kuò)展到AH中
CBW
若AL<80H,則CBW后,AH←00;若AL≥80H,則CBW后,AH←FFH;不影響標(biāo)志位。擴(kuò)展AX之符號(hào)到DX中
CWD
若AX<8000H,則CWD后,DX←0000;若AX≥8000H,則CWD后,DX←FFFFH;不影響標(biāo)志位。五、BCD碼運(yùn)算指令有兩類BCD碼:一類叫組合的BCD碼,即一個(gè)字節(jié)表示兩個(gè)BCD碼,如01000101表示45;(壓縮BCD)
另一類叫非組合的BCD碼,一個(gè)字節(jié)只用低4位表示一位BCD碼,高4位為0,如00001000表示8。(非壓縮BCD)BCD碼加法十進(jìn)制調(diào)整指令?組合BCD碼:DAA
影響OF之外的五個(gè)標(biāo)志位(S、A、Z、P、C)?非組合BCD碼:AAA
影響AF和CFBCD碼減法調(diào)整指令?DAS(組合的BCD碼調(diào)整)?AAS(非組合的BCD碼調(diào)整)BCD碼乘法調(diào)整指令:AAM
被乘數(shù)和乘數(shù)都是用非組合的BCD碼表示。BCD碼除法調(diào)整指令:AAD對(duì)AX中兩位未組合的BCD數(shù)在相除前校正3.4邏輯運(yùn)算指令
NOT求反單操作數(shù)
NOTreg/memAND,OR,XOR指令
ANDOPRD1,OPRD2
OROPRD1,OPRD2XOROPRD1,OPRD2
標(biāo)志位:CF=OF=0,AF未定義;SF,ZF,PF與操作結(jié)果有關(guān)檢測(cè)指令
TESTOPRD1,OPRD2
與AND一樣按位相與,結(jié)果不送回,僅影響標(biāo)志位,標(biāo)志與AND一樣。移位指令算術(shù)左移SALCF算術(shù)右移SARCF邏輯左移SHLCF邏輯右移SHRCFMBLB000SALreg/mem,1或SALreg/mem,CL;S,Z,P,C與結(jié)果有關(guān);移位之后,CF和
最高位不相等,OF=1;循環(huán)移位?不帶CF循環(huán)ROLCFRORCF?帶CF循環(huán)RCLCFRCRCF只影響CF與OF標(biāo)志:符號(hào)位改變OF=1;符號(hào)位不改變OF=0。說明:1、8條移位指令的移位次數(shù)若為1位,次數(shù)可直接寫在指令中,若大于1次,則移位次數(shù)須寫在CL中。2、SAL,SAR,SHL,SHR影響SF,ZF,PF,CF;OF=0,表示移位前后符號(hào)位沒變;OF=1,表示移位前后符號(hào)位改變。(SAR不改變OF)。3、ROL,ROR,RCL,RCR只影響OF與CF,其它標(biāo)志不變。CF與移位有關(guān),OF反映移位前后符號(hào)位是否改變。3.5串操作指令
串操作指令8086CPU有5種字符串操作指令:MOVS,LODS,STOS,CMPS,SCAS先介紹一下它們的共性:
全部為1字節(jié)指令;
用SI尋址源操作數(shù)(默認(rèn)段為DS);
用DI尋址目的操作數(shù)(默認(rèn)段為ES);
用CX做計(jì)數(shù)器;
地址修改取決于DF,若DF=0,則地址增量(加1或2),DF=1,則地址減量(減1或2);
串操作指令的前面可以加上重復(fù)操作前綴,于是指令重復(fù)執(zhí)行,直到CX的操作次數(shù)滿足要求為止。串操作指令字符串傳送(MOVEString)
MOVSB/MOVSW
完成MEM→MEM(B/W),由SI指定的MEM單元中8位(或16位)數(shù)到DI指定的MEM單元中。可以采用重復(fù)前綴REP,直到CX減到0,對(duì)標(biāo)志位無影響。例如:MOVSI,1000HREP
MOVSBMOVDI,1200HMOVAH,4CHMOVCX,100INT21HCLD串操作指令字符串比較(CompareString)
CMPSB/CMPSW;[SI]-[DI],置FR
可用來檢查兩個(gè)字符串(數(shù)據(jù)塊)是否相等。若找相等的字符,加前綴REPE或REPZ,可解釋為“當(dāng)塊未結(jié)束(CX≠0)且字符是相等的(ZF=1),繼續(xù)比較?!比粽也坏鹊淖址?,加前綴REPNE或REPNZ,則“串未結(jié)束(CX≠0)且字符不等(ZF=0),繼續(xù)比較?!贝僮髦噶钭址阉鳎⊿canString)
SCASB/SCASW;AL/(AX)-ES:[DI],改變FR,在數(shù)據(jù)塊中找KEY(關(guān)鍵字)??杉又貜?fù)前綴REPE/REPZ,“當(dāng)串未結(jié)束(CX≠0)且ZF=0,繼續(xù)搜索?!币部杉又貜?fù)前綴REPNE/REPNZ,,“當(dāng)串未結(jié)束(CX≠0)且ZF=1,繼續(xù)搜索?!睆腂LOCK開始有一個(gè)數(shù)據(jù)串,共100個(gè)字節(jié),在該數(shù)據(jù)串中查找關(guān)鍵字,關(guān)鍵字放在CHR單元中,查到則將關(guān)鍵字的偏移地址放在POINTER中,搜索次數(shù)放在DI中。若未查到,則將POINTER單元清零。
MOVDI,OFFSETBLOCK MOVCX,100 MOVAL,CHAR CLD REPNZSCASB JZS1 MOVDI,0 JMPS2S1:DECDI……
字符串裝入(LoadString)
LODSB/LODSW;AL/AX←DS:[SI]并修改SI。使用REP沒意義(可用來統(tǒng)計(jì)正、負(fù)、0的個(gè)數(shù),大小寫字母等)。5.字符串填充(StorString)
STOSB/STOSW;AL/AX→ES:[DI]并修改DI??杉覴EP,在內(nèi)存中填充一串相同的數(shù)據(jù),如清0。把內(nèi)存某個(gè)區(qū)域填入相同的字符。
某數(shù)據(jù)緩沖區(qū)起始地址為BLOCK,共存放100個(gè)字節(jié)8位帶符號(hào)數(shù),要求把正負(fù)數(shù)相分離,其中正數(shù)存放在PLUS開始的單元中,負(fù)數(shù)存放在MINUS開始的單元中。
PUSHDSSTOSBPOPESXCHGBX,DIMOVSI,OFFSETBLOCKL2:DECCXMOVDI,OFFSETPLUSJNZL1MOVBX,OFFSETMINUSHLTMOVCX,100CLDL1:LODSBTESTAL,80HJNZMINSTOSBJMPL2MIN:XCHGBX,DI3.6程序控制類指令
程序控制類指令共有4種,分別是:調(diào)用、返回指令CALL,RET無條件轉(zhuǎn)移和條件轉(zhuǎn)移JMP,JCC(CC為條件)循環(huán)控制LOOP,(LOOPE/LOOPZ,LOOPNE/LOOPNZ)中斷控制INTn,IRET一、調(diào)用與返回,轉(zhuǎn)移調(diào)用指令格式:CALLaddr;直接給出調(diào)用地址;
CALLdisp16;直接給出調(diào)用地址16位偏移量;CALLreg/mem;通過reg或mem給出地址;具體的有:CALLDXCALLNear[BX]CALLNear[1000H]CALL1200HCALLFar[BX]CALLFar[100H]CALL1200H:1000H段內(nèi)調(diào)用,Near可省去段間調(diào)用,F(xiàn)ar不能省返回指令格式:RET;段內(nèi)返回,棧針SP+2;RETF;段間返回,棧針SP+4;RETdisp16;SP+2之后再加disp16;RETFdisp16;SP+4之后再加disp16;例如:SP=FFF2H,執(zhí)行RETF04后,SP=FFFAH。(允許用戶廢除一些在執(zhí)行CALL以前入棧的參數(shù))第一個(gè)字→IP第二個(gè)字→CS無條件轉(zhuǎn)移
JMPaddrJMPdispJMPreg/mem與CALL一樣,可用Near或Far表示段內(nèi)或段間轉(zhuǎn)移。JMP不要求返回。二、條件轉(zhuǎn)移指令
以某些標(biāo)志位或若干標(biāo)志的邏輯組合作為條件,若滿足條件cc,則轉(zhuǎn)向目標(biāo)地址。8086轉(zhuǎn)移的上下范圍為-128~+127。可分為:a.根據(jù)單個(gè)標(biāo)志的條件轉(zhuǎn)移指令;b.根據(jù)若干標(biāo)志位的邏輯組合的轉(zhuǎn)移指令。(一)、根據(jù)單個(gè)標(biāo)志的條件轉(zhuǎn)移(5個(gè)標(biāo)志S,Z,P,C,O之一,共有10種情況)S標(biāo)志JSdisp;(JS—JumponSign)若SF=1,則轉(zhuǎn)移至目的地址;JNSdisp;若SF=0,則轉(zhuǎn)移至目的地址;Z標(biāo)志JZ/JEdisp;ZF=1,則轉(zhuǎn)移JNZ/JNEdisp;ZF=0,則轉(zhuǎn)移(JNZ與JNE是同一指令的兩種寫法。)P標(biāo)志JP/JPEdisp;PF=1,則轉(zhuǎn)移JNP/JPOdisp;PF=0,則轉(zhuǎn)移C標(biāo)志JC/JB/JNAEdisp;CF=1,則轉(zhuǎn)移JNC/JNB/JAEdisp;CF=0,則轉(zhuǎn)移O標(biāo)志JOdisp;OF=1,則轉(zhuǎn)移JNOdisp;OF=0,則轉(zhuǎn)移(二)、若干個(gè)標(biāo)志位邏輯組合的條件轉(zhuǎn)移判斷無符號(hào)數(shù)的大?。–F與ZF)JA/JNBEdisp;大于且不相等,CF=0,ZF=0。兩個(gè)無符號(hào)數(shù)比較大小時(shí),A>B(不包括相等),則轉(zhuǎn)移。JNA/JBEdisp;
A≤B滿足cc,小于(Below)CF=1,相等ZF=1,cc為:CF=1,或者ZF=1判斷符號(hào)數(shù)的大小(SF,OF,ZF組合)JG/JNLE;A>B滿足cc,則轉(zhuǎn)移;不等ZF=0,大于SF
OF=0,所以cc為:
SF
OF=0并且ZF=0;JGE/JNC;A≥B,滿足cc,則轉(zhuǎn)移;
cc為:SF
OF=0或ZF=1;JL/JNGEdisp;A<B,滿足cc則轉(zhuǎn)移;
cc為:SF
OF=1并且ZF=0;JLE/JNGdisp;A≤B,滿足cc則轉(zhuǎn)移;
cc為:SF
OF=0或ZF=1;三、循環(huán)控制指令
循環(huán)控制指令在循環(huán)的頭部或尾部確定是否進(jìn)行循環(huán),范圍為+127~-128之間,對(duì)完成串操作十分有用。LOOPdisp;CX←CX-1,若CX≠0,則轉(zhuǎn)至目的地址;在使用LOOP之前,需把循環(huán)次數(shù)置于CX中。
LOOPdispDECCXJNZdispLOOPE/LOOPZdisp;CX←CX-1,若CX≠0且ZF=1則繼續(xù)循環(huán);
若CX≠0ZF=0,則停止循環(huán);若CX=0,則停止循環(huán);3.LOOPNE/LOOPNZdisp;CX←CX-1,若CX≠0且ZF=0則轉(zhuǎn)移(循環(huán));JCXZdisp;當(dāng)CX=0時(shí),轉(zhuǎn)移,跳出循環(huán);
CX≠0則不轉(zhuǎn)移。為了能跳出循環(huán),只要在開始處置CX=0即可,CX每次不減1。四、中斷控制指令軟中斷指令:INTnn為中斷矢量號(hào),n可以是0~255(00
~FF)類型號(hào),n×4(地址)中存放著中斷服務(wù)入口地址IP值,n×4+2中存放著中斷服務(wù)入口地址的CS值,有了中斷服務(wù)程序的入口地址,就可以轉(zhuǎn)入中斷服務(wù)程序。該指令執(zhí)行如下操作:?將FR壓入堆棧;?清除IF和TF標(biāo)志,即置IF=TF=0;?將斷點(diǎn)地址CS壓入棧內(nèi);?將中斷服務(wù)程序入口地址的段址裝入CS中(從
內(nèi)存地址n×4+2中?。?將斷點(diǎn)地址IP壓入棧內(nèi);?將中斷服務(wù)程序入口地址的偏移量裝入IP中(從
內(nèi)存地址n×4中?。?。
中斷向量號(hào)n由系統(tǒng)占用若干,提供給用戶若干。INT0;除法出錯(cuò);INT1;單步中斷;INT2;NMI中斷;INT3;斷點(diǎn)中斷;INT4;溢出中斷;
┇┇I(xiàn)NT21H;DOS功能調(diào)用。例如:INT4(INTO)n×4=16=10H,n×4+2=18=12H,則00010H,00011H存放中服IP值,00012H,00013H存放CS值。中斷服務(wù)程序入口地址是
2100:5678H78560021M00010000110001200013IPCS中斷返回指令:IRET從中斷返回,中斷服務(wù)程序的最后一條指令是IRET;把棧中的斷點(diǎn)地址CS:IP及FR彈出送到CS,IP和FR,返回中斷時(shí)的斷點(diǎn)處。3.7CPU控制指令
一、標(biāo)志位操作指令(CF,DF,IF)進(jìn)位標(biāo)志清0:CLC;CF←0;進(jìn)位標(biāo)志置1:STC;CF←1;進(jìn)位標(biāo)志取反:CMC;CF←CF;(complement)方向標(biāo)志清0:CLD;DF←0;方向標(biāo)志置1:STD;DF←1;中斷標(biāo)志清0:CLI;IF←0(禁止、屏蔽INTR線上的中斷);7.進(jìn)位標(biāo)志置1:STI;IF←1(允許INTR線上中斷)二、空操作NOP:不進(jìn)行任何操作,等待4個(gè)T狀態(tài),用于精確定時(shí)或在源程序中插入指令。三、處理器暫停HLT:使CPU進(jìn)入暫停狀態(tài),CPU不進(jìn)行任何操作,也不影響FR。當(dāng)CPU處于HLT時(shí),只有下面三種情況之一發(fā)生時(shí),CPU才能脫離暫停狀態(tài):在RESET線上有復(fù)位信號(hào);在NMI上有請(qǐng)求(當(dāng)沒有總線請(qǐng)求時(shí));在IF=1時(shí),INTR線上有請(qǐng)求。四、處理器等待WAIT:與8087配合使用。該指令用于等待8087協(xié)處理器的運(yùn)行結(jié)果。五、處理器換碼ESCmem;將指定的存儲(chǔ)單元內(nèi)容送到數(shù)據(jù)BUS上,使其它外部處理器共享8086的程序與數(shù)據(jù)。六、總線鎖定前綴LOCK:在下一條指令執(zhí)行時(shí)鎖定總線,使別的主設(shè)備暫時(shí)不能控制BUS。
DEBUG(調(diào)試工具)的使用DEBUG命令進(jìn)入D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆安徽省縣域合作共享聯(lián)盟高三上學(xué)期期末質(zhì)量檢測(cè)歷史試題(含答案)
- 試題研究中考生物試卷及答案
- 山西安管再培訓(xùn)試題及答案
- 企業(yè)內(nèi)部控制試題及答案
- 2025 小學(xué)二年級(jí)科學(xué)下冊(cè)認(rèn)識(shí)動(dòng)物翅膀飛行高度測(cè)試報(bào)告總結(jié)課件
- 2026 年初中英語(yǔ)《短文改錯(cuò)》專項(xiàng)練習(xí)與答案 (100 題)
- 2026年深圳中考語(yǔ)文二模仿真模擬試卷(附答案可下載)
- 2026年大學(xué)大二(康復(fù)治療學(xué))康復(fù)治療技術(shù)基礎(chǔ)測(cè)試題及答案
- 肺心病護(hù)理團(tuán)隊(duì)協(xié)作模式
- 2026年深圳中考化學(xué)有關(guān)化學(xué)式的計(jì)算試卷(附答案可下載)
- 全球城市產(chǎn)業(yè)創(chuàng)新指數(shù)報(bào)告2025
- 礦物的物理性質(zhì)
- 互聯(lián)網(wǎng)公司技術(shù)部負(fù)責(zé)人面試要點(diǎn)及答案
- 雨課堂學(xué)堂在線學(xué)堂云海權(quán)與制海權(quán)海軍指揮學(xué)院?jiǎn)卧獪y(cè)試考核答案
- 高速公路廣告運(yùn)營(yíng)方案
- 基礎(chǔ)電工培訓(xùn)課件
- 具身智能+老年人日常行為識(shí)別與輔助系統(tǒng)方案可行性報(bào)告
- 冬蟲夏草發(fā)酵生產(chǎn)工藝流程設(shè)計(jì)
- 精神科常見藥物不良反應(yīng)及處理
- 執(zhí)行信息屏蔽申請(qǐng)書
- SA8000-2026社會(huì)責(zé)任管理體系新版的主要變化及標(biāo)準(zhǔn)內(nèi)容培訓(xùn)教材
評(píng)論
0/150
提交評(píng)論