




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章 微型計算機指令系統(tǒng)指令-微機算術(shù)、邏輯和控制功能的實現(xiàn)基礎(chǔ)重點:*1、目標(biāo)地址傳送 *尋址方式 2、標(biāo)志傳送 3、轉(zhuǎn)移控制(轉(zhuǎn)移指令、過程調(diào)用、中斷)1RISC/CISC-兩種指令體系計算機精簡指令計算機 (RISCReduced Instruction Set Computer) PowerPC, Alpha,ARM 指令簡單,復(fù)雜功能代碼,效率高 特點:指令種類很少,組合使用復(fù)雜指令計算機 (CISCComplex Instruction Set Computer) 變長編碼, 種類多,代碼利用率低例: 80X86/Pentium 變長字節(jié) 1-16字節(jié),向下兼容, 8086指令向
2、下兼容8080/8085指令,共92種基本指令執(zhí)行程序指令序列2指令與指令系統(tǒng)指令(Instructions)指令集或指令系統(tǒng) (Instruction Set) 機器碼(指令) 匯編語言/助記符(Mnemonic Symbol)F8H=CLC指令 F5H=CMC F9H=STC05H 00H 10H ADD AX,1000H B9H 25H 00H MOV CX,0025H01H C8H ADD AX, CX指示CPU執(zhí)行某種規(guī)定操作的命令某一CPU所能執(zhí)行的全部指令的集合 定義了程序員能使硬件完成的基本操作(CPU基本性能)。指令 的表示3 程序設(shè)計編輯器(Editor) 高級語言程序(與
3、機器無關(guān))編譯器(Compiler) 匯編語言(與機器有關(guān))匯編器(Assembler) 待裝配的BIN指令代碼鏈接器(Linker) 可執(zhí)行BIN指令代碼(指令序列) 指令(代碼)的獲取機器匯編(P366指令表) 人工匯編IDE(集成開發(fā)環(huán)境)命令行(CMD/腳本語言)動態(tài)調(diào)試器(DEBUG)4匯編語言指令與構(gòu)成機器指令:指令的二進制代碼形式。如:050020H MOV AX,2000H匯編指令:助記符形式的指令如:MOV BX,DX; ADD AX,2000H語法結(jié)構(gòu)-動作對象指令=指令操作碼+操作數(shù)指令操作碼動作功能:做什么?MPU設(shè)計者定義指令操作數(shù)源/目標(biāo):針對什么操作?程序員決定指
4、令格式:指令中對操作碼、操作數(shù)的編碼方式58086/8088指令格式與編碼8086指令的書寫格式 教材P366機器碼 操作碼 操作數(shù)1, 操作數(shù)2(操作碼:必備;操作數(shù):0,1或2個,8位或16位)8086/8088采用變長編碼格式,屬于CISC操作碼 指定操作類型(操作數(shù)類型、寄存器、操作數(shù)傳送方向)典型操作助記符MOV,ADD,SUB,CMP,JMP,CALL,INTr/m=寄存器/存儲器; Disp=偏移量 前綴:總線鎖定lock/重復(fù)rep, 段超越Prefix14字節(jié)OP Code12字節(jié) Mode r/m 1字節(jié) disp 0,1,2,4字段1(低)字段2 字段3 字段4 字段5
5、(高) data 0,1,2,468086/8088指令操作數(shù)(Operands)操 源操作數(shù): 值或存在何處 (Oprd1,Oprd2) 作 目標(biāo)操作數(shù):結(jié)果送往何處; (Oprd1) 數(shù) 或轉(zhuǎn)移控制指令JMP/CALL/INT目標(biāo)地址8086指令操作數(shù)的個數(shù)情況無操作數(shù)指令,例:空操作NOP,等待指令 WAIT 系統(tǒng)操作指令:STD,CLD,STC,CLC,CLI,STI (目標(biāo)?)單操作數(shù)指令,例:加1指令 INC AX雙操作數(shù)指令,例:減法指令 SUB AL,BL源操作數(shù):AL,BL; 目的操作數(shù):前者(AL)默認(rèn)操作數(shù): DIV DL 源:AX,目標(biāo):DL78086/8088指令操作
6、數(shù)(Operands)操作數(shù):直接/間接 幾種存放地點:立即數(shù):操作數(shù)直接包含在指令當(dāng)中(存放在代碼段) 例:MOV AL,50H - “立即數(shù)操作數(shù)”寄存器操作數(shù):操作數(shù)存放在CPU的寄存器中 例:INC AL - “寄存器操作數(shù)”內(nèi)存操作數(shù):操作數(shù)存放在內(nèi)存單元中 例:MOV AL,2000H - “存儲器操作數(shù)” I/O操作數(shù):操作數(shù)來自I/O端口 例:IN AL,28H確定操作數(shù)(操作數(shù)地址)的方式尋址方式88086/8088操作數(shù)尋址方式分類 非存儲器尋址 存儲器尋址 立即數(shù)尋址 寄存器尋址 隱含(默認(rèn))尋址 I/O尋址 直接尋址 間接尋址 基址尋址 變址尋址 基址+變址尋址9指令尋
7、址方式(一)1. 立即尋址(Immediate Addressing) MOV AL,100; MOV CX,2000H;( MOV DS,200H )2.寄存器尋址(Register Addressing) MOV DS,AX; MOVCX,BX;MOVSI,DX3.直接尋址(Direct Addressing) MOV AX,2000H ; MOV AL,BUFFER(內(nèi)存);4.寄存器間址 (Register Indirect Addressing)MOV AX,SI; MOV BL,DI; (寄存器間接尋址)MOV CH,BX; MOV DX,BP問 題物理地址=?有效地址EA=? 默
8、認(rèn)段寄存器=??10指令尋址方式(一)注意:寄存器間接尋址可用的寄存器有4個 :SI;DI;BX;BP。選擇SI;DI;BX作為間址寄存器時,默認(rèn)的段基地址是DS選擇BP作為間址寄存器時,默認(rèn)的段基地址是SS。11尋址:物理地址獲取存儲器訪問:單元/變量物理地址PA邏輯地址: 段基地址SA+偏移地址EA(Effective Addr)兩部分 書面表示 SA:EA 1000:2000H, DS:2000H有效地址EA=偏移(Offset)地址(直接尋址/寄存器間址表示)物理地址PA=SA*16+EA存放代碼、數(shù)據(jù)2000:0100 A1 00 80 MOV AX,8000H ;2000:0103
9、 05 34 12 ADD AX,1234H2000:0106 A3 00 80 MOV 8000H,AX2000:0109 BB 00 80 MOV BX, 8000H; 2000:010C 8B 07 MOV AX,BX ;2000:010E 2E ;段超越前綴2000:010F FE 06 00 20 INC BYTE PTR CS:2000H 12存儲器數(shù)據(jù)訪問8F00:200A FE 06 50 40 INC BYTE PTR4050H;B8F00:200E FF 06 50 40 INC WORD PTR4050H;W8F00:2000 A0 50 40 MOV AL,4050H8
10、F00:2003 86 2A 51 40 MOV AH,4051H8F00:2007 A1 50 40 MOV AX,4050H8F00:200A ? INC 4050H 8F00:2012 BB 50 40 MOV BX,4050H ; 8F00:2015 FE 07 INC BYTE PTRBX8F00:2017 FF 07 INC WORD PTRBX8F00:2019 80 07 01 ADD BYTE PTRBX,18F00:201C 83 07 01 ADD WORD PTRBX,18F00:201F 81 07 04 03 ADD WORD PTRBX,0304H字節(jié)B還是字W?
11、13段默認(rèn)與段超越8F00:2000 8A 07 MOV AL,BX8F00:2002 8A 67 01 MOV AH,BX+18F00:2005 8B 07 MOV AX,BX8F00:2007 2E 8B 07 MOV AX,CS:BX8F00:200A 8B 46 00 MOV AX,BP8F00:200D 26 8B 46 00 MOV AX,ES:BP段基地址段寄存器內(nèi)容 ; 默認(rèn)段=C/D/E/SS P51 表2.3默認(rèn)段寄存器 一般數(shù)據(jù),直接尋址、間接尋址-DS 代碼 始終CS(:IP) BP,SPSS 特殊指令 例(串操作) DI ES 段超越 非默認(rèn)段寄存器,需說明(指令加段
12、超越前綴)14各種尋址方式(二)5. 變址尋址(Indexed Addressing):變址寄存器加上偏移量得到操作數(shù)的有效地址 源變值R:SI/目標(biāo)變址R:DI EA=SI/DI+位移量 MOV AX,SI+6;MOV DL,TABLESI 常用于存取表格或一維數(shù)組中的元素 如P47: 某數(shù)據(jù)表的首址為TABLE,要讀取表中第10個數(shù)據(jù)并存到AL寄存器:MOV SI, 09 MOV AL, SI+TABLE幾種表示方法:MOV AL, TABLESI MOV AL, SI+TABLE MOV AL, SI+TABLE156. 基址尋址(Based Addressing):基址寄存器加上偏移量
13、得到操作數(shù)的有效地址 BX/BP +位移量 MOV AL,BX+100; MOV DX,TABLEBP注意:使用BX實現(xiàn)基址尋址時,段地址在DS中 使用BP實現(xiàn)基址尋址時,段地址在SS中各種尋址方式(二)167. 基址-變址尋址(Based Indexed Addressing):規(guī)定一個基址寄存器(BP和BX之一)和一個變址寄存器(SI和DI之一),同時給出一個8位或16位的偏移量,將三者的內(nèi)容相加得到操作數(shù)的有效地址 EA=BX/BP+SI/DI+COUNT (偏移量) MOV AL,BXSICOUNT;MOV AL,BX+SI+COUNT MOV DX, COUNTBP+DI ;二維數(shù)組
14、注意:不允許將兩個基址寄存器或兩個變址寄存器結(jié)合在一起尋址。如:MOV AX, COUNTBXBP MOV AX,COUNTSIDI 各種尋址方式(二)17存儲器操作數(shù)問題8086MPU存儲器尋址 直接尋址 寄存器間(接尋)址、變址尋址、基址尋址、基址-變址尋址=存儲器操作數(shù) 訪問速度 :直接尋址寄存器間址 存儲方式 高位結(jié)束(Big-Endian ) 數(shù)據(jù)類型 1/2/4字節(jié) (BYTE/WORD/DOUBLE WORD) 80H,1234H, 20123456H 指針 NEAR/FAR/SHORT JMP 2000H CALL 2000H:4567H JMP NEAR PTRBX18特例:
15、隱含/默認(rèn)操作數(shù)操作數(shù)并不直接出現(xiàn)在指令中,而是由操作碼隱含地指定為某一默認(rèn)固定項(P50表2.2)例: PUSH AX ;目操作數(shù)隱含為棧頂字單元 POP ES ;源操作數(shù)隱含為棧頂字單元 LAHF ;源操作數(shù)隱含為標(biāo)志寄存器低字節(jié) SAHF;源操作數(shù)隱含為寄存器AH DIV CL; 隱含源操作數(shù)AX, 目標(biāo)操作數(shù)AX AX/CLAL(商),AH(余數(shù)) DIV CX; 隱含源操作數(shù)DX:AX, 目標(biāo)DX, AX(DX.AX)/CX AX(商),DX(余數(shù)) 198086/8088指令系統(tǒng)(六大類)數(shù)據(jù)傳送 通用/ 輸入輸出 / 目標(biāo)地址傳送/標(biāo)志傳送 算術(shù)運算 整型數(shù)據(jù)處理邏輯運算與位操作
16、 邏輯數(shù)據(jù)處理串操作 字符型數(shù)據(jù)處理轉(zhuǎn)移控制 程序流控制處理(條件/無條件)MPU控制 系統(tǒng)控制管理20數(shù)據(jù)傳送指令-通用傳送1MOV BYTE/WORD傳送;各尋址方式; MOV DST,SRC (LD) MOV AX,80A0H; MOV DS, AX MOV BX,SI100; MOV CS:2000H,SI MOV BP3000,AL MOV BYTE PTR BX200H, 200 ; MOV WORD PTR2000H,40H RR/M,I(直接數(shù))R/M;R/MSR(段寄存器)禁止:MM;ISR;SRSR21通用傳送指令-堆棧 (STACK)用途 臨時保存數(shù)據(jù)(INT斷點/CAL
17、L返回地址/數(shù)據(jù))傳遞信息(函數(shù)/子程序)特點與規(guī)則操作 按字(2字節(jié))進行 P55PUSH指令 從高地址低地址增長, POP相反操作規(guī)則 FILO (First-In-Last-Out)SP 為當(dāng)前棧頂指針(EA)(末指針)SS段寄存器指向該段 棧底 (堆棧的最大地址)SS:MAXSP堆棧:內(nèi)存特殊區(qū)域22數(shù)據(jù)傳送指令-通用傳送2堆棧傳送:操作數(shù)類型必須為16位,若為寄存器必為16位寄存器PUSH SRC; 目標(biāo)操作數(shù)隱含為棧頂單元, SP-2 (SP)(SP)-2;(SP)+1:(SP)(SRC) 例: PUSH AX; PUSH BX100 PUSH 2000H POP DST;源操作數(shù)
18、隱含為棧頂單元, SP+2(DST)(SP)+1:(SP);(SP)(SP)+2; 例: POP AX; POP DS; POP CS:2000H POP BX100; POP BPSI1000H SRC/DST R/M/SR (但DST不可為CS?。㏒P偶數(shù)! PUSH CX POP CS 23入棧操作示例設(shè)有SS=8000H,SP=2000H,AX=0543HSP=2000H 82000HStackPUSH AXSP=SP1 81FFFHSP=SP1 81FFEHSP1FFEH43HAL05HAH24出棧操作示例設(shè)有SS=8000H,SP=01FEHSP=SP+1 80200HPOP AX
19、SP=SP+1 801FFHSP=01FEH 801FEHSTACK11H22H出棧后:SP0200HAX1122HAHAL不變,僅SP+2堆棧內(nèi)容不變?25通用傳送指令-堆棧應(yīng)用(一)使用過程/關(guān)鍵堆棧平衡 防止溢出 8086:堆棧段SS:SP用途:保護/傳遞數(shù)據(jù) PUSH/POP配對使用/CALL-RET/INT-IRET)例:CALL (嵌套)-INT(嵌套) 應(yīng)用程序段PUSH AX;PUSH BXPUSH CX;. ;可能改變AX,BX,CXPOPCX ;恢復(fù)AX,BX,CX;POP BXPOP AX.:RET26數(shù)據(jù)傳送-通用傳送指令(二)3XCHG dest,src ;(dest
20、) (src) RR/M;禁止MM 同時段寄存器的內(nèi)容不能參加交換 例 XCHG AL,AH; XCHG X1SI,AX4XLAT src_table;可根據(jù)表中元素的序號查出相 應(yīng)元素的內(nèi)容(AL)(BX)+(AL)查表轉(zhuǎn)換; 預(yù)先將表的首地址(偏移地址)傳送到BX寄存器,元素的序號送AL.表中第一個元素的序號為0,然后是1,2,3,27可段超越 例 ES:XLAT,or XLAT ES:src_table運行前BX須賦值,例: LEA BX,src_table; MOV AX,SEG src_table; MOV DS,AX; MOV AL,N; XLAT;BX+NAL數(shù)據(jù)傳送-通用傳送指
21、令(二)28數(shù)據(jù)傳送-I/O端口(Port)傳送指令I(lǐng)N AL/AX, portNo; 8位立即數(shù)portNo:0255OUT portNo,AL/AX;INAL/AX,DX;端口地址為16位二進制數(shù)DX:064K (0FFFFH)OUT DX,AL/AX; 字IN/OUT L,H例 IN AL, 40H OUT 40H,AL MOV DX,3F8H IN AL, DX ;PC讀COM1 接收 OUT DX, AL ; 發(fā)送29數(shù)據(jù)傳送-地址對象傳送指令LEA reg16, mem16 ;取有效地址,近地址指針(段內(nèi))reg16 源操作數(shù)必須是一個存儲器,目標(biāo)寄存器必須是一個16位通用寄存器,源操作數(shù)的有效地址即16位偏移地址傳送到目標(biāo)寄存器。 比較MOV/ LEA AX,BUFFER,=offset xxxx 例 LEA SI,BX300H當(dāng)BX
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人挖機租賃合同范本
- 借款合同范例房產(chǎn)
- 倉儲合同范本標(biāo)
- 三基護理考試模擬題+答案
- 電子技術(shù)及實訓(xùn)練習(xí)題+答案
- 上半年房地產(chǎn)銷售工作總結(jié)
- 中醫(yī)康復(fù)治療技術(shù)試題庫+參考答案
- 制作書本合同范本
- 中醫(yī)診所勞務(wù)合同范本
- 一本好書讓我改變自己超越自己演講稿
- 民事訴訟法學(xué)整套ppt課件完整版教學(xué)教程最全電子講義(最新)
- 材料化學(xué)合成與制備技術(shù)
- 金屬工藝學(xué)(鑄造)課件
- DB23∕T 343-2003 國有林區(qū)更新造林技術(shù)規(guī)程
- 醫(yī)療廢物管理組織機構(gòu)架構(gòu)圖
- cjj/t135-2009《透水水泥混凝土路面技術(shù)規(guī)程》
- 短時耐受電流
- 社保人事專員績效考核表
- 上海世博會對上海城市競爭力影響的評估模型
- 河南書法家協(xié)會入會申請表
- 鄉(xiāng)村獸醫(yī)登記申請表(共1頁)
評論
0/150
提交評論