版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 第二章指令系統(tǒng)2本章主要內容本章主要內容l 尋址方式尋址方式l 8086/8088指令系統(tǒng)指令系統(tǒng)學習網站:學習網站:http:/ 例如:例如: ADD AX, 1000Hl機器指令:指令的二進制代碼形式機器指令:指令的二進制代碼形式 例如:例如: 05 00 10l指令系統(tǒng):指令系統(tǒng):CPU所有指令及其使用規(guī)則的集合所有指令及其使用規(guī)則的集合4指令的基本構成指令的基本構成操作碼操作碼操作數操作數說明要執(zhí)行的是說明要執(zhí)行的是什么操作什么操作操作的對象操作的對象(可以有可以有0個、個、1個或個或2個個)示例:示例:ADD AX, 1000H對應機器指令:對應機器指令:05 00 1005為操
2、作碼,表示要執(zhí)行為操作碼,表示要執(zhí)行“與累加器相加與累加器相加”操作,操作,00 10為操作數,是低位開始存放的操作數為操作數,是低位開始存放的操作數1000H5示例示例l 借助系統(tǒng)自帶的借助系統(tǒng)自帶的debug工具,明確機器碼的概念工具,明確機器碼的概念6尋址方式尋址方式指令由指令由操作碼操作碼和和操作數操作數構成。構成。操作碼操作碼在指令中已經顯式給出;在指令中已經顯式給出;如何尋找如何尋找操作數操作數?尋址方式尋址方式 尋址方式尋址方式是是CPU指令中規(guī)定的尋找操作數所在指令中規(guī)定的尋找操作數所在地址的方式。地址的方式。7邏輯地址(回顧)邏輯地址(回顧)l程序設計時,使用的是邏輯地址。邏
3、輯地址程序設計時,使用的是邏輯地址。邏輯地址由由“段基址段基址”和和“偏移量偏移量”構成(均為構成(均為16位)。位)。l表示方法:表示方法:段基址:偏移量段基址:偏移量 “段基址段基址”由段寄存器由段寄存器CS、DS、SS和和ES提提供供 “偏移量偏移量”由由BX、BP、IP、SP、SI、DI或或根據尋址方式計算出的有效地址根據尋址方式計算出的有效地址EA(Effective Address)提供提供8由邏輯地址獲得物理地址的計算公式(由邏輯地址獲得物理地址的計算公式(回顧回顧) 物理地址段基址物理地址段基址10H偏移量偏移量15 03 019 015 00000段基址段基址偏移量偏移量物理
4、地址物理地址邏輯地址邏輯地址物理地址物理地址9尋址方式的種類尋址方式的種類1、立即尋址(、立即尋址(Immediate Addressing)MOV AL, 100; MOV CX, 2000H; 2、寄存器尋址(、寄存器尋址(Register Addressing)MOV DS, AX; MOVCX,BX;MOVSI,DX3、直接尋址(、直接尋址(Direct Addressing) MOV AX,2000H ; MOV AL,BUFFER;4、寄存器間接尋址、寄存器間接尋址 (Register Indirect Addressing)MOV AX,SI; MOV BL,DI; MOV CH
5、,BX; MOV DX,BP10尋址方式的種類尋址方式的種類5、變址尋址(、變址尋址(Indexed Addressing)SI、DI索引源變址寄存器索引源變址寄存器SI 目標變址寄存器目標變址寄存器DI EA=SI/DI+位移量位移量 MOV AX,SI+6;MOV DL,TABLESI6、基址尋址(、基址尋址(Based Addressing) BX、BPMOV AL,BX+100;MOV DX,TABLEBP 基址尋址與變址尋址類似,不同之處在基址尋址與變址尋址類似,不同之處在于于: 變址尋址中的寄存器是變址尋址中的寄存器是 SI、DI 基址尋址中的寄存器是基址尋址中的寄存器是BX、BP
6、11尋址方式的種類尋址方式的種類7、基址、基址-變址尋址(變址尋址(Based Indexed Addressing)EA=BX/BP+SI/DI+COUNTMOV AL,COUNT BXSIMOV DX,BP+DI+COUNT下面,進行這幾種尋址方式的動畫演示下面,進行這幾種尋址方式的動畫演示12立即尋址立即尋址MOV AX, 0102HAXAHAL高地址高地址低地址低地址存儲器存儲器操作碼操作碼MOV AX, 0102H0102B8立即數立即數立即數立即數010213寄存器尋址寄存器尋址MOV AX,AXAHALBXBHBLMOV AX,BXBX121234123414寄存器間接尋址寄存器
7、間接尋址 MOV AX, AX AH AL16921H 操作碼操作碼 高地址高地址 低地址低地址 2000H BXBX9078078BDS 1492H016920H物理地址物理地址 操作數操作數 9078DS=1492H 15變址尋址變址尋址 & 基址尋址基址尋址MOV AX, 存儲器存儲器高地址高地址16927H16926H7890低地址低地址 8B44 操作碼操作碼AX AH AL2000H SIDS 1492H016926H物理地址物理地址 SI+06H操作數操作數 9078060006H0616基址基址-變址尋址變址尋址MOV AX, BXSI+06H1000H BX1000H
8、 SIDS 1492H016926H物理地址物理地址 高地址高地址 9078064116927H 操作碼操作碼 低地址低地址 操作數操作數 90788B0006H06 AH ALAX178086/8088CPU的功能框圖的功能框圖(回顧回顧)AH ALBH BLCH CLDH DLSPBPDISI通通 用用 寄寄 存存 器器AXBXCXDXALU數據總線(數據總線(16位)位)運算寄存器運算寄存器ALU標志寄存器標志寄存器EU 控控制系統(tǒng)制系統(tǒng)執(zhí)行單元執(zhí)行單元EUCSDSSSESIP內部暫存器內部暫存器1 2 3 4 5 6數據總線數據總線8088:8位位8086:16位位總線總線 控控制邏輯
9、制邏輯地址總線地址總線20位位指令隊列指令隊列80888086Q總線總線(8位)位)指令指針指令指針段寄存器段寄存器總線接口總線接口單元單元BIU外部外部總線總線18寄存器(回顧)寄存器(回顧)AHSIALBHBLCHCLDH DLDIBPSPDSESSSCSIPFLAGSAX,累加器累加器AccumulatorBX,基址寄存器基址寄存器BaseCX,計數寄存器計數寄存器CountDX,數據寄存器數據寄存器Data源變址寄存器源變址寄存器Source Index目的變址寄存器目的變址寄存器Destination Index基址指針寄存器基址指針寄存器Base Point堆棧指針寄存器堆棧指針寄
10、存器Stack Point數據段寄存器數據段寄存器Data Segment附加段寄存器附加段寄存器Extra Segment堆棧段寄存器堆棧段寄存器Stack Segment代碼段寄存器代碼段寄存器Code Segment指令指針寄存器指令指針寄存器Instruction Pointer狀態(tài)標志寄存器狀態(tài)標志寄存器數據數據寄存器寄存器變址變址寄存器寄存器指針指針寄存器寄存器通用寄存器通用寄存器段寄存器段寄存器控制寄存器控制寄存器19指令系統(tǒng)的分類指令系統(tǒng)的分類類型類型說明說明舉例舉例數據傳送數據傳送通用通用/ IO 目標地址傳送目標地址傳送/標志傳送標志傳送 MOV、OUT LEA 、PUSH
11、F算術運算算術運算整型數據處理整型數據處理ADD、 MUL 邏輯指令邏輯指令邏輯數據處理邏輯數據處理AND、 SHL串處理串處理字符型數據處理字符型數據處理MOVS、REP控制轉移控制轉移程序流控制處理程序流控制處理JMP、LOOP CALL、 INT處理器控制處理器控制系統(tǒng)控制管理系統(tǒng)控制管理CLS、 HLT20指令中操作數的表示指令中操作數的表示符號符號表示內容表示內容I立即數操作數立即數操作數R通用寄存器操作數通用寄存器操作數8位位 AH、AL、BH、BL、CH、CL、DH、DL16位位 AX,BX,CX,DX,BP,SP,SI,DISR段寄存器段寄存器 CS、DS、SS、ESM或或 存
12、儲器操作數存儲器操作數src源操作數源操作數dst目的操作數目的操作數()()注釋時表示寄存器、存儲器、端口的內容注釋時表示寄存器、存儲器、端口的內容oprd1 oprd2兩操作數兩操作數21書寫指令注意事項書寫指令注意事項l 不區(qū)分字母的大小寫不區(qū)分字母的大小寫下列寫法表示同一條指令:下列寫法表示同一條指令:MOV AX, 1ABDH mov ax, 1abdhl 不添加指令系統(tǒng)沒有的指令不添加指令系統(tǒng)沒有的指令將將 MOV AL , 0 寫成寫成MOVE AL,0 JMP Label 寫成寫成JUMP Labell 注意操作數的范圍注意操作數的范圍對字節(jié)操作指令對字節(jié)操作指令 0 FFH
13、0 255 對字操作指令對字操作指令 0 FFFFH 0 65535 22書寫指令注意事項書寫指令注意事項l 對無操作數指令,不添加操作數對無操作數指令,不添加操作數STC AL l 對單操作數指令,操作數不能是立即數對單操作數指令,操作數不能是立即數IMUL 6 l 對雙操作數指令對雙操作數指令 不能兩個同為存儲器操作數不能兩個同為存儲器操作數MOV DI , SI 目的操作數不能是立即數目的操作數不能是立即數ADD 3 , AL 兩個操作數的類型應相同兩個操作數的類型應相同SUB AX , BL 若若 value 定義為字類型存儲器變量:定義為字類型存儲器變量: MOV CL, value
14、 23書寫指令注意事項書寫指令注意事項l 內存操作數的屬性應明確內存操作數的屬性應明確MOV BX ,0MOV byte ptr BX , 0MOV word ptr BX , 0MOV BX , ALMOV BX , AX24書寫指令注意事項書寫指令注意事項l A、B、C、D、E、F開頭的十六進制數前面加開頭的十六進制數前面加0,與與H結尾的標識符區(qū)別結尾的標識符區(qū)別如如 寄存器名:寄存器名: AH、BH、CH、 DH 變量名變量名 : abcdH 等等例例:mov AL, 0AHmov AL, AH mov BX, 0abcdH上面,上面,0AH是立即數,是立即數,AH是寄存器。是寄存器。
15、25數據傳送數據傳送地址總線地址總線 AB存存儲儲器器I/O接接口口輸輸入入設設備備I/O接接口口數據總線數據總線 DB控制總線控制總線 CB輸輸出出設設備備CPU寄存器,存儲器,寄存器,存儲器,I/O端口端口26數據傳送數據傳送按傳送內容,可分為四類:按傳送內容,可分為四類:1.通用數據傳送通用數據傳送 MOV PUSH POP XCHG2.累加器專用傳送累加器專用傳送 IN OUT XLAT 3.地址傳送地址傳送 LEA LDS LESl標志傳送標志傳送 PUSHF POPF LAHF SAHF 特點:特點:1. 除除POPF、SAHF外,其他傳送指令對標志位均無影響外,其他傳送指令對標志
16、位均無影響2. 唯一允許以唯一允許以段寄存器段寄存器做操作數的指令種類;做操作數的指令種類; 且只有且只有MOV、PUSH、POP這三條允許這三條允許27通用數據傳送通用數據傳送(GP transfer)MOV BYTE/WORD數據傳送;可以使用各種尋址方式;數據傳送;可以使用各種尋址方式; MOV DST,SRC 執(zhí)行:執(zhí)行:(dst) (src) MOV AX,80A0H ; (BX,SI,3000)允許:允許:RR/M,I(立即數)(立即數)R/M;R/MSR(段寄存器)(段寄存器)禁止:禁止:MM;ISR;SRSR28舉例舉例 R/M/SR R 通用寄存器通用寄存器/存儲器存儲器/段
17、寄存器段寄存器通用寄存器通用寄存器MOV AL , BL MOV BX , AL MOV DS , AX R/SR M 通用寄存器通用寄存器/段寄存器段寄存器 存儲器存儲器MOV AL , BX MOV DS , BX+SI R/M SR 通用寄存器通用寄存器/存儲器存儲器 段寄存器段寄存器MOV BX , CS MOV BX , DS R/M I 通用寄存器通用寄存器/存儲器存儲器 立即數立即數MOV Al , 9MOV BX , OFFSET bufferMOV BYTE PTR value , 0 MOV WORD PTR BX , 129例題例題l 例:編程將例:編程將CL寄存器的內容
18、傳送到寄存器的內容傳送到200:100H單元中單元中 MOV AX, 200H MOV DS , AX ; (DS) = 200H MOV 100H , CL ;(02100H) = (CL)編程編程1: MOV AX, 200H MOV DS , AX ; (DS) = 200H MOV DI , 100H ; (DI) = 100H MOV DI , CL ;(02100H) = (CL)編程編程2: MOV 200:100H , CL30通用數據傳送通用數據傳送(GP transfer)堆棧操作指令堆棧操作指令PUSH (Push word onto stack)POP(Pop word
19、 off stack)l 什么是堆棧,為什么需要堆棧什么是堆棧,為什么需要堆棧?堆棧是按照堆棧是按照先進后出先進后出原則組織的一段內存區(qū)域原則組織的一段內存區(qū)域, 通常用于存放一些重要數據通常用于存放一些重要數據,如:如:程序的地址、或是需要恢復的數據程序的地址、或是需要恢復的數據。l 為方便數據的存放和恢復,為方便數據的存放和恢復, 設置專門的指針,指向堆棧中要操作的單元。設置專門的指針,指向堆棧中要操作的單元。 段值由段值由 SS 給出,偏移地址由給出,偏移地址由 SP 給出給出 SS 堆棧段寄存器堆棧段寄存器 (stack segment) SP 堆棧指針寄存器堆棧指針寄存器 (stac
20、k point)SS:SP 31通用數據傳送通用數據傳送(GP transfer)PUSH SRC (SP)(SP)- 2;(SP)+1,(SP)(SRC);POP DST (DST)(SP)+1,(SP); (SP)(SP)+2;SRC/DST 可以為可以為 R/M/SR (但(但DST不可為不可為CS)SP只能為偶數只能為偶數!l 用途用途 臨時保存數據(臨時保存數據(INT斷點斷點/CALL返回地址返回地址/數據)數據)傳遞信息(函數傳遞信息(函數/子程序)子程序)32通用數據傳送通用數據傳送(GP transfer)特點與規(guī)則特點與規(guī)則l 操作操作 按字(按字(2字節(jié))進行字節(jié))進行
21、l PUSH指令指令 從高地址從高地址低地址增長低地址增長, POP相反相反l 操作規(guī)則操作規(guī)則 FILO (First-In-Last-Out)l SP 為當前棧頂指針(為當前棧頂指針(EA)使用過程使用過程 / 關鍵關鍵1. 堆棧平衡,防止溢出堆棧平衡,防止溢出2. PUSH、POP配對使用配對使用33示例示例 - PUSH AXl 存放存放CPU寄存器或存儲器中暫時不使用的數據寄存器或存儲器中暫時不使用的數據,使用數據使用數據時將其彈出:時將其彈出: PUSH AX; 將將(AX)入棧入棧(AX)(AX) 低地址低地址. 高地址高地址.11112222(SP)-2(SP)-2(SP)-1
22、(SP)-1(SP)(SP)堆堆棧棧段段PUSH AXPUSH AX前前 低地址低地址.22H22H11H11H 高地址高地址.11H11H22H22H(SP)(SP)(SP)+1(SP)+1(SP)+2(SP)+2堆堆棧棧段段PUSH AXPUSH AX后后34示例示例 PUSH AX若執(zhí)行前:若執(zhí)行前: (SS)= 2000H(SP)= 1002H(SS:SP)= 2010H (AX)= 1234H10低低高高20地址地址SS:SP2000:1002指令執(zhí)行前指令執(zhí)行前則執(zhí)行則執(zhí)行PUSH AX后:后: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H(AX)= 1
23、234H123410低低高高20地址地址指令執(zhí)行后指令執(zhí)行后不變不變 減減2 2 變變不變不變 SS:SP2000:100035示例示例 POP BXl 使用數據時將其彈出:使用數據時將其彈出:POP BX 低地址低地址.22H22H11H11H 高地址高地址.33H33H44H44HBXBX(SP)(SP)(SP)+1(SP)+1(SP)+2(SP)+2堆堆棧棧段段POP BXPOP BX前前 低地址低地址.22H22H11H11H 高地址高地址.11H11H22H22HBXBX(SP)-2(SP)-2(SP)-1(SP)-1(SP)(SP)堆堆棧棧段段POP BXPOP BX后后36示例示
24、例 POP BX若執(zhí)行前:若執(zhí)行前: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H (BX)= 5678H則執(zhí)行則執(zhí)行POP BX后:后: (SS)= 2000H(SP)= 1002H (SS:SP)= 2010H (BX)= 1234H 不變不變 加加2 變變 變變 123410低低高高20地址地址指令執(zhí)行前指令執(zhí)行前SS:SP2000:100010低低高高20地址地址SS:SP2000:1002指令執(zhí)行后指令執(zhí)行后(BX)= 5678H1234(BX)= 1234H37q 調用子程序(或過程)或發(fā)生中斷時要保護斷點的地址,調用子程序(或過程)或發(fā)生中斷時要保護斷
25、點的地址, 子程序或中斷返回時恢復斷點。子程序或中斷返回時恢復斷點。子程序嵌套子程序嵌套斷點地址壓入和彈出情況斷點地址壓入和彈出情況主主程程序序子子程程序序1 1子子程程序序2 2斷點1斷點1斷點2斷點2彈出彈出斷點2斷點2彈出彈出斷點1斷點1程序嵌套調用程序嵌套調用 低地址低地址.斷點斷點2(L)2(L)斷點斷點2(H)2(H)斷點斷點1(L)1(L)斷點斷點1(H)1(H) 高地址高地址.(SP)(SP)先先壓壓入入后后壓壓入入先先彈彈出出后后彈彈出出堆堆棧棧段段38通用數據傳送通用數據傳送(GP transfer)XCHG dest,src ; (dest) (src)交換操作數。可進行
26、字或字節(jié)操作交換操作數。可進行字或字節(jié)操作,不影響標志位。不影響標志位。 支持支持RR/M; 禁止禁止MM例例:XCHG AL, AH XCHG AX, BX l 例例 XCHG AX, BX 字操作字操作 執(zhí)行前(執(zhí)行前(AX)= 1122H , (BX)= 3344H 執(zhí)行后(執(zhí)行后(AX)= 3344H , (BX)= 1122H l 例例 XCHG AH, BL 字節(jié)操作字節(jié)操作 執(zhí)行前(執(zhí)行前(AX)= 1122H , (BX)= 3344H 執(zhí)行后(執(zhí)行后(AX)= 4422H , (BX)= 3311H39通用數據傳送通用數據傳送(GP transfer)XLAT字節(jié)轉換指令(換
27、碼指令)字節(jié)轉換指令(換碼指令)該指令不影響標志位該指令不影響標志位l 語句格式:語句格式:XLAT src_tablel 功能:將(功能:將(BX)為首址()為首址(AL)為位移量的字節(jié)存儲單元)為位移量的字節(jié)存儲單元中的數據送中的數據送AL寄存器。即(寄存器。即(BX+AL)AL。運行前運行前BX須賦值,例須賦值,例:MOV BX, OFFSET src_table ; (BX) 表首址表首址MOV AL, SEG src_table ;(AL) 序號序號XLAT src_table ;查表轉換查表轉換 (詳見書詳見書P69 例例2.4)40I/O端口端口(Port)傳送指令傳送指令輸入輸
28、出指令共兩種:輸入輸出指令共兩種:IN (Input byte or word)OUT (Output byte or word) 輸入指令用于輸入指令用于CPU從外設端口接受數據,從外設端口接受數據, 輸出指令用于輸出指令用于CPU向外設端口發(fā)送數據。向外設端口發(fā)送數據。l 無論接受還是發(fā)送數據,必須通過累加器無論接受還是發(fā)送數據,必須通過累加器AX(字字)或或AL(字節(jié)字節(jié))使用使用AX,則輸入,則輸入(輸出輸出)字字;使用;使用AL,則輸入,則輸入(輸出輸出)字節(jié)字節(jié)。l 輸入、輸出指令不影響標志位。輸入、輸出指令不影響標志位。l 當端口地址為當端口地址為16位二進制數時,外部設備最多有
29、位二進制數時,外部設備最多有65536個個I/O端口,由端口,由A0A15譯碼形成。譯碼形成。41I/O端口端口(Port)傳送指令傳送指令l 每個外設要占幾個端口:數據口,狀態(tài)口和控制口每個外設要占幾個端口:數據口,狀態(tài)口和控制口;信息交換要通過端口。信息交換要通過端口。端口是端口是CPU和外設的橋梁。和外設的橋梁。CPUIO接口接口I/O設備設備譯譯碼碼數據端口數據端口狀態(tài)端口狀態(tài)端口控制端口控制端口總線總線42I/O端口端口(Port)傳送指令傳送指令訪問方式訪問方式l 直接:直接:端口號中前端口號中前256個端口(個端口(0FFH),可以直接寫在指令中,端),可以直接寫在指令中,端口號代替指令中的口號代替指令中的PORTINAL/AX, portNo;8位立即數位立即數portNo:025
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 助產師復習試題含答案
- 2025年度智能電網規(guī)劃設計合同
- 醫(yī)保協(xié)議合同范本
- 農村硅藻泥采購合同范本
- 儀器 借用合同范本
- cng纏繞氣瓶合同范本
- 2024年半導體分立器件項目評估報告
- 北京辦公裝修合同范本
- 樓地面找平工程合同范本
- 會議室使用合同范本
- 杭州市淳安縣國有企業(yè)招聘筆試真題2024
- 2024政府采購評審專家考試真題庫及答案
- 2025年道路貨運駕駛員從業(yè)資格證模擬考試題
- 數學-安徽省皖南八校2025屆高三上學期12月第二次大聯考試題和答案
- 退市新規(guī)解讀-上海證券交易所、大同證券
- 融資報告范文模板
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風能發(fā)電系統(tǒng)風力發(fā)電場監(jiān)控系統(tǒng)通信第71部分:配置描述語言
- 腦梗死的護理查房
- 2025高考數學專項復習:概率與統(tǒng)計的綜合應用(十八大題型)含答案
- 2024-2030年中國紫蘇市場深度局勢分析及未來5發(fā)展趨勢報告
評論
0/150
提交評論