微機原理 8086指令系統(tǒng)_第1頁
微機原理 8086指令系統(tǒng)_第2頁
微機原理 8086指令系統(tǒng)_第3頁
微機原理 8086指令系統(tǒng)_第4頁
微機原理 8086指令系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第3章 8086/8088微處理器及其系統(tǒng)1. 8086/8088微處理器結(jié)構(gòu)微處理器功能結(jié)構(gòu)寄存器結(jié)構(gòu)(編程結(jié)構(gòu))2. 8086/8088存儲器組織3. 8086/8088工作方式時序和引腳信號最大和最小模式4. 8086/8088尋址方式5. 8086/8088指令系統(tǒng)9/27/20221第3章 8086/8088微處理器及其系統(tǒng)92種基本指令,全部公開,六個功能組(六大類)一、數(shù)據(jù)傳送(Data transfer)二、算術(shù)運算(Arithmetic)三、邏輯運算和移位指令(Logic & Shift)四、串操作(String manipulation)五、控制轉(zhuǎn)移(Control Tra

2、nsfer)六、處理器控制(Processor Control)9/27/20222第3章 8086/8088微處理器及其系統(tǒng)8086/8088指令一覽表邏輯移位/串處理指令類型助記符邏輯移位邏輯運算AND, TEST, OR, XOR, NOT移位運算SHL, SAL, SHR, SAR循環(huán)移位ROL, ROR, RCL, RCR串處理串操作MOVS, CMPS, SCAS, LODS,STOS重復控制REP, REPE/REPZ, REPNE/REPNZ9/27/202235. 8086/8088指令系統(tǒng)三、邏輯運算和移位指令(Logic & Shift)邏輯運算指令格式邏輯與 AND D

3、, S ; DESTSRCDEST邏輯或 OR D, S ; DEST SRC DEST 異 或 XOR D, S ; DEST SRC DEST 邏輯非 NOT D ; DEST DESTTEST TEST D,S ; DEST SRC1.兩個操作數(shù)要滿足類型組合:D (R或M), S(R/M/N)2.TEST不改變目標操作數(shù)內(nèi)容, 其后常緊跟條件轉(zhuǎn)移指令以實現(xiàn)判斷分支, AND將運算結(jié)果送目標操作數(shù)3.邏輯操作按位進行9/27/202245. 8086/8088指令系統(tǒng)三、邏輯運算和移位指令(Logic & Shift)邏輯運算指令應(yīng)用AND指令通常用于將操作數(shù)的某些位清0AND AL,0

4、FCH ;AL的低2位清0,其余保持不變TEST指令常用于“取出”操作數(shù)的某一位來進行判斷TEST AL,20H ;取AL的D5位OR指令通常用于將操作數(shù)的某些位置1OR AL,80H ;AL的D7位置1, 其余位保持不變XOR指令通常用于將操作數(shù)的某些位取反XOR AL,0FH ;AL的低4位取反,高4位保持不變NOT指令按位取反MOV BX,8A51H ; (1000 1010 0101 0001)NOT BX ; BX=75AEH (0111 0101 1010 1110)Lets do it!9/27/202255. 8086/8088指令系統(tǒng)三、邏輯運算和移位指令(Logic & S

5、hift)移位指令格式:SAL/SAR/SHL/SHR OPRD,1 ;移1位SAL/SAR/SHL/SHR OPRD,CL ;移CL次why?9/27/202265. 8086/8088指令系統(tǒng)三、邏輯運算和移位指令(Logic & Shift)循環(huán)移位指令格式:ROL/ROR/RCL/RCR 操作數(shù),1;移1位ROL/ROR/RCL/RCR 操作數(shù),CL;移位CL次9/27/202275. 8086/8088指令系統(tǒng)三、邏輯運算和移位指令(Logic & Shift)小結(jié)AND、TEST、OR、XOR指令對標志位的影響:固定使CF=OF=0;根據(jù)運算結(jié)果改變SF、ZF、PF。NOT指令形式

6、上只有一個操作數(shù);不影響任何標志位。SAL、SAR、SHL、SHR指令的使用方法相同,對標志位的影響也相同:移出位給CF;根據(jù)結(jié)果改變SF、ZF、PF;當移位次數(shù)為1時,影響OF。ROL、ROR、RCL、RCR的使用方法相同,對標志位的影響相同:移出位給CF;當移位次數(shù)為1時,影響OF。SHR/SAR每移1位,可視為分別將無符號數(shù)和帶符號數(shù)除以2;使用SHL/SAL每移1位,可視為將數(shù)值乘以2。9/27/202285. 8086/8088指令系統(tǒng)思考將兩個非壓縮BCD碼(高位在BL,低位在AL)合并成壓縮BCD碼送AL。MOV CL, 4 ;將計數(shù)值送CLSHL BL, CL ;將高位移到BL

7、的高4位AND AL, 0FH ;清零AL高4位OR AL, BL ;合并AL和BL形成壓縮BCD碼分析下面的程序段所實現(xiàn)的功能(可以用別的指令實現(xiàn)嗎) SHL AL,1 ; 將AL中數(shù)左移1位,得2X MOVBL,AL ; 2X保存在BL中 MOVCL,2 ; 移位次數(shù)置入CL中 SHL AL,CL ; 2X左移2位,得8X ADD AL,BL ; 2X加上8X,所以AL中為10XLets do it!9/27/202295. 8086/8088指令系統(tǒng)四、串操作(String manipulation)串內(nèi)存中一段地址連續(xù)的字節(jié)或字存儲單元。通常用于存放同一類數(shù)據(jù)。數(shù)據(jù)源:源串;數(shù)據(jù)結(jié)果:

8、目的串。串操作對串中各項進行操作(傳送、比較、檢索、裝入、存儲),也叫數(shù)據(jù)塊操作。串操作指令是86/88實現(xiàn)內(nèi)存之間數(shù)據(jù)傳送的一組指令。串操作重復前綴加在串操作指令之前,根據(jù)不同條件判斷是否重復執(zhí)行串操作??梢詫崿F(xiàn)對整個串的同一種操作。9/27/2022105. 8086/8088指令系統(tǒng)四、串操作(String manipulation)在同一個段內(nèi)實現(xiàn)字符串傳送時,應(yīng)該設(shè)置DS和ES為同一數(shù)值,仍由SI和DI分別指出源串操作數(shù)和目的操作數(shù)的偏移地址。 串操作指令是唯一的一組源操作數(shù)和目的操作數(shù)都在存儲單元的指令。方向標志DF決定指針的修改方向 DF =0,指針加;DF =1,指針減。串元素

9、的類型決定修改量字節(jié)串,指針加減1;字串,指針加/減2。加有重復前綴時,固定使用CX計錄并修改重復次數(shù),再根據(jù)CX值及標志位ZF判斷是否重復進行串操作。前綴本身不影響任何標志位。DS:SI默認的源串指針,可段超越ES:DI固定的目標串指針,不允許段超越DFCX9/27/2022115. 8086/8088指令系統(tǒng)四、串操作(String manipulation) 串傳送 MOVS(Move string)MOVS D,S ;(ES):(DI)(DS):(SI)MOVSB (字節(jié)) ;(SI)(SI)1,(DI)(DI)1, MOVSW (字) ;(SI)(SI)2,(DI)(DI)2, RE

10、P CLD, DF=0, SI/DI增加; STD, DF=1, SI/DI遞減 MOV單指令不能完成存儲單元之間的數(shù)據(jù)傳送;MOVS指令就是為解決 存儲單元之間數(shù)據(jù)傳送而設(shè)置的MOVSB/MOVSW隱含了源、目的操作數(shù)9/27/2022125. 8086/8088指令系統(tǒng)思考:重疊串操作 34H,0F2H,1CH,89H,76H,6BHLets do it!SIDISTD; 設(shè)DF=16B76891CF2346B76891CF234XXMOV CX,5 ;串操作次數(shù)MOV SI, 1005MOV DI, 1007REP MOVSB4000H:1000H4000H:1006H4000H:100

11、4H4000H:1005H4000H:1003H4000H:1004H4000H:1002H4000H:1003H4000H:1001H4000H:1000H4000H:1002H9/27/2022135. 8086/8088指令系統(tǒng)四、串操作(String manipulation)CMPS(Compare string ) 串比較指令CMPS D,S ;(ES):(DI) - (DS):(SI),結(jié)果不存,置標志CMPSB ; (字節(jié)) (SI) (SI)1,(DI)(DI) 1CMPSW ; (字)(SI) (SI)2,(DI) (DI)2 與前綴REPZ連用兩數(shù)相減,只影響標志,不影響

12、操作數(shù),其它操作規(guī)定與MOVS同。SCAS (Scan string ) 串掃描、搜索指令SCAS SCASB ;(字節(jié))(AL) (ES):(DI),(DI)(DI)1SCASW ;(字)(AX) (ES):(DI),(DI) (DI)2與前綴REPNE連用(DI)字符串起始地址,(AL)或(AX) 關(guān)鍵字兩數(shù)相減, 只影響標志, 不影響操作數(shù), 其它特性同MOVS9/27/2022145. 8086/8088指令系統(tǒng)四、串操作(String manipulation)LODS(Load from string)讀串指令LODS ;(字節(jié))(AL) (DS):(SI), (SI) (SI)

13、1 ;(字) (AX) (DS):(SI),(SI) (SI)2LODS B ;(字節(jié))(AL) (DS):(SI),(SI) (SI) 1LODS W ;(字) (AX) (DS):(SI),(SI) (SI)2STOS(Store into string) 存入串指令STOS ;(字節(jié)) (ES):(DI) (AL) , (DI) (DI) 1 ;(字) (ES):(DI) (AX) , (DI) (DI) 2STOSB ;(字節(jié)) (ES):(DI) (AL) , (DI) (DI) 1STOSW ;(字) (ES):(DI) (AX) , (DI) (DI) 2與REP聯(lián)用時,(CX)

14、緩沖區(qū)長度。用來建立一串相同的值,初始清零。9/27/2022155. 8086/8088指令系統(tǒng)四、串操作(String manipulation)PRACTICE AND PROGRESSSTOSB / LODSBStore a to 15 memory cells, with start address ES:DI 3000H:1230H, then load character again. CMPSB / SCASBCompare string aaA with aaa, check flag bit CFSearch character a with china, check fl

15、ag bit CFLets debugging !9/27/202216第3章 8086/8088微處理器及其系統(tǒng)8086/8088指令一覽表控制轉(zhuǎn)移指令類型助記符控制轉(zhuǎn)移無條件轉(zhuǎn)移JMP條件轉(zhuǎn)移JE/JZ, JNE/JNZ, JS, JNS, JO, JNOJP, JNP, JC, JNC, JCXZJA/JNBE, JAE/JNB, JB/JNAE JBE/JNAJG/JNLE, JGE/JNL, JL/JNGE, JLE/JNG循環(huán)控制LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ過程調(diào)用CALL, RET中斷指令I(lǐng)NT, INTO, IRET處理機控制CLC, STC

16、, CMC,CLD, STD, CLI, STINOP, HLT, WAIT, ESC, LOCK9/27/2022175. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令概述控制轉(zhuǎn)移指令對IP(或CS:IP)進行強制性修改,只有一個操作數(shù),通過該操作數(shù)給出目標地址新的IP(或CS:IP)段內(nèi)轉(zhuǎn)移(CS不變,IP改變)( IP)(IP)當前+ OPR(DISP)短轉(zhuǎn)移(short)相對偏移量為1字節(jié), 取值范圍-128 +127,操作數(shù)為8位(正值向后跳轉(zhuǎn),負值向前跳轉(zhuǎn))近轉(zhuǎn)移(near)相對偏移量為1個字, 取值范圍-32768 +32767, 操作數(shù)為16位(正值向后跳轉(zhuǎn),負值向前跳轉(zhuǎn))段間轉(zhuǎn)

17、移(CS改變,IP改變)遠轉(zhuǎn)移(far)目標地址與正常順序IP值不在同一個代碼段內(nèi)9/27/2022185. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-無條件轉(zhuǎn)移JMP指令格式:JMP 目標標號(操作數(shù)/目標地址)操作數(shù)(目標地址)的給出方式:段內(nèi)直接給出:JMP (NEAR/SHORT) SUM0(IP)=(IP)+SUM0段內(nèi)間接給出:JMP AX / JMP WORD PTR BX(IP)= (AX) / (IP)=(PA)= (DS)X10H+(BX)段間直接給出:JMP FAR PTR BRCH / JMP 2101H:1234H(CS)= BRCH 段地址, (IP)= BARC

18、H 偏移地址段間間接給出:JMP DWORD PTR DI+1200H PA=(DS)X10H+(DI)+200H(IP)=(PA),(PA+1) (CS)=(PA+2), (PA+3)9/27/2022195. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-條件轉(zhuǎn)移條件轉(zhuǎn)移指令的特點格式: 指令助記符 目標地址OPR (短標號)功能:根據(jù)當前各標志位狀態(tài)進行判斷,如果滿足指令所指定的條件,則轉(zhuǎn)移至目標地址處;否則順序執(zhí)行。轉(zhuǎn)移范圍:只有短轉(zhuǎn)移,即相對位移量是一個8位的帶符號數(shù)(128127)。尋址方式:(IP)(IP)當前+ OPR(D8)正值表示向后跳轉(zhuǎn),負值表示向前跳轉(zhuǎn)(條件轉(zhuǎn)移指令為兩字

19、節(jié)長度,一字節(jié)為指令功能碼,一字節(jié)指令為一個字節(jié)的相對跳轉(zhuǎn)地址偏移量)9/27/2022205. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-條件轉(zhuǎn)移助記符轉(zhuǎn)移條件助記符轉(zhuǎn)移條件JZ/JEZF=1JNZ/JNEZF=0JSSF=1JNSSF=0JOOF=1JNOOF=0JP/JPEPF=1JNP/JPOPF=0JCCF=1JNCCF=0助記符轉(zhuǎn)移條件JCXZCX=0以單個狀態(tài)標志作為轉(zhuǎn)移條件以CX的值為0作為轉(zhuǎn)移條件9/27/2022215. 8086/8088指令系統(tǒng)助記符轉(zhuǎn)移條件JA/JNBECFZF=0高于/不低于等于JAE/JNB/JNCCF=0 高于或等于/不低于/無進位JB/JNA

20、E/JCCF=1 低于/不高于等于/有進位JBE/JNACFZF=1 低于或等于/不高于助記符轉(zhuǎn)移條件JG/JNLE(SFOF)ZF=0大于/不小于等于JGE/JNL SFOF=0 大于或等于/不小于JL/JNGE SFOF=1 小于/不大于等于JLE/JNG(SFOF)ZF=1小于或等于/不大于以兩個帶符號數(shù)比較的結(jié)果作為轉(zhuǎn)移條件以兩個無符號數(shù)比較的結(jié)果作為轉(zhuǎn)移條件9/27/2022225. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-循環(huán)控制指令格式: LOOP 短標號 功能:根據(jù)CX的值和ZF標志判斷是否轉(zhuǎn)移。尋址方式:相對尋址,只能實現(xiàn)短轉(zhuǎn)移。指令本身不影響ZF!助記符轉(zhuǎn)移條件不轉(zhuǎn)移條

21、件LOOPCX0CX=0LOOPZCX0且ZF=1 (相等)CX=0或ZF=0(不等)LOOPNZCX0且ZF=0 (不等)CX=0或ZF=1 (相等)9/27/2022235. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-過程調(diào)用CALL指令執(zhí)行的操作格式:CALL 過程名(即操作數(shù)/目標地址)與JMP的不同之處:有對應(yīng)的返回指令;必須保存斷點,執(zhí)行過程與堆棧有關(guān)。9/27/2022245. 8086/8088指令系統(tǒng)五、控制轉(zhuǎn)移指令-過程調(diào)用過程返回指令RET格式: RET RET n功能:從棧頂彈出1個字(段內(nèi)返回)或2個字(段間返回),作為返回地址(即斷點)給IP或CS:IP;SP相應(yīng)加2或加4。指令后跟8位立即數(shù),用以在恢復斷點后,在現(xiàn)行SP值上再加此數(shù),以釋放相應(yīng)數(shù)目的堆??臻g。位于被調(diào)過程的末尾;必須與CALL指令成對使用!根據(jù)對應(yīng)的CALL指令轉(zhuǎn)移類型,自動確定段內(nèi)/段間返回。9/27/2022255. 8086/8088指令系統(tǒng)五、控制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論