




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第二章指令系統(tǒng)本章主要內(nèi)容 尋址方式 8086/8088指令系統(tǒng)學(xué)習(xí)網(wǎng)站: 指令與指令系統(tǒng)指令:控制計算機完成指定操作的命令匯編指令:助記符形式的指令 例如: ADD AX, 1000H機器指令:指令的二進制代碼形式 例如: 05 00 10指令系統(tǒng):CPU所有指令及其使用規(guī)則的集合指令的基本構(gòu)成操作碼操作數(shù)說明要執(zhí)行的是什么操作操作的對象(可以有0個、1個或2個)示例:ADD AX, 1000H對應(yīng)機器指令:05 00 1005為操作碼,表示要執(zhí)行“與累加器相加”操作,00 10為操作數(shù),是低位開始存放的操作數(shù)1000H示例借助系統(tǒng)自帶的debug工具,明確機器碼的概念尋址方式指令由操作碼
2、和操作數(shù)構(gòu)成。操作碼在指令中已經(jīng)顯式給出;如何尋找操作數(shù)?尋址方式 尋址方式是CPU指令中規(guī)定的尋找操作數(shù)所在地址的方式。邏輯地址(回顧)程序設(shè)計時,使用的是邏輯地址。邏輯地址由“段基址”和“偏移量”構(gòu)成(均為16位)。表示方法:段基址:偏移量 “段基址”由段寄存器CS、DS、SS和ES提供 “偏移量”由BX、BP、IP、SP、SI、DI或根據(jù)尋址方式計算出的有效地址EA(Effective Address)提供由邏輯地址獲得物理地址的計算公式(回顧) 物理地址段基址16偏移量15 03 019 015 00000段基址偏移量物理地址邏輯地址物理地址尋址方式的種類1、立即尋址(Immediat
3、e 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,BX; MOV DX,BP尋址方式的種類5、變址尋址(Indexed Addressing)SI、DI索引源變址寄存器SI 目標(biāo)變址寄存器DI EA=SI/
4、DI+位移量 MOV AX,SI+6;MOV DL,TABLESI6、基址尋址(Based Addressing) BX、BPMOV AL,BX+100;MOV DX,TABLEBP 基址尋址與變址尋址類似,不同之處在于: 變址尋址中的寄存器是 SI、DI 基址尋址中的寄存器是BX、BP尋址方式的種類7、基址-變址尋址(Based Indexed Addressing)EA=BX/BP+SI/DI+COUNTMOV AL,COUNT BXSIMOV DX,BP+DI+COUNT下面,進行這幾種尋址方式的動畫演示立即尋址MOV AX,0102HAXAHAL高地址低地址存儲器操作碼MOV AX,0
5、102H0102B8立即數(shù)立即數(shù)0102寄存器尋址MOV AX,AXAHALBXBHBLMOV AX,BXBX1212341234寄存器間接尋址 MOV AX, AX AH AL16921H 操作碼 高地址 低地址 2000HBXBX9078078BDS 1492H016920H物理地址 操作數(shù) 9078DS=1492H 變址尋址 & 基址尋址MOV AX, 存儲器高地址16927H16926H7890低地址 8B44 操作碼AX AH AL2000HSIDS 1492H016926H物理地址 SI+06H操作數(shù) 9078060006H06基址-變址尋址MOV AX, BXSI+06H1000
6、HBX1000HSIDS 1492H016926H物理地址 高地址 9078064116927H 操作碼 低地址 操作數(shù) 90788B0006H06 AH ALAX8086/8088CPU的功能框圖(回顧)AH ALBH BLCH CLDH DLSPBPDISI通 用 寄 存 器AXBXCXDXALU數(shù)據(jù)總線(16位)運算寄存器ALU標(biāo)志寄存器EU 控制系統(tǒng)執(zhí)行單元EUCSDSSSESIP內(nèi)部暫存器1 2 3 4 5 6數(shù)據(jù)總線8088:8位8086:16位總線 控制邏輯地址總線20位指令隊列80888086Q總線(8位)指令指針段寄存器總線接口單元BIU外部總線寄存器(回顧)AHSIALBH
7、BLCHCLDHDLDIBPSPDSESSSCSIPPSWAX,累加器AccumulatorBX,基數(shù)寄存器BaseCX,計數(shù)寄存器CountDX,數(shù)據(jù)寄存器Data源變址寄存器Source Index目的變址寄存器Destination Index基址指針寄存器Base Point堆棧指針寄存器Stack Point數(shù)據(jù)段寄存器Data Segment附加段寄存器Extra Segment堆棧段寄存器Stack Segment代碼段寄存器Code Segment指令指針寄存器Instruction Pointer狀態(tài)標(biāo)志寄存器Processor Status Word數(shù)據(jù)寄存器變址寄存器指針
8、寄存器通用寄存器段寄存器控制寄存器指令系統(tǒng)的分類類型說明舉例數(shù)據(jù)傳送通用/ IO 目標(biāo)地址傳送/標(biāo)志傳送 MOV、OUT LEA 、PUSHF算術(shù)運算整型數(shù)據(jù)處理ADD、 MUL 邏輯指令邏輯數(shù)據(jù)處理AND、 SHL串處理字符型數(shù)據(jù)處理MOVS、REP控制轉(zhuǎn)移程序流控制處理JMP、LOOP CALL、 INT處理器控制系統(tǒng)控制管理CLS、 HLT指令中操作數(shù)的表示符號表示內(nèi)容I立即數(shù)操作數(shù)R通用寄存器操作數(shù)8位 AH、AL、BH、BL、CH、CL、DH、DL16位 AX,BX,CX,DX,BP,SP,SI,DISR段寄存器 CS、DS、SS、ESM或 存儲器操作數(shù)src源操作數(shù)dst目的操作數(shù)
9、()注釋時表示寄存器、存儲器、端口的內(nèi)容oprd1 oprd2兩操作數(shù)書寫指令注意事項不區(qū)分字母的大小寫下列寫法表示同一條指令:MOV AX, 1ABDH mov ax, 1abdh不添加指令系統(tǒng)沒有的指令將 MOV AL , 0 寫成MOVE AL,0 JMP Label 寫成JUMP Label注意操作數(shù)的范圍對字節(jié)操作指令 0 FFH 0 255 對字操作指令 0 FFFFH 0 65535 書寫指令注意事項對無操作數(shù)指令,不添加操作數(shù)STC AL 對單操作數(shù)指令,操作數(shù)不能是立即數(shù)IMUL 6 對雙操作數(shù)指令 不能兩個同為存儲器操作數(shù)MOV DI , SI 目的操作數(shù)不能是立即數(shù)ADD
10、 3 , AL 兩個操作數(shù)的類型應(yīng)相同SUB AX , BL 若 value 定義為字類型存儲器變量: MOV CL, value 書寫指令注意事項 內(nèi)存操作數(shù)的屬性應(yīng)明確MOV BX ,0MOV byte ptr BX , 0MOV word ptr BX , 0MOV BX , ALMOV BX , AX書寫指令注意事項 A、B、C、D、E、F開頭的十六進制數(shù)前面加0,與H結(jié)尾的標(biāo)識符區(qū)別如 寄存器名: AH、BH、CH、DH 變量名 : abcdH 等例:mov AL, 0AHmov AL, AH mov BX, 0abcdH上面,0AH是立即數(shù),AH是寄存器。數(shù)據(jù)傳送地址總線 AB存儲
11、器I/O接口輸入設(shè)備I/O接口數(shù)據(jù)總線 DB控制總線 CB輸出設(shè)備CPU寄存器,存儲器,I/O端口數(shù)據(jù)傳送按傳送內(nèi)容,可分為四類:1.通用數(shù)據(jù)傳送 MOV PUSH POP XCHG2.累加器專用傳送 IN OUT XLAT 3.地址傳送 LEA LDS LES標(biāo)志傳送 PUSHF POPF LAHF SAHF 特點:1. 除POPF、SAHF外,其他傳送指令對標(biāo)志位均無影響2. 唯一允許以段寄存器做操作數(shù)的指令種類; 且只有MOV、PUSH、POP這三條允許通用數(shù)據(jù)傳送(GP transfer)MOV BYTE/WORD數(shù)據(jù)傳送;可以使用各種尋址方式; MOV DST,SRC 執(zhí)行:(dst
12、) (src) MOV AX,80A0H ; (BX,SI,3000)允許:RR/M,I(直接數(shù))R/M;R/MSR(段寄存器)禁止:MM;ISR;SRSR舉例 R/M/SR R 通用寄存器/存儲器/段寄存器通用寄存器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 通用寄存器/存儲器 立即數(shù)MOV Al , 9MOV BX , OFFSET bufferMOV BYTE PT
13、R value , 0 MOV WORD PTR BX , 1例題例:編程將CL寄存器的內(nèi)容傳送到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 , CL通用數(shù)據(jù)傳送(GP transfer)堆棧操作指令PUSH (Push word onto st
14、ack)POP(Pop word off stack)什么是堆棧,為什么需要堆棧?堆棧是按照先進后出原則組織的一段內(nèi)存區(qū)域, 通常用于存放一些重要數(shù)據(jù),如:程序的地址、或是需要恢復(fù)的數(shù)據(jù)。為方便數(shù)據(jù)的存放和恢復(fù), 設(shè)置專門的指針,指向堆棧中要操作的單元。 段值由 SS 給出,偏移地址由 SP 給出 SS 堆棧段寄存器 (stack segment) SP 堆棧指針寄存器 (stack point)SS:SP 通用數(shù)據(jù)傳送(GP transfer)PUSH SRC (SP)(SP)- 2;(SP)+1,(SP)(SRC);POP DST (DST)(SP)+1,(SP); (SP)(SP)+2;
15、SRC/DST 可以為 R/M/SR (但DST不可為CS)SP只能為偶數(shù)!用途 臨時保存數(shù)據(jù)(INT斷點/CALL返回地址/數(shù)據(jù))傳遞信息(函數(shù)/子程序)通用數(shù)據(jù)傳送(GP transfer)特點與規(guī)則操作 按字(2字節(jié))進行 PUSH指令 從高地址低地址增長, POP相反操作規(guī)則 FILO (First-In-Last-Out)SP 為當(dāng)前棧頂指針(EA)使用過程 / 關(guān)鍵1. 堆棧平衡,防止溢出2. PUSH、POP配對使用示例 - PUSH AX存放CPU寄存器或存儲器中暫時不使用的數(shù)據(jù),使用數(shù)據(jù)時將其彈出: PUSH AX; 將(AX)入棧(AX)(AX) 低地址. 高地址.1122
16、(SP)-2(SP)-1(SP)堆棧段PUSH AX前 低地址.22H11H 高地址.11H22H(SP)(SP)+1(SP)+2堆棧段PUSH AX后示例 PUSH AX若執(zhí)行前: (SS)= 2000H(SP)= 1002H(SS:SP)= 2010H (AX)= 1234H10低高20地址SS:SP2000:1002指令執(zhí)行前則執(zhí)行PUSH AX后: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H(AX)= 1234H123410低高20地址指令執(zhí)行后不變 減2 變不變 SS:SP2000:1000示例 POP BX使用數(shù)據(jù)時將其彈出:POP BX 低地址.22
17、H11H 高地址.33H44HBX(SP)(SP)+1(SP)+2堆棧段POP BX前 低地址.22H11H 高地址.11H22HBX(SP)-2(SP)-1(SP)堆棧段POP BX后示例 POP BX若執(zhí)行前: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H (BX)= 5678H則執(zhí)行POP BX后: (SS)= 2000H(SP)= 1002H (SS:SP)= 2010H (BX)= 1234H 不變 加2 變 變 123410低高20地址指令執(zhí)行前SS:SP2000:100010低高20地址SS:SP2000:1002指令執(zhí)行后(BX)= 5678H123
18、4(BX)= 1234H 調(diào)用子程序(或過程)或發(fā)生中斷時要保護斷點的地址, 子程序或中斷返回時恢復(fù)斷點。子程序嵌套斷點地址壓入和彈出情況程序嵌套調(diào)用 低地址.斷點2(L)斷點2(H)斷點1(L)斷點1(H) 高地址.(SP)先壓入后壓入先彈出后彈出堆棧段通用數(shù)據(jù)傳送(GP transfer)XCHG dest,src ; (dest) (src)交換操作數(shù)??蛇M行字或字節(jié)操作,不影響標(biāo)志位。 支持RR/M; 禁止MM例:XCHG AL, AH XCHG AX, BX 例 XCHG AX, BX 字操作 執(zhí)行前(AX)= 1122H , (BX)= 3344H 執(zhí)行后(AX)= 3344H ,
19、 (BX)= 1122H 例 XCHG AH, BL 字節(jié)操作 執(zhí)行前(AX)= 1122H , (BX)= 3344H 執(zhí)行后(AX)= 4422H , (BX)= 3311H通用數(shù)據(jù)傳送(GP transfer)XLAT src_table字節(jié)轉(zhuǎn)換指令(換碼指令)該指令不影響標(biāo)志位格式: XLAT str_table;實現(xiàn):(AL)(BX )+(AL)運行前BX須賦值,例:MOV BX, OFFSET src_table ; (BX) 表首址MOV AX, SEG src_table ;(AL) 序號XLAT Hex_table ;查表轉(zhuǎn)換 (詳見書P69 例2.4)I/O端口(Port)
20、傳送指令輸入輸出指令共兩種:IN (Input byte or word)OUT (Output byte or word) 輸入指令用于CPU從外設(shè)端口接受數(shù)據(jù), 輸出指令用于CPU向外設(shè)端口發(fā)送數(shù)據(jù)。無論接受還是發(fā)送數(shù)據(jù),必須通過累加器AX(字)或AL(字節(jié))使用AX,則輸入(輸出)字;使用AL,則輸入(輸出)字節(jié)。輸入、輸出指令不影響標(biāo)志位。當(dāng)端口地址為16位二進制數(shù)時,外部設(shè)備最多有65536個I/O端口,由A0A15譯碼形成。I/O端口(Port)傳送指令每個外設(shè)要占幾個端口:數(shù)據(jù)口,狀態(tài)口和控制口;信息交換要通過端口。端口是CPU和外設(shè)的橋梁。CPUIO接口I/O設(shè)備譯碼數(shù)據(jù)端口狀
21、態(tài)端口控制端口總線I/O端口(Port)傳送指令訪問方式直接:端口號中前256個端口(0FFH),可以直接寫在指令中,端口號代替指令中的PORTINAL/AX, portNo;8位立即數(shù)portNo:0255OUTportNo , AL/AX;間接:當(dāng)端口號256時,必須先把端口號放到DX寄存器中。INAL/AX,DX; DX:064K(0FFFFH)OUT DX,AL/AX; I/O端口(Port)傳送指令例1:實現(xiàn)將(AL) (05H) OUT 05H,AL;(05H)(AL)例2:實現(xiàn)(29H)(28H)(DATA_WORD) IN AX,28H MOV DATA_WORD,AX例3:P
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客運火車站旅客服務(wù)規(guī)范考核試卷
- 供應(yīng)鏈協(xié)同案例解析考核試卷
- 低溫倉儲庫存管理與控制考核試卷
- 家用縫紉機維修實操考核試卷
- 土地利用規(guī)劃中的社區(qū)開放空間設(shè)計考核試卷
- 創(chuàng)業(yè)投資風(fēng)險防范體系建設(shè)與實施路徑考核試卷
- 政府融資合同范本模板
- 自用高爾夫轉(zhuǎn)讓合同范本
- 工地叉車租憑合同范本
- 電氣質(zhì)量安全培訓(xùn)課件
- 義務(wù)教育語文課程標(biāo)準(zhǔn)2022年版
- 公務(wù)員入職登記表
- 可研匯報0625(專家評審)
- 臨水臨電計算公式案例
- SCH壁厚等級對照表
- 2022新教科版六年級科學(xué)下冊第二單元《生物的多樣性》全部教案(共7節(jié))
- PEP人教版小學(xué)英語單詞四年級上冊卡片(可直接打印)
- 年產(chǎn)630噸土霉素車間工藝設(shè)計
- 智慧金字塔立體篇第四冊、第五冊答案全解
- 上海市有線電視(衛(wèi)星)接收設(shè)施安裝許可證申請表
- 【股票指標(biāo)公式下載】-【通達信】短線買點準(zhǔn)(副圖)
評論
0/150
提交評論