第3章-1+8086尋址方式NEW_第1頁
第3章-1+8086尋址方式NEW_第2頁
第3章-1+8086尋址方式NEW_第3頁
第3章-1+8086尋址方式NEW_第4頁
第3章-1+8086尋址方式NEW_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術微機原理與接口技術 朱華貴朱華貴2016年年03月月14日日微機原理與接口技術微機原理與接口技術第第3 3章章 80868086尋址方式與指令系尋址方式與指令系統(tǒng)統(tǒng) 朱華貴朱華貴2016年年03月月14日日微機原理與接口技術微機原理與接口技術3.1 3.1 尋址方式尋址方式 朱華貴朱華貴2016年年03月月14日日微機原理與接口技術微機原理與接口技術3.1 概述概述n指令指令是指揮計算機進行操作的命令。是指揮計算機進行操作的命令。n指令系統(tǒng)指令系統(tǒng)是指微處理器能執(zhí)行的各種指令的集是指微處理器能執(zhí)行的各種指令的集合。合。n程序程序是一系列按一定順序排列的指令是一系列按一定順序排

2、列的指令。n執(zhí)行程序的過程就是計算機的執(zhí)行程序的過程就是計算機的工作過程工作過程。n微處理器的主要功能微處理器的主要功能由它的指令系統(tǒng)來體現(xiàn)由它的指令系統(tǒng)來體現(xiàn)。n不同的微處理器有不同的指令系統(tǒng),其中每一不同的微處理器有不同的指令系統(tǒng),其中每一條指令對應著處理器的一種基本操作,這在設條指令對應著處理器的一種基本操作,這在設計微處理器時確定。計微處理器時確定。n通常一條指令包括兩部分:通常一條指令包括兩部分:u操作碼操作碼:決定要完成的操作決定要完成的操作u操作數(shù)操作數(shù):指參加運算的數(shù)據(jù)或是指參加運算的數(shù)據(jù)或是該該數(shù)所在的內(nèi)存單數(shù)所在的內(nèi)存單元元的的地址。地址。n指令的一般格式指令的一般格式如下

3、如下: 操作碼操作碼 操作數(shù)操作數(shù)1,操作數(shù),操作數(shù)2,操作數(shù),操作數(shù)nu沒有操作數(shù)的指令稱為無操作數(shù)指令。沒有操作數(shù)的指令稱為無操作數(shù)指令。u有兩個操作數(shù)的指令稱為雙操作數(shù)或二地址指令。有兩個操作數(shù)的指令稱為雙操作數(shù)或二地址指令。u操作碼和操作數(shù)地址都由二進制數(shù)碼表示,操作碼和操作數(shù)地址都由二進制數(shù)碼表示,整條指令以二進制編碼的形式存放在存儲器整條指令以二進制編碼的形式存放在存儲器中。中。指令格式指令格式操作數(shù)來源操作數(shù)來源n指明操作數(shù)所在的地方。指明操作數(shù)所在的地方。n操作數(shù)有三種來源:操作數(shù)有三種來源:n1、操作數(shù)在指令中,稱、操作數(shù)在指令中,稱立即數(shù)操作數(shù)立即數(shù)操作數(shù);u如:如:MOV

4、 AL,9n2、操作數(shù)在寄存器中,稱、操作數(shù)在寄存器中,稱寄存器操作數(shù)寄存器操作數(shù);u如:如:MOV AL,9n3、操作數(shù)在內(nèi)存單元中,稱、操作數(shù)在內(nèi)存單元中,稱存儲器操作數(shù)存儲器操作數(shù)或內(nèi)存操或內(nèi)存操作數(shù)。用作數(shù)。用 表示存儲器操作數(shù)。表示存儲器操作數(shù)。u如:如:MOV AL,2000H指令操作數(shù)類型指令操作數(shù)類型n指令應指明參與操作的數(shù)字節(jié)還是字,即指令應指明參與操作的數(shù)字節(jié)還是字,即操作數(shù)的類型。操作數(shù)的類型。n1、指令中有寄存器操作數(shù)、指令中有寄存器操作數(shù),由寄存器操作數(shù)決定操作數(shù)類型;由寄存器操作數(shù)決定操作數(shù)類型;n例例: MOV BX,AL;字節(jié)操作字節(jié)操作 BX ALn MOV

5、BX,AX;字操作字操作 BX AL,BX+1 AHn在在DEBUG下查看指令代碼下查看指令代碼nD:DEBUGn-An13A0:0100 MOV BX,ALn13A0:0102 MOV BX,ALn13A0:0104n-U 100n13A0:0100 8807 MOV BX,ALn13A0:0102 8907 MOV BX,AXnn兩條指令的機器碼是不同的:兩條指令的機器碼是不同的:0788H,0789Hn2、指令操作數(shù)中無寄存器,則有內(nèi)存操作數(shù)的類型、指令操作數(shù)中無寄存器,則有內(nèi)存操作數(shù)的類型決定;若無則需對存儲器操作數(shù)加類型說明。決定;若無則需對存儲器操作數(shù)加類型說明。n例:例:MOV

6、WORD PTR BX,0n MOV BYTE PTR BX,0指令系統(tǒng)與尋址方式的重要性指令系統(tǒng)與尋址方式的重要性n采用采用不同不同CPU的計算機的的計算機的指令系統(tǒng)不同指令系統(tǒng)不同。n采用采用不同不同CPU的計算機的的計算機的指令的格式指令的格式不同。不同。n采用采用不同不同CPU的計算機的的計算機的各各指令允許的指令允許的尋址方尋址方式不同式不同。n要使用某種微處理器,必須先要掌握其指令系要使用某種微處理器,必須先要掌握其指令系統(tǒng)和各指令允許的尋址方式。統(tǒng)和各指令允許的尋址方式。3.2 8086尋址方式尋址方式n尋址方式尋址方式:u指令中給出的指令中給出的求出操作數(shù)有效地址的方法。求出操

7、作數(shù)有效地址的方法。n尋址操作尋址操作:u計算機按照指令給出的尋址方式求出操作數(shù)計算機按照指令給出的尋址方式求出操作數(shù)有效地址的過程。有效地址的過程。8086的七種基本的數(shù)據(jù)尋址方式的七種基本的數(shù)據(jù)尋址方式n(1)立即尋址;立即尋址;n(2)寄存器尋址;寄存器尋址;n(3)直接尋址;直接尋址;n(4)寄存器間接尋址;寄存器間接尋址;n(5)寄存器相對尋址;寄存器相對尋址;n(6)基址變址尋址;基址變址尋址;n(7)相對基址相對基址加加變址變址寄存器寄存器尋址。尋址。存存儲儲器器尋尋址址方方式式3.2.1 立即尋址立即尋址n操作數(shù)直接出現(xiàn)在指令中,此時的操作數(shù)也叫操作數(shù)直接出現(xiàn)在指令中,此時的操

8、作數(shù)也叫立即數(shù)立即數(shù)。n立即數(shù)緊跟在操作碼后面,一起存放在代碼段立即數(shù)緊跟在操作碼后面,一起存放在代碼段中。中。n例如:例如: MOV AX,2010Hu在該指令格式中,在該指令格式中,AX是目標操作數(shù),是目標操作數(shù),2010H是源操作數(shù)。是源操作數(shù)。立即尋址方式的指令執(zhí)行示意圖立即尋址方式的指令執(zhí)行示意圖立即尋址方式說明立即尋址方式說明n在所有的指令中,立即數(shù)只能作源操作數(shù),不能作目標在所有的指令中,立即數(shù)只能作源操作數(shù),不能作目標操作數(shù)。操作數(shù)。n立即數(shù)應與目標操作數(shù)的長度一致。立即數(shù)應與目標操作數(shù)的長度一致。n立即數(shù)默認采用十進制形式,以十六進制形式出現(xiàn)的立立即數(shù)默認采用十進制形式,以十

9、六進制形式出現(xiàn)的立即數(shù)應以字母即數(shù)應以字母H為后綴,以八進制形式出現(xiàn)的立即數(shù)應為后綴,以八進制形式出現(xiàn)的立即數(shù)應以字母以字母Q為后綴。為后綴。n以十六進制形式出現(xiàn)的立即數(shù),若以字母開頭,則必須以十六進制形式出現(xiàn)的立即數(shù),若以字母開頭,則必須以數(shù)字以數(shù)字0為前綴。為前綴。n立即數(shù)還可以用表示立即數(shù)還可以用表示+、-、/表示的算術表達式,表示的算術表達式,也可以用圓括號改變運算順序。也可以用圓括號改變運算順序。n立即數(shù)只能是整數(shù),不能是小數(shù)、變量或其它類型的數(shù)立即數(shù)只能是整數(shù),不能是小數(shù)、變量或其它類型的數(shù)據(jù)。據(jù)。3.2.2 寄存器尋址寄存器尋址n操作數(shù)在寄存器中,在指令中指定寄存器號。操作數(shù)在寄

10、存器中,在指令中指定寄存器號。n由于寄存器號短,因此,采用寄存器尋址方式由于寄存器號短,因此,采用寄存器尋址方式的指令的機器碼長度短。的指令的機器碼長度短。n操作數(shù)在寄存器操作數(shù)在寄存器中,指令執(zhí)行時,操作就在中,指令執(zhí)行時,操作就在CPU的內(nèi)部進行,的內(nèi)部進行,不需要通過訪問存儲器來取不需要通過訪問存儲器來取得操作數(shù),因而指令的執(zhí)行速度快得操作數(shù),因而指令的執(zhí)行速度快。n在編程中,如有可能,應盡量在指令中使用這在編程中,如有可能,應盡量在指令中使用這種尋址方式。種尋址方式。n例如:例如: MOV AX,2010H寄存器尋址方式可用的寄存器寄存器尋址方式可用的寄存器n對于對于16位操作數(shù)位操作

11、數(shù),寄存器可以是:,寄存器可以是:uAX,BX,CX,DXuSI,DI,SP,BPuCS,DS,SS和和ESn對對8位操作數(shù)位操作數(shù),寄存器可以是:,寄存器可以是:uAH,ALuBH,BLuCH,CLuDH,DL寄存器尋址方式指令執(zhí)行示意圖寄存器尋址方式指令執(zhí)行示意圖寄存器尋址方式說明寄存器尋址方式說明n在一條指令中,寄存器尋址方式既可用于源操在一條指令中,寄存器尋址方式既可用于源操作數(shù),也可用于目標操作數(shù),還可以兩者都用作數(shù),也可用于目標操作數(shù),還可以兩者都用寄存器尋址方式。寄存器尋址方式。n源操作數(shù)與目標操作數(shù)的長度應一致。例如,源操作數(shù)與目標操作數(shù)的長度應一致。例如,不能將寄存器不能將寄

12、存器AX的內(nèi)容傳送到寄存器的內(nèi)容傳送到寄存器BH中,中,也不能將寄存器也不能將寄存器BH的內(nèi)容傳送到寄存器的內(nèi)容傳送到寄存器AX中。中。n兩個操作數(shù)不能同時為段寄存器。兩個操作數(shù)不能同時為段寄存器。n目標操作數(shù)不能是代碼段寄存器。目標操作數(shù)不能是代碼段寄存器。5種與內(nèi)存單元有關的尋址種與內(nèi)存單元有關的尋址n1、操作數(shù)存放在內(nèi)存中、操作數(shù)存放在內(nèi)存中,取完指令后還需到內(nèi)存取數(shù)取完指令后還需到內(nèi)存取數(shù);n2、指令中給出的該操作數(shù)的地址,包括段地址和偏、指令中給出的該操作數(shù)的地址,包括段地址和偏移地址;指令中用移地址;指令中用 給出偏移地址。給出偏移地址。n3、按給出偏移地址方式的不同,分為以下、按

13、給出偏移地址方式的不同,分為以下5種:種:n直接尋址:直接尋址: MOV AL,1000Hn寄存器間接尋址:寄存器間接尋址: MOV AL,BXn寄存器相對尋址:寄存器相對尋址: MOV AL,BX+10Hn基址加變址寄存器尋址:基址加變址寄存器尋址:MOV AL,BX+SIn相對基址加變址寄存器:相對基址加變址寄存器:MOV AL,BX+SI+10Hn除直接尋址外除直接尋址外,內(nèi)存操作數(shù)地址只能由內(nèi)存操作數(shù)地址只能由BX/BP、SI/DI給出。給出。3.2.3 直接尋址直接尋址n操作數(shù)在存儲器中操作數(shù)在存儲器中,指令中以具體數(shù)值的形式,指令中以具體數(shù)值的形式直接給出操作數(shù)所在存儲單元的有效地

14、址直接給出操作數(shù)所在存儲單元的有效地址EA。為了與立即數(shù)區(qū)別,該為了與立即數(shù)區(qū)別,該有效地址有效地址必須用必須用 括起。括起。n例如:例如: MOV AX,2010Hu該指令的源操作數(shù)采用直接尋址方式。該指令的源操作數(shù)采用直接尋址方式。u若若(DS)=2000H,那么指令執(zhí)行后,那么指令執(zhí)行后,(AX)=1225H。段基地址段基地址EA操作數(shù)操作數(shù)+指令指令存儲器存儲器直接尋址方式指令執(zhí)行示意圖直接尋址方式指令執(zhí)行示意圖n采用直接尋址方式時,采用直接尋址方式時,如果指令中沒有用前綴如果指令中沒有用前綴說明操作數(shù)存放在哪個段,則操作數(shù)默認存放說明操作數(shù)存放在哪個段,則操作數(shù)默認存放在數(shù)據(jù)段在數(shù)據(jù)

15、段。n8086系統(tǒng)允許操作數(shù)存放在代碼段、堆棧段或系統(tǒng)允許操作數(shù)存放在代碼段、堆棧段或附加段。此時,就需要在指令中指明段超越。附加段。此時,就需要在指令中指明段超越。n例如:例如: MOV ES:1225H,AX u該指令的目標操作數(shù)采用直接尋址方式。操作數(shù)存該指令的目標操作數(shù)采用直接尋址方式。操作數(shù)存放在由放在由ES指示的附加段中指示的附加段中。u物理地址物理地址=ES10H+1225H。n在匯編語言指令中,可以用在匯編語言指令中,可以用符號地址符號地址代替代替數(shù)值數(shù)值地址地址。n例如:例如: MOV AX,NUMAu此時,此時,NUMA是存放操作數(shù)的內(nèi)存單元的符號地址。是存放操作數(shù)的內(nèi)存單

16、元的符號地址。n上面這條指令還可以寫成如下的形式:上面這條指令還可以寫成如下的形式: MOV AX,NUMAn如如DATA1數(shù)據(jù)存放在附加段,則可以用如下的數(shù)據(jù)存放在附加段,則可以用如下的形式指定段跨越前綴:形式指定段跨越前綴: MOV AX,ES: NUMA 或或 MOV AX,ES: NUMA直接尋址示例直接尋址示例1 MOV AX, 物理地址物理地址 設設(DS)=10A0H 代碼段代碼段 + OP 00H 10H 數(shù)據(jù)段數(shù)據(jù)段 11A00H 30H 50H 50H 30H AX(本章中圖示存儲器地址從上到下遞增)本章中圖示存儲器地址從上到下遞增)低地址低地址10A00H1000H11A

17、00H10A0H30H50H11A00H直接尋址示例直接尋址示例2MOV BL, 物理地址物理地址 設設(ES)=3000H 30000H (DS)=2000H + 0100H 30100H 4B 00 BL4B在匯編語言指令中,可以用在匯編語言指令中,可以用代替數(shù)值地址代替數(shù)值地址如:如:MOV AX, 或或 MOV AX, 3000H30100H30100H4B3.2.4 寄存器間接尋址寄存器間接尋址n操作數(shù)的操作數(shù)的有效地址有效地址EA存放在存放在基址寄存器基址寄存器BX、BP或或變址寄存器變址寄存器SI、DI中。中。n為了區(qū)別于寄存器尋址方式,指令中指定的寄為了區(qū)別于寄存器尋址方式,指

18、令中指定的寄存器名要用存器名要用 括起來。括起來。n指令中使用指令中使用SI、DI、BX寄存器時,操作數(shù)默認寄存器時,操作數(shù)默認存放在數(shù)據(jù)段中;使用存放在數(shù)據(jù)段中;使用BP寄存器時,操作數(shù)寄存器時,操作數(shù)默認存放在堆棧段中,允許段超越。默認存放在堆棧段中,允許段超越。n操作數(shù)的物理地址操作數(shù)的物理地址=(DS)10H+(SI)/(DI)/(BX) 或或 (SS)10H+(BP)n例如:例如: MOV AX,SI n該指令的源操作數(shù)采用寄存器間接尋址方式。該指令的源操作數(shù)采用寄存器間接尋址方式。n若若(DS)=2000H,(SI)=2010H,那么指令執(zhí)行,那么指令執(zhí)行后,后,(AX)=1225

19、H。n如操作數(shù)不存放在間址寄存器默認的段,則指如操作數(shù)不存放在間址寄存器默認的段,則指定段超越的指令可采用如下形式。定段超越的指令可采用如下形式。 MOV AX,ES:SI 此時,操作數(shù)的物理地址此時,操作數(shù)的物理地址=ES10H+SI。寄存器間接尋址方式指令執(zhí)行示意圖寄存器間接尋址方式指令執(zhí)行示意圖MOV AH, MOV BX,MOV CX, SI設設 (SS)=1000H, (DS)=2000H , (BP)=0B10H, (SI)=032AH 物理地址物理地址 物理地址物理地址 10000H 20000H + 0B10H + 032AH 40H 00H 3EH 46H40H 10B10H

20、2032AH463EH 2032BH10B11H 032AH032AH1000H2000H0B10H032AH10B10H10B10H2032AH2032AH40H3EH46032AH3.2.5 寄存器相對尋址寄存器相對尋址n操作數(shù)的有效地址操作數(shù)的有效地址EA是指令中指定的是指令中指定的基址或基址或變址寄存器的值與變址寄存器的值與位移量位移量之和之和。n指令中使用指令中使用SI、DI、BX寄存器時,操作數(shù)默認寄存器時,操作數(shù)默認存放在數(shù)據(jù)段中;使用存放在數(shù)據(jù)段中;使用BP寄存器時,操作數(shù)寄存器時,操作數(shù)默認存放在堆棧段中,允許段超越。默認存放在堆棧段中,允許段超越。n操作數(shù)的物理地址操作數(shù)的

21、物理地址=(DS)10H+(SI)/(DI)/(BX)+8位或位或16位位移量位位移量 或或 =(SS)10H+(BP)+8位或位或16位位移量位位移量n例如:例如: MOV AX,8BX n該指令的源操作數(shù)采用該指令的源操作數(shù)采用寄存器相對尋址寄存器相對尋址方式。方式。n若(若(DS)=2000H,(,(BX)=2008H,那么指,那么指令執(zhí)行后,(令執(zhí)行后,(AX)=1225H。寄存器相對尋址方式的指令執(zhí)行示意圖寄存器相對尋址方式的指令執(zhí)行示意圖寄存器相對尋址說明寄存器相對尋址說明n偏移量是符號數(shù)偏移量是符號數(shù),8位偏移量的取值范圍為:位偏移量的取值范圍為:000FFH(即即+127D-1

22、28D);n16位偏移量的取值范圍為:位偏移量的取值范圍為:00000FFFFH(即即+32767D-32768D)。n8086匯編允許用下面三種形式表示匯編允許用下面三種形式表示相對尋址相對尋址,它們是等效的。它們是等效的。MOV AX,BX+8 MOV AX,8BX MOV AX,BX+83.2.6 基址加變址寄存器尋址基址加變址寄存器尋址n操作數(shù)的操作數(shù)的有效地址有效地址EA是指令中指定的是指令中指定的基址寄基址寄存器存器的值與的值與變址寄存器變址寄存器的值之和。的值之和。n指令中使用基址寄存器指令中使用基址寄存器BX時,操作數(shù)默認存時,操作數(shù)默認存放在數(shù)據(jù)段中;放在數(shù)據(jù)段中;n使用基址寄存器使用基址寄存器BP時,操作數(shù)默認存放在堆時,操作數(shù)默認存放在堆棧段中,允許段超越。棧段中,允許段超越。n操作數(shù)的物理地址操作數(shù)的物理地址=(DS)10H+ (BX) + (SI)/(DI)或或 =(SS)10H+ (BP) + (SI)/(DI)n例如:例如: MOV AX,BX SI n該指令的源操作數(shù)采用基址變址尋址方式。該指令的源操作數(shù)采用基址變址尋址方式。n若(若(DS)=2000H,(,(BX)=2008H,(,(SI)=8H;n則則指令

溫馨提示

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

評論

0/150

提交評論