![北航微機原理第八講-課件_第1頁](http://file4.renrendoc.com/view3/M01/18/2F/wKhkFmYLCdeATGI4AALEVgH0w2A608.jpg)
![北航微機原理第八講-課件_第2頁](http://file4.renrendoc.com/view3/M01/18/2F/wKhkFmYLCdeATGI4AALEVgH0w2A6082.jpg)
![北航微機原理第八講-課件_第3頁](http://file4.renrendoc.com/view3/M01/18/2F/wKhkFmYLCdeATGI4AALEVgH0w2A6083.jpg)
![北航微機原理第八講-課件_第4頁](http://file4.renrendoc.com/view3/M01/18/2F/wKhkFmYLCdeATGI4AALEVgH0w2A6084.jpg)
![北航微機原理第八講-課件_第5頁](http://file4.renrendoc.com/view3/M01/18/2F/wKhkFmYLCdeATGI4AALEVgH0w2A6085.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八講8088指令系統(tǒng)(續(xù))
2009.4.7(星期二)課程內容:
五、控制傳送指令 六、處理器控制指令2020/12/271第八講8088指令系統(tǒng)(續(xù))
2009.4.7(星期二如何利用地址線產生脈沖三態(tài)總線兩態(tài)總線KKK:MOVAL,(BX)CALLDELAY INCBX MOVAL,(BX) CALLDELAY JMPKKK2020/12/272如何利用地址線產生脈沖三態(tài)總線兩態(tài)總線KKK:MOVAL精品資料精品資料你怎么稱呼老師?如果老師最后沒有總結一節(jié)課的重點的難點,你是否會認為老師的教學方法需要改進?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”北航微機原理第八講-ppt課件精品資料5精品資料5你怎么稱呼老師?如果老師最后沒有總結一節(jié)課的重點的難點,你是否會認為老師的教學方法需要改進?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風雨狂,只怕先生罵我笨,沒有學問無顏見爹娘……”“太陽當空照,花兒對我笑,小鳥說早早早……”66五.控制傳送指令(Controltransferinstructions)控制傳送指令概述
控制傳送指令包括四種:
轉移指令,循環(huán)控制指令,過程調用指令,中斷指令。指令類型助記符無條件轉移JMP條件轉移JE/JZ,JNE/JNZ,JS,JNS,JP/JPE,JNP/JPO,JO,JNO,JC,JNC,JB/JNAE,JAE/JNB,JA/JNBE,JBE/JNA,JG/JNLE,JGE/JNL,JL/JNGE,JLE/JNG,JCXZ循環(huán)控制LOOP,LOOPE/LOOPZ,LOOPNE/LOOPNZ過程調用CALL,RET中斷指令INT,INTO,IRET2020/12/277五.控制傳送指令(Controltransferinst(一)、無條件轉移指令 1.JMP(jmp)目標標號 JMP指令必須指定轉移的目標地址(或轉向地址)。 轉移分成兩類:段內或段間轉移。
(1)段內直接轉移:只要改變IP寄存器的內容 指在同一段的范圍之內進行轉移 (IP)←(IP)當前+目標標號所代表的地址偏移量 地址偏移量又稱為符號地址 目標標號為8位,稱為短轉移。 目標標號為16位,稱為近轉移。
2020/12/278(一)、無條件轉移指令2020/12/278例如:代碼段內有一條無條件轉移指令在匯編語言中使用符號地址。 JMPSHORTNEXT指令執(zhí)行過程: NEXT—在匯編語言中使用符號地址 (IP)←(IP)當前+D8(8位帶符號數(shù))源程序:條件轉移指令:JMPSHORTnext.........
next:MOVAL,03HOP......OP03H......3000:1000H3000:1050H(IP)當前(NEXT的值定義為50H)(IP)=(IP)當前+D8內存向前跳,D8為正數(shù),往回跳,D8用補碼JMPSHORTABC若ABC=0F0H,則回跳16字節(jié)2020/12/279例如:代碼段內有一條無條件轉移指令在匯編語言中使用符號地址。
(2)
段內間接轉移:(CS)不變,只改變(IP)格式:JMPOPR
OPR—為16位寄存器、 或存儲器(除立即數(shù)以外的任何一種尋址方式)執(zhí)行操作: (IP)
(EA) 或(IP)
(reg16)
IP指針的內容根據(jù)寄存器或存儲器(數(shù)據(jù)段、附加段、堆棧段)的內容而改變。指令格式舉例:JMPBX JMPSIJMPTABLE[BX] ;操作數(shù)已定義為16位存儲器JMPALPHA_WORD ;操作數(shù)已定義為16位存儲器JMPWORDPTR[BP][DI];操作數(shù)已定義為16位存儲器2020/12/2710(2)段內間接轉移:(CS)不變,只改變(IP)例:(IP)=5000H,(CS)=3000H,(DS)=1000H,(BX)=1000H(11000H)=1234H,JMPBX ;(IP)=1000H,在當前段內,屬于 ;寄存器尋址JMPWORDPTR[BX] ;(CS)=3000H,(IP)=1234H在當前段內,(PA)=(16d
(DS)+(BX))=(11000H)為1234H將PA地址存儲器的內容(1234H)給IP;屬于寄存器間接尋址。2020/12/2711例:2020/12/2711(3)段間直接轉移:要修改IP、CS寄存器的內容。轉到另一段去執(zhí)行程序。
轉移目標地址=新的段地址和偏移地址兩部分組成。格式:JMPFARPTROPR;
OPR—在匯編語言中使用符號地址(如標號AKK,假設定義在另一程序段CC00:0044)。
轉移地址與指令不在同一個段里。在機器語言中則要指定轉向地址的偏移地址和段地址
JMPFARPTRAKK執(zhí)行操作:
(IP)←OPR所在的段內偏移地址0044H。 (CS)←OPR所在的段的段址CC00H。直接轉移通過符號地址加載IP和CS,間接轉移通過存儲器內容加載IP和CS.
2020/12/2712(3)段間直接轉移:要修改IP、CS寄存器的內容。轉到(4)段間間接轉移:(CS)、(IP)都改變格式:JMP DWORDPTROPR
OPR—存儲器操作數(shù)
(除立即數(shù)和寄存器以外的任何一種尋址方式)執(zhí)行操作:將4字節(jié)連續(xù)地址分別送給IP和CS
(IP)←(EA)(CS)←(EA+2)例:已知(BX)=1000H,(SI)=2000H,(DS)=2000H (23000H)=2212H,(23002H)=4434H
JMPDWORDPTR[BX][SI]則:(BX)+(SI)=3000H(IP)=(PA)=(16d
(DS)+(BX)+(SI))=(23000H)=2212H(CS)=(PA+2)=4434H2020/12/2713(4)段間間接轉移:(CS)、(IP)都改變202.條件轉移指令
指令格式:JccOPR操作:根據(jù)上一條指令所設置的條件碼來判別測試條件轉移。 每一種條件轉移指令都有它的測試條件。滿足條件時: (IP)←(IP)當前+OPR(D8)
使用相對尋址方式,范圍-128~+127個字節(jié)不滿足條件時:(IP)不變,順序執(zhí)行下一條指令(該指令為兩字節(jié)長度,一字節(jié)為指令功能碼,一指令為一個字節(jié)的相對跳轉地址偏移量)2020/12/27142.條件轉移指令2020/12/2714按轉移條件不同,條件轉移指令可以分為四大類:①以單個狀態(tài)標志作為轉移條件助記符 轉移條件助記符轉移條件助記符轉移條件JZ/JEZF=1JNZ/JNEZF=0JSSF=1JNSSF=0JOOF=1JNOOF=0JP/JPEPF=1JNP/JPOPF=0JCCF=1JNCCF=0②以CX的值為0作為轉移條件助記符轉移條件JCXZ CX=02020/12/2715按轉移條件不同,條件轉移指令可以分為四大類:助記符轉移條件助助記符 轉移條件JA/JNBECF∨ZF=0 高于/不低于等于JAE/JNB/JNCCF=0高于或等于/不低于/無進位JB/JNAE/JCCF=1 低于/不高于等于/有進位JBE/JNACF∨ZF=1 低于或等于/不高于③以兩個無符號數(shù)比較的結果作為轉移條件④以兩個帶符號數(shù)比較的結果作為轉移條件助記符
轉移條件
JG/JNLE(SF⊕OF)∨ZF=0 大于/不小于等于JGE/JNLSF⊕OF=0 大于或等于/不小于JL/JNGESF⊕OF=1 小于/不大于等于JLE/JNG(SF⊕OF)∨ZF=1 小于或等于/不大于2020/12/2716助記符 轉移條件JA/JNBECF∨ZF=0 高于/不低于等注意幾點:所有條件轉移指令都是相對轉移形式,(兩字節(jié)指令) 范圍(-128~+127)。 當需往一個較遠地方進行條件轉移時, 選用條件轉移轉到附近一個單元, 然后,再用無條件轉移轉到較遠的目的地。②條件轉移指令中,相當一部分指令是在比較完二個數(shù)大小后,根據(jù)結果而決定是否轉移,③條件轉移指令不影響標志位例:程序段2000H:3040HDONE:MOVAX,05H
…………
2000H:3079HJNEDONE
求DONE為何值2020/12/2717注意幾點:2020/12/2717(IP)=(IP)當前程序段2000H:3040HDONE:MOVAX,05H…………2000H:3079HJNEDONE執(zhí)行此指令時,IP指針為何OP05H......OPC5H......2000:3079H2000:3040H(IP)當前內存2000:307BHDONE1101100000+307BHC5H2020/12/2718(IP)=(IP)當前程序段執(zhí)行此指令時,OP05H條件轉移指令應用
例:比較二個數(shù)是否相等如相等做動作1否則做動作2
…… CMPAX,BX
JEaction_1Action_2:…………action_1:……
或 …… CMPAX,BX
JNZaction_2action_1: ……action_2: ……=?AXBXYaction_1action_2N=?AXBXNaction_2action_1Y2020/12/2719條件轉移指令應用或 …
例:在M中有一個首地址為array的N字數(shù)組, 要求測試其中正數(shù)、0及負數(shù)的個數(shù).(帶符號數(shù)判斷)正數(shù)個數(shù)放在:(DI)中,0的個數(shù)放在:(SI)中,負數(shù)的個數(shù)放在:N-(DI)-(SI)送(AX)如果沒有負數(shù)轉skip,如果有負數(shù)轉neg_val程序:movcx,N;N字數(shù)組
movbx,0 movdi,bx movsi,bx again:cmpwordptrarrary[bx],0 jleless_or_ag
incdi ;正數(shù)個數(shù) jmpshortneat less_or_ag:jlneat incsi ;0的個數(shù)neat: addbx,2 deccx jnzagain
movax,N subax,di
subax,si jzskip;沒有負數(shù) jmpnearptrneg_val;有負數(shù)skip:……neg_val:……
2020/12/2720例:在M中有一個首地址為array的N字數(shù)組,程序:m(三)過程(子程序)調用指令子程序—程序中具有獨立功能的部分編寫成獨立程序模塊。子程序(過程)定義格式:符號名(AA) PROC類型(FAR/NEAR) …… RET(RETURN) 符號名(AA) ENDP
子程序調用和返回指令:CALLAA過程有兩種類型: 按過程與調用語句間的位置,過程有兩種類型。 NEAR類型:調用指令與過程在同一個段中 FAR類型:調用指令與過程不在同一個段中CALL指令和RET指令都不影響條件碼。2020/12/2721(三)過程(子程序)調用指令2020/12/2721CALL(Callaprocedure)調用CALL調用指令 調用地址由指令給出調用時:將當前地址入棧(CS)。 (IP)。CALL調用指令有4種:
段內直接調用 段間直接調用 段內間接調用 段間間接調用2020/12/2722CALL(Callaprocedure)調用2020/例:CSEG1 SEGMENT
CALLFARPTRsubp;此處的CS:IP入棧轉subp
…CSEG1ENDSCSEG2SEGMENT …
subpPROCFAR
…
RETsubpENDPCSEG2ENDS2020/12/2723例:202(2)、RET(Returefromprocedure)返回RET返回指令 放在子程序的末尾 使子程序在功能完成后返回調用程序繼續(xù)執(zhí)行。*為能準確返回,返回指令類型與調用指令類型相對應。RET返回指令有4種: 段內返回 段間返回 段內帶立即數(shù)返回 段間帶立即數(shù)返回在子程序調用時,返回地址入棧返回時:將返回地址出棧(IP)(段內或段間)。 (CS)(段間)。2020/12/2724(2)、RET(Returefromproce操作數(shù)執(zhí)行操作符號地址(SHORT) (IP)←(IP)當前+8位符號地址位移量(段內短跳)符號地址(NEAR屬性)(IP)←(IP)當前+16位符號地址位移量(段內近跳)reg(16位)或mem(W類型)(IP)←(reg)或(IP)←(mem)(段內間接跳)符號地址(FAR屬性)(IP)←符號地址的偏值(段間直接跳)(CS)←符號地址的段值mem(DW類型) (IP)←(mem),(CS)←(mem+2)(段內短跳)
◢當前IP的值為控制轉移指令下一條指令的偏移地址。
◢位移量=符號地址的偏移量-當前IP的值。◢符號地址(目標地址)=當前IP的值+位移量(3)、小結:指令格式:JMP操作數(shù)2020/12/2725操作數(shù)執(zhí)行操作符號地址(SHORT) (IP)←(轉移方式:由CS是否變化、以及操作數(shù)類型決定情況如下表轉移方式CS操作數(shù)跳轉范圍段內直接短方式不變符號地址(SHORT)-128~127即0~FFH段內直接近方式不變符號地址(NEAR屬性)一個段內0~FFFFH段內間接方式不變Regmem(W類型)一個段內0~FFFFH段間直接方式變符號地址(FAR屬性)整個內存0~FFFFFH段間間接方式變mem(DW類型)整個內存0~FFFFFH2020/12/2726轉移方式:由CS是否變化、以及操作數(shù)類型決定情況如下表各控制轉移指令允許使用的轉移方式轉移方式無條件轉移JMP條件轉移Jcc循環(huán)轉移LOOPxx子程調用CALL段內直接短方式√ √√×段內直接近方式√××√段內間接方式√××√段間直接方式√××√段間間接√××√2020/12/2727各控制轉移指令允許使用的轉移方式轉移方式無條件轉移J例: JMPagain (√) JMPBX (√) JMPWORDPTR[BX] (√) JMPDWORDPTR (√) JZAX(不能是字,AX) (×) JNZnext (?) (若next的位移量超出-128~127)2020/12/2728例: JMPagain (四)循環(huán)控制指令格式:LOOPxx符號地址執(zhí)行操作:①(CX)←(CX)-1此操作不影響標志②檢查轉移條件xx,滿足轉向目標地址去執(zhí)行;不滿足執(zhí)行LOOPxx后一條指令轉移方式只允許段內直接短方式,跳轉范圍-128~127助記符轉移條件不轉移條件LOOPCX≠0CX=0LOOPZCX≠0且ZF=1(相等)CX=0或ZF=0(不等)LOOPNZCX≠0且ZF=0(不等)CX=0或ZF=1(相等)
2020/12/2729(四)循環(huán)控制指令助記符轉移條件不轉移條件LOOPCX≠0C與條件轉移指令不同的是:循環(huán)指令隱含(CX)減1操作。例:用循環(huán)指令將BL寄存器的內容按二進制形式顯示出來學習:LOOP指令
MOVCX,8next:ROLBL,1 MOVDL,BL ANDDL,00000001B
ADDDL,00110000B MOVAH,2 INT21H
DECCX JNZnext ……LOOPnext2020/12/2730與條件轉移指令不同的是:循環(huán)指令隱含(CX)減1操作循環(huán)指令說明:
LOOP退出循環(huán)條件是(CX)=0LOOPZ和LOOPNZ提供了提前結束循環(huán)的可能, 不一定要等到(CX)=0才退出循環(huán)?!诖胁檎易址?,查到了,就可退出,可用LOOPNZ,不相等時繼續(xù)查找?!容^兩串時,當有字符不等,就可退出,說明兩字符串不等??捎肔OOPZ,當相等時繼續(xù)比較?!鴪?zhí)行完LOOPNZ或LOOPZ后,根據(jù)ZF標志的值判斷結果 對查找字符,ZF=1,說明找到;否則沒有找到。 對串比較,ZF=1,說明兩串相等;否則不等。2020/12/2731循環(huán)指令說明:2020/12/2731
例:在string字符串中查找空格字符,串長度為N。用條件轉移:JZ
MOVCX,NMOVAX,SEGstringMOVDS,AXLEABX,stringMOVAL,20Hnext:CMPAL,[BX] JZfind INCBX DECCX JNZnext 未找到處理
……Find:找到處理
……修改偏址BXYNAL
關鍵字CX串長度NDS:BX串首址判[BX]是關鍵字?
(CX)(CX)-1找到處理未找到處理
(CX)=0?YN結束出口2020/12/2732例:在string字符串中查找空格字符,串長度為N。用 MOVCX,28H MOVSI,0FFFFHNEXT1:INCSI CMPBYTEPTR[SI],0
LOOPZNEXT1
;當Z=1、(CX)≠0循環(huán); 當Z=0,或(CX)=0結束循環(huán)。
JNZOKK ;當找到非零元素轉OKK。 CALLDISPLAY1 ;當找不到非零元素轉DISPLAY1 ……OKK:CALLDISPLAY2 ……用LOOPZ和LOOPNZ指令提供提前結束循環(huán)的可能性。有時需要字符串中查找一個字符,找到后可提前結束循環(huán), 用LOOPZ、LOOPNZ來處理。例:40個元素構成的數(shù)組,找出第一個非零元素。
DISPLAY1…… RETDISPLAY2…… RET指令JMP、CALL、Jcc、LOOPxx本身對標志無影響。2020/12/2733 MOVCX,28H 用LOO4、中斷指令中斷(Interrupt): 有時當系統(tǒng)運行或程序運行期間遇到某些特殊情況,需要計算機自動執(zhí)行一組專門的例行程序來進行處理。中斷例行程序(或中斷子程序)(Interruptroutine): 所執(zhí)行的這組程序就稱為中斷子程序。種類:中斷分為內部(軟)中斷和外部(硬)中斷兩種。內部中斷—如除法運算中除數(shù)為0、中斷指令引起的中斷。外部中斷—處理I/O設備與CPU之間的通信。2020/12/27344、中斷指令2020/12/2734CPU響應一次中斷自動完成三件事情:(PSW)入棧—保護現(xiàn)場,(CS),(IP)保存入?!A魯帱c,轉中斷例行程序去執(zhí)行。
中斷返回時:
恢復(IP)、(CS)及(PSW)中斷向量:中斷例行程序入口地址。IBM-PC中,存儲器的最底地址00000H——003FFH為中斷向量區(qū),存放256種類型中斷例行程序入口地址,每個中斷向量占4個單元。中斷指定類型號N×4——取得指定類型的中斷向量地址。2020/12/2735CPU響應一次中斷自動完成三件事情:2020/12/2735例:中斷類型9,9×
4=36
00024H——00027H單元中放中斷向量。IBM-PC機中為每個類型規(guī)定了一種功能。中斷類型功能類型0除數(shù)為0中斷例行程序類型1單步類型2非屏蔽中斷,NMI類型3設置斷點類型4溢出處理中斷,INTO指令類型10顯示設備中斷類型20程序結束中斷類型21DOS系統(tǒng)功能調用功能程序*除非特別注明,類型號是以16進制形式表示的。2020/12/2736例:中斷類型9,9×4=36中斷類型功能類型0除數(shù)(1).介紹幾條指令:INTn,IRET格式:INTn ;n—常數(shù)或表達式,n=0—255 或INT執(zhí)行操作: (SP)←(SP)-2,(SP))←(PSW) (SP)←(SP)-2,(SP))←(CS) (SP)←(SP)-2,←(IP)
(IP)←(N×4) (CS)←(N×4+2)清除IF、TF,避免進入中斷以后不被外面其它中斷所打斷 及進入中斷以后按單步執(zhí)行。2020/12/2737(1).介紹幾條指令:INTn,IRET2020/1
類型0~3的中斷稱為內部中斷。
類型0:指令系統(tǒng)沒有INT0這條指令
除數(shù)為0中斷 除數(shù)為0:它既不是外部中斷也不是軟件中斷。 是由CPU自身產生的,所以無對應中斷指令。
有符號數(shù)進行除法所得的商超出規(guī)定范圍 有符號數(shù)進行除法運算,所得的商超出規(guī)定范圍,
CPU自動產生類型為0的中斷,轉入響應的中斷處理程序。。2020/12/2738類型0~3的中斷稱為內部中斷。2020/12/273內存0:0000H~0:03FFH區(qū)域中,構成中斷向量表,存放中斷處理程序入口地址。每4個單元對應1個中斷源。關系如下表:中斷處理程序入口地址的地址類型00000H~00001H類型0(IP)00002H~00003H類型0(CS)00004H~00005H類型1(IP)00006H~00007H類型1(CS)00008H~00009H類型2(IP)0000AH~0000BH類型2(CS)0000CH~0000DH類型3(IP)0000EH~0000FH類型3(CS)00010H~00011H類型4(IP)00012H~00013H類型4(CS)…………003FCH~003FDH類型255(IP)003FEH~003FFH類型255(CS)2020/12/2739內存0:0000H~0:03FFH區(qū)域中,構成中斷向量表,存∴INTO跟在有符號數(shù)+、-后面:*這條指令可以寫在一條算術指令后面。若產生溢出,OF=1,則啟動中斷過程,不進行任何操作。(2)IRET——從中斷返回指令(Interruptreturn)所有中斷過程(服務程序)不管是硬還是軟,最后一條指令一定是: IRET退出中斷過程,返回中斷時斷點。格式:IRET執(zhí)行操作:
(IP)←((SP)+1,(SP)),(SP)←
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5《七律 長征》 說課稿-2024-2025學年語文六年級上冊統(tǒng)編版001
- 2024年四年級英語下冊 Unit 7 What's the matter第4課時說課稿 譯林牛津版001
- 18《慈母情深》說課稿-2024-2025學年統(tǒng)編版語文五年級上冊001
- 2025門窗工程承包合同
- 2025市場咨詢服務合同范本
- 2025嫁接種苗技術服務合同書
- 2024-2025學年高中歷史 第2單元 西方人文精神的起源及其發(fā)展 第7課 啟蒙運動說課稿 新人教版必修3
- 信息平臺建設合同范本
- 7 《我在這里長大》第一課時(說課稿)2023-2024學年統(tǒng)編版道德與法治三年級下冊
- 書推廣合同范例
- 機器狗:技術成熟性能優(yōu)越場景剛需放量在即2025
- 2025年日歷表(A4版含農歷可編輯)
- 高三開學收心班會課件
- 蒸汽換算計算表
- 四年級計算題大全(列豎式計算,可打印)
- 科技計劃項目申報培訓
- 591食堂不合格食品處置制度
- 國際金融課件(完整版)
- 220t鍋爐課程設計 李學玉
- 全英文劇本 《劇院魅影》
- 北京城的中軸線PPT通用課件
評論
0/150
提交評論