第3章 8086的尋址方式與指令系統(tǒng)(1)_第1頁
第3章 8086的尋址方式與指令系統(tǒng)(1)_第2頁
第3章 8086的尋址方式與指令系統(tǒng)(1)_第3頁
第3章 8086的尋址方式與指令系統(tǒng)(1)_第4頁
第3章 8086的尋址方式與指令系統(tǒng)(1)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 8086CPU8086CPU的尋址方的尋址方式式和指令系統(tǒng)和指令系統(tǒng)教學(xué)目的及要求教學(xué)目的及要求1. 掌握數(shù)據(jù)尋址方式2. 掌握基本指令的功能及其應(yīng)用3. 熟悉常見指令的功能4. 理解常見語法錯誤、符號擴(kuò)展等問題 指令指令是計算機(jī)能夠識別和執(zhí)行的操作命令,是計算機(jī)用以控制各個部件協(xié)調(diào)工作的命令。指令系統(tǒng)指令系統(tǒng)是微處理器所能執(zhí)行的指令的集合,它與微處理器有密切的聯(lián)系,不同的微處理器有不同的指令系統(tǒng) 。 指令是計算機(jī)能夠識別和執(zhí)行的操作命令。一條完整的指令稱為一個指令字。主要描述CPU應(yīng)進(jìn)行何種操作、尋址并使用哪一種操作數(shù)以及下一條指令存放在何處。 指令有機(jī)器指令機(jī)器指令和符號指令

2、符號指令兩種。3.1 指令格式指令格式操作碼操作碼地址碼地址碼操作碼:表示該指令所要完成的操作。地址碼:表示參與運算的操作數(shù)或操作數(shù)的地址。機(jī)器指令都是由“0”、“1”組成,是二進(jìn)制代碼。一、機(jī)器指令一、機(jī)器指令二、符號指令(二、符號指令(助記符指令)匯編語言助記符指令書寫的基本格式為:標(biāo)號:操作碼操作碼 目的操作數(shù) ,源操作數(shù) ;注釋 其中,操作碼是指令語句中不可缺少的;帶括號的項是可選項;多個操作數(shù)間是以,隔開的;操作碼與操作數(shù)之間必須以空格分開。每種指令的操作碼操作碼:n用一個唯一的助記符表示(指令功能的英文縮寫)n對應(yīng)著機(jī)器指令的一個二進(jìn)制編碼指令中的操作數(shù)操作數(shù):n可以是一個具體的數(shù)

3、值n可以是存放數(shù)據(jù)的寄存器n或指明數(shù)據(jù)在主存位置的存儲器地址三、匯編語言三、匯編語言1、匯編語言即:以助記符助記符形式表示的計算機(jī)指令。助記符是便于人們記憶、并能描述指令功能和指令操作數(shù)的符號;助記符是表明指令功能的英語單詞或其縮寫。2、匯編語言程序:用匯編語言書寫的程序; 匯編程序:將匯編語言程序“匯編”成機(jī)器代碼目標(biāo)模塊的程序。3、匯編語言的特點優(yōu)點:n直接控制計算機(jī)硬件部件n編寫“時間”和“空間”兩方面最有效程序缺點:n與處理器密切有關(guān)n需要熟悉計算機(jī)硬件系統(tǒng)、考慮許多細(xì)節(jié)n編寫繁瑣,調(diào)試、維護(hù)、交流和移植困難3.2 8086的尋址方式的尋址方式 所謂尋址方式,是指尋找和獲得操作數(shù)、操作

4、數(shù)地址的方法。操作數(shù)是指令中的操作對象。操作數(shù)采取哪一種尋址方式,對機(jī)器運行的速度和效率有相應(yīng)的影響。一般情況下,操作數(shù)在微機(jī)系統(tǒng)中有以下四種四種存放方式:立即操作數(shù)立即操作數(shù) 操作數(shù)包含在指令當(dāng)中,是一個固定數(shù)值的操作數(shù);相應(yīng)的尋址方式稱為立即尋址。寄存器操作數(shù)寄存器操作數(shù) 寄存器操作數(shù)存放在CPU的某個寄存器中;相應(yīng)的尋址方式稱為寄存器尋址。存儲器操作數(shù)(內(nèi)存操作數(shù))存儲器操作數(shù)(內(nèi)存操作數(shù)) 操作數(shù)存放在內(nèi)存的數(shù)據(jù)區(qū)中。相應(yīng)的尋址方式稱為存儲器尋址。I/O端口操作數(shù)端口操作數(shù)操作數(shù)存放在I/O端口中;相應(yīng)的尋址方式稱為I/O端口尋址。3.2.1 立即尋址立即尋址(Immediate Ad

5、dressing) 操作數(shù)直接存放在指令中,緊跟在操作碼之后,作為指令的一部分,存放在代碼段代碼段里,這種操作數(shù)稱為立即數(shù)。 立即數(shù)可以是位或16位的。16位的立即數(shù)是高位字節(jié)放在高地址,低位字節(jié)放在低地址。使用場合:經(jīng)常用于給寄存器賦初值。注意:只能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。例:例:MOV AL,05HMOV AL,05H指令執(zhí)行后指令執(zhí)行后: : ( (AL)=05HAL)=05H例:例:MOV AX,3064HMOV AX,3064H指令執(zhí)行后指令執(zhí)行后: (: (AX)=3064HAX)=3064H立即尋址方式立即尋址方式.操作碼操作碼64H64H30H30H代代碼碼段

6、段64H64H.30H30HALALAHAH指指令令.操作碼操作碼05H05H代代碼碼段段05H05H.ALAL指指令令3.2.2 寄存器尋址寄存器尋址( ( Register Addressing )Register Addressing )操作數(shù)在CPU的某個寄存器中,指令指定寄存器號。對于16位操作數(shù),寄存器可以是:AX,BX,CX,DX,SI,DI,SP,BP以及段寄存器CS,DS,SS,ES。對于8位操作數(shù),寄存器可以是:AL,AH,BL,BH,CL,CH,DL,DH。寄存器尋址方式特點:指令長度短,執(zhí)行速度快。例:指令執(zhí)行前:(AX)3064 (SS)1234 MOV SS,AX

7、指令執(zhí)行后: (SS)3064H (AX)保持不變。 指令執(zhí)行前:指令執(zhí)行前:指令執(zhí)行后指令執(zhí)行后: :寄存器尋址方式寄存器尋址方式SSSSAXAX3064H3064H3064H3064H1234H1234H3064H3064H3.2.3 存儲器尋址存儲器尋址( ( Memory Addressing )Memory Addressing )操作數(shù)存放在某個邏輯段的存儲單元中。CPU要訪問存儲器中的操作數(shù),必須計算出存放操作數(shù)的存儲單元在存儲器中的物理地址,然后才能對指定的存儲單元進(jìn)行讀/寫操作。編程時主存使用邏輯地址:段地址和偏移地址編程時主存使用邏輯地址:段地址和偏移地址段地址可以使用默認(rèn)

8、邏輯段,不用顯式說明u一般是DS,指向數(shù)據(jù)段u采用BP或SP作為基地址,默認(rèn)SS指向堆棧段段地址必要時使用段超越指令前綴顯式說明u段超越指令前綴:段寄存器名后跟英文冒號uCS DS SS ES 存儲器尋址存儲器尋址: : 段地址表達(dá)段地址表達(dá)存儲器尋址:偏移地址表達(dá)存儲器尋址:偏移地址表達(dá)主存操作數(shù)的偏移地址常被稱為有效地址有效地址EAEA16位有效地址 基址寄存器變址寄存器位移量u基址寄存器:BX或BPu變址寄存器:SI或DIu位移量:8或16位有符號值常用的存儲器操作數(shù)尋址有以下幾種方式:1、直接尋址2、寄存器間接尋址3、基址尋址4、變址尋址5、基址變址尋址6、帶位移的基址變址尋址一、直接

9、尋址一、直接尋址(Direct Addressing)1、操作數(shù)地址的16位偏移量(有效地址EA),直接包含在指令中,存放在代碼段中指令操作碼之后。2、操作數(shù)一般存放在數(shù)據(jù)段中,必須先求出操作數(shù)的物理地址,然后再訪問存儲器才能取得操作數(shù)。物理地址:物理地址:PAPA16d16d或(或(1010H H)(DS)+EA(DS)+EA3、8086允許數(shù)據(jù)存放在數(shù)據(jù)段以外的其它段中,即允許段超越。此時應(yīng)在指令中指定段超越(可以是CS,SS,ES)。例:MOV AX,1070H ;DS段的1070H和1071H兩單元的內(nèi)容傳送到AX中。假設(shè)DS=5000H,地址為51070H字存儲單元的內(nèi)容是6789H

10、。1070H+存儲器代碼段數(shù)據(jù)段1070OP50000H.6789.00000HDS1650000H67 89AXAH AL51070H51070H51071H例:MOV AX,3100H(DS)=6000H , (63100H)=3050H 則:(AX)=?直接尋址方式直接尋址方式6000H6000H.操作碼操作碼00003131.50H50H30H30H.6 0 0 0 06 0 0 0 03 1 0 03 1 0 0+ +6 3 1 0 06 3 1 0 063100H63100H30H30H50H50HAHAHALAL代代碼碼段段數(shù)數(shù)據(jù)據(jù)段段DSDS(AX)=3050H(1)在匯編語言

11、中規(guī)定,可以對某個存儲單元賦予變量名。即可以用符號地址代替數(shù)值地址。如:MOV AX,VALUE 或 MOV AX,VALUE(2)直接尋址方式隱含的段寄存器是DS,8086允許段超越,即允許使用CS、SS、ES作為段寄存器,這時必須在指令中特別標(biāo)明。(3)指令中不允許兩個操作數(shù)都是存儲器操作數(shù),其中一個必須使用寄存器方式。注意:注意:例如:將DS中100H單元的內(nèi)容送至200H單元中,不能使用MOV 0200H, 0100H,必須使用下列指令完成:MOV AX, 0100HMOV 0200H, AX 操作數(shù)在存儲器中,操作數(shù)地址的16位偏移量(有效地址EA)包含在:BP、BX、SI、DI寄存

12、器中。1)若選擇SI、DI、BX作為間接尋址 操作數(shù)存放在數(shù)據(jù)段區(qū)域中,即默認(rèn)DS為段寄存器,用(DS)作為段地址。即操作數(shù)物理地址為: 物理地址PA=16 d (DS)+(BX) 物理地址PA=16 d (DS)+(SI) 物理地址PA=16 d (DS)+(DI)二、寄存器間接尋址方式二、寄存器間接尋址方式(Register Indirect Addressing)6000H6000H2000H2000HDSDSDIDI6 0 0 0 06 0 0 0 02 20 00 00 0+ +6 2 0 0 06 2 0 0 0.AOHAOH50H50H.62000H62000H50H50HA0H

13、A0HBLBLBHBH數(shù)數(shù)據(jù)據(jù)段段例:MOV BX,DI (DS)=6000H (DI)=2000H PA=62000H (62000H)=50A0H (BX)=50A0H寄存器間接尋址方式寄存器間接尋址方式 MOV BXMOV BX,DIDI2)若選擇BP寄存器作為間接尋址 操作數(shù)在堆棧段區(qū)域中,用SS寄存器的內(nèi)容作為段地址。 操作數(shù)物理地址: PA=16d (SS)+(BP)例: MOV BP, AX執(zhí)行前: (SS)=1000H , (BP)=3000H , (AX)=1234H執(zhí)行后:PA=13000H (13000H)=1234H寄存器間接尋址方式寄存器間接尋址方式 MOV BP,

14、AXMOV BP, AX1000H1000H3000H3000HSSSSBPBP1 0 0 0 01 0 0 0 03 30 00 00 0+ +1 3 0 0 01 3 0 0 0.34H34H12H12H.13000H13000H12H12H34H34HALALAHAH堆堆棧棧段段寄存器間接尋址方式寄存器間接尋址方式 MOV BP, AXMOV BP, AX3 )用 SI、DI、BX 、BP作為間接尋址允許段超越 指令中可以指定段超越前綴來取得其他段中的數(shù)據(jù)。例: MOV ES:DI, AX MOV DX, DS:BP這種尋址方法可以用于表格處理,在循環(huán)結(jié)構(gòu)程序設(shè)計中經(jīng)常用到間址方式。 操

15、作數(shù)的有效地址(EA)是一個基址或變址寄存器的內(nèi)容和指令中指定的8位或16位位移量之和。 EAEA= =(BX)(BX)(SI)(SI)(DI)(DI)+ +8位位移量8位位移量16位位移量16位位移量(BP)(BP)三、三、基址尋址基址尋址(Based AddressingBased Addressing) 變址尋址變址尋址(Indexed AddressingIndexed Addressing)操作數(shù)一般在內(nèi)存的數(shù)據(jù)段中,但允許段超越。除有段超越前綴之外,形成物理地址有二種方式:PA=16d (DS)+PA=16d (DS)+(BX)(BX)(SI)(SI)(DI)(DI)+ +8位位移

16、量8位位移量16位位移量16位位移量PA=16d (SS)+PA=16d (SS)+ (BP)(BP)+ +8位位移量8位位移量16位位移量16位位移量指令中邏輯地址表達(dá)式形式有以下表示方法:基址/變址寄存器 + 位移量基址/變址寄存器位移量位移量基址/變址寄存器再假設(shè)548ACH字存儲單元的內(nèi)容是55AAH那么,執(zhí)行該指令后,(AX)=55AAH例:MOV AX,DI+1234H 假設(shè)(DS)=5000H,(DI)=3678H則:源操作數(shù)的物理地址是548ACH50000H 3678H 1234H548ACH+MOV AX,1234HDI另一種書寫格式例: MOV AX, COUNTBP或M

17、OV AX, COUNT+BP設(shè)COUNT為16位位移量。指令執(zhí)行前: (SS)=5000H, (BP)=3000H,COUNT=2040H,(AX)=1234H指令執(zhí)行后:EA=5040HPA=55040H(55040H)=5548H(AX)=5548H 寄存器相對尋址方式寄存器相對尋址方式MOV AX,COUNTBPMOV AX,COUNTBPOPOPOPOP40H40H20H20H.48H48H55H55H.55H55H48H48H存儲器存儲器操操作作碼碼位移量位移量COUNTCOUNT代代碼碼段段堆堆棧棧段段55040H55040H50000H50000HAHAHALAL 操作數(shù)的有效

18、地址是一個基址寄存器和一個變址寄存器的內(nèi)容之和,基址寄存器名和變址寄存器名均由指令指定。四、基址變址尋址方式四、基址變址尋址方式(Based Indexed AddressingBased Indexed Addressing) 8086中,BX、BP用作基址寄存器,SI、DI用作變址寄存器。操作數(shù)邏輯地址表達(dá)式為:段寄存器:基址寄存器 + 變址寄存器段寄存器:基址寄存器變址寄存器當(dāng)BX用作基址寄存器時,默認(rèn)段寄存器為DS;當(dāng)BP用作基址寄存器時,默認(rèn)段寄存器為SS。(BP)(BP)+ +(DI)(DI)(SI)(SI)EA=EA=(BX)(BX)+ +(DI)(DI)(SI)(SI)EA=E

19、A=除有段超越前綴之外,形成物理地址有二種方式:PA=16d(DSPA=16d(DS)+)+ (BX)(BX)+ +(DI)(DI)(SI)(SI)PA=16d(SPA=16d(SS S)+)+ (BP)(BP)+ +(DI)(DI)(SI)(SI)例: MOV AX, BXSI或 MOV AX, BX+SI執(zhí)行指令前: (DS)=3200H, (BX)=0456H, (SI) =1094H (334EAH)=4567H執(zhí)行指令后: EA=14EAH PA=334EAH (AX)=4567H基址加變址尋址方式基址加變址尋址方式 MOV AX,BX+SIMOV AX,BX+SI.67H67H45

20、H45H存儲器存儲器32000H32000H334EAH334EAH45H45H67H67HALALAHAH數(shù)數(shù)據(jù)據(jù)段段.用途:這種尋址方式主要用于二維數(shù)組中檢索數(shù)組元素和二重循環(huán)程序等場合。這種尋址方式允許段超越。使用段超越前綴格式: MOV AX,ES:BXSI 操作數(shù)有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容和8位或16位位移量之和 。(BP)(BP) + +(DI)(DI)(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量EA=EA=(BX)(BX) + +(DI)(DI)(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量EA=EA=5 5、帶位移的

21、基址加變址尋址方式、帶位移的基址加變址尋址方式(Relative Based Indexed addressing)除有段跨越前綴之外,形成物理地址有二種方式:(DI)(DI)PA=16d(SSPA=16d(SS)+)+ (BP)(BP)+ +(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量(DI)(DI)PA=16d(DSPA=16d(DS)+)+ (BX)(BX)+ +(SI)(SI)+ +8位位移量8位位移量16位位移量16位位移量例:MOV AX, MASKBXDIMOV AX, MASK BX+DIMOV AX,MASX+BX+DI執(zhí)行指令前:(DS)=3000H(

22、BX)=1346H(DI)=0500HMASK=1234H(32A7AH)=4050H執(zhí)行指令后:EA=2A7AHPA=32A7AH(AX)=4050H 相對基址加變址相對基址加變址MOV AX, MASK+BX+DIMOV AX, MASK+BX+DIOPOPOPOP34H34H12H12H.50H50H40H40H存儲器存儲器30000H30000H32A7AH32A7AH40H40H50H50HALALAHAH數(shù)數(shù)據(jù)據(jù)段段操操作作碼碼位移位移量量MASKMASK代代碼碼段段1、三種類型操作數(shù) 立即操作數(shù)、寄存器操作數(shù)、存儲器操作數(shù)。2、三種類型操作數(shù)特點(1)立即操作數(shù) 立即數(shù)只能作為源操作數(shù),不能作為目標(biāo)操作數(shù)。相應(yīng)的尋址方式為立即尋址。寄存器操作數(shù)寄存器操作數(shù)可能存放在: 8086的通用寄存器(AX、BX、CX、DX)、地址指針(BP、SP)或變址寄存器(SI、DI)以

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論