版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第3 3章章 8086 8086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 本章主要內(nèi)容本章主要內(nèi)容 概述概述1 8086尋址方式尋址方式 2 8086指令系統(tǒng)指令系統(tǒng) 3 2 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.1 3.1 概述概述 v指令是指揮計算機進(jìn)行操作的命令。指令是指揮計算機進(jìn)行操作的命令。 v指令系統(tǒng)是指微處理器能執(zhí)行的各種指令的指令系統(tǒng)是指微處理器能執(zhí)行的各種指令的 集合。集合。 v程序是一系列按一定順序排列的指令。程序是一系列按一定順序排列的指令。 v執(zhí)行程序的過程就是計算機
2、的工作過程。執(zhí)行程序的過程就是計算機的工作過程。 v微處理器的主要功能由它的指令系統(tǒng)來體現(xiàn)。微處理器的主要功能由它的指令系統(tǒng)來體現(xiàn)。 v不同的微處理器有不同的指令系統(tǒng),其中每不同的微處理器有不同的指令系統(tǒng),其中每 一條指令對應(yīng)著處理器的一種基本操作,這一條指令對應(yīng)著處理器的一種基本操作,這 在設(shè)計微處理器時確定。在設(shè)計微處理器時確定。 3 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v通常一條指令包括兩部分:通常一條指令包括兩部分: 操作碼操作碼: :決定要完成的操作決定要完成的操作 操作數(shù)操作數(shù): :指參加運算的數(shù)據(jù)或是該數(shù)所在的內(nèi)存單元指參加運算的數(shù)據(jù)或是該數(shù)所在
3、的內(nèi)存單元 的地址。的地址。 v指令的一般格式如下:指令的一般格式如下: 操作碼操作碼 操作數(shù)操作數(shù)1 1,操作數(shù),操作數(shù)2 2,操作數(shù),操作數(shù)nn 沒有操作數(shù)的指令稱為沒有操作數(shù)的指令稱為無操作數(shù)指令無操作數(shù)指令。 有兩個操作數(shù)的指令稱為有兩個操作數(shù)的指令稱為雙操作數(shù)或二地址指令雙操作數(shù)或二地址指令。 v操作碼和操作數(shù)地址都由二進(jìn)制數(shù)碼表示,整條操作碼和操作數(shù)地址都由二進(jìn)制數(shù)碼表示,整條 指令以二進(jìn)制編碼的形式存放在存儲器中。指令以二進(jìn)制編碼的形式存放在存儲器中。 4 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 指令系統(tǒng)與尋址方式的重要性指令系統(tǒng)與尋址方式的重要性
4、v采用采用不同不同CPUCPU的計算機的的計算機的指令系統(tǒng)不同。指令系統(tǒng)不同。 v采用采用不同不同CPUCPU的計算機的的計算機的指令的格式不同。指令的格式不同。 v采用采用不同不同CPUCPU的計算機的各指令允許的的計算機的各指令允許的尋址方式尋址方式 不同不同。 v要使用某種微處理器,必須先要掌握其指令系統(tǒng)要使用某種微處理器,必須先要掌握其指令系統(tǒng) 和各指令允許的尋址方式。和各指令允許的尋址方式。 5 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 為何要規(guī)定尋址方式為何要規(guī)定尋址方式 v問題問題 操作數(shù)是地址,如果位數(shù)少,則訪問內(nèi)存的空操作數(shù)是地址,如果位數(shù)少,則訪
5、問內(nèi)存的空 間收到限制。相反,則地址碼長度太大,特別間收到限制。相反,則地址碼長度太大,特別 是兩個或三個操作對象時,這個問題突出。是兩個或三個操作對象時,這個問題突出。 如果指令中的地址字段只能表示內(nèi)存的實際地如果指令中的地址字段只能表示內(nèi)存的實際地 址,碰到需要按某種規(guī)律訪問的操作對象時,址,碰到需要按某種規(guī)律訪問的操作對象時, 很不方便。很不方便。 6 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2 80863.2 8086尋址方式尋址方式 v尋址方式:尋址方式: 指令中給出的求出操作數(shù)有效地址的方法。指令中給出的求出操作數(shù)有效地址的方法。 v尋址操作:尋址
6、操作: 計算機按照指令給出的尋址方式求出操作數(shù)有效地計算機按照指令給出的尋址方式求出操作數(shù)有效地 址的過程。址的過程。 7 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 8088086 6的七種基本的數(shù)據(jù)尋址方式的七種基本的數(shù)據(jù)尋址方式 v(1)(1)立即尋址;立即尋址; v(2)(2)寄存器尋址;寄存器尋址; v(3)(3)直接尋址;直接尋址; v(4)(4)寄存器間接尋址;寄存器間接尋址; v(5)(5)寄存器相對尋址;寄存器相對尋址; v(6)(6)基址變址尋址;基址變址尋址; v(7)(7)相對基址變址尋址。相對基址變址尋址。 存存 儲儲 器器 尋尋 址址 方方
7、 式式 8 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v內(nèi)存中操作數(shù)尋址方式地址采用邏輯地址。內(nèi)存中操作數(shù)尋址方式地址采用邏輯地址。 段基址:段內(nèi)偏移地址段基址:段內(nèi)偏移地址 偏移地址由下面三個中一個或某幾個的組合求偏移地址由下面三個中一個或某幾個的組合求 得,并由此命名為不同的尋址方式。得,并由此命名為不同的尋址方式。 A. A.偏移量??捎脭?shù)字或變量名或符號地址表偏移量??捎脭?shù)字或變量名或符號地址表 示,示,8 8位或位或1616位。位。 B. B.基址?;?。BX BX 或或BPBP中的內(nèi)容。中的內(nèi)容。 C. C.變址。變址。SI SI 或或DIDI中的內(nèi)容。
8、中的內(nèi)容。 匯編規(guī)定雙操作數(shù)指令中最多只允許有一個操作匯編規(guī)定雙操作數(shù)指令中最多只允許有一個操作 數(shù)位于內(nèi)存。數(shù)位于內(nèi)存。 9 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.1 3.2.1 立即尋址立即尋址 v操作數(shù)直接出現(xiàn)在指令中,此時的操作數(shù)也叫立操作數(shù)直接出現(xiàn)在指令中,此時的操作數(shù)也叫立 即數(shù)。即數(shù)。 v立即數(shù)緊跟在操作碼后面,一起存放在代碼段中立即數(shù)緊跟在操作碼后面,一起存放在代碼段中 。 v例如:例如: MOV AXMOV AX,2010H2010H 在該指令格式中,在該指令格式中,AXAX是目標(biāo)操作數(shù),是目標(biāo)操作數(shù),2010H2010H是源操作是源操
9、作 數(shù)。數(shù)。 10 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 立即尋址方式的指令執(zhí)行示意立即尋址方式的指令執(zhí)行示意 圖圖 11 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 立即尋址方式說明立即尋址方式說明 v在所有的指令中,立即數(shù)只能作源操作數(shù),不能作在所有的指令中,立即數(shù)只能作源操作數(shù),不能作 目標(biāo)操作數(shù)。目標(biāo)操作數(shù)。 v立即數(shù)應(yīng)與目標(biāo)操作數(shù)的長度一致。立即數(shù)應(yīng)與目標(biāo)操作數(shù)的長度一致。 v立即數(shù)默認(rèn)采用十進(jìn)制形式,以十六進(jìn)制形式出現(xiàn)立即數(shù)默認(rèn)采用十進(jìn)制形式,以十六進(jìn)制形式出現(xiàn) 的立即數(shù)應(yīng)以字母的立即數(shù)應(yīng)以字母H H為后綴,以八進(jìn)制形式出現(xiàn)
10、的立為后綴,以八進(jìn)制形式出現(xiàn)的立 即數(shù)應(yīng)以字母即數(shù)應(yīng)以字母Q Q為后綴。為后綴。 v以十六進(jìn)制形式出現(xiàn)的立即數(shù),若以字母開頭,則以十六進(jìn)制形式出現(xiàn)的立即數(shù),若以字母開頭,則 必須以數(shù)字必須以數(shù)字0 0為前綴。為前綴。 v立即數(shù)還可以用表示立即數(shù)還可以用表示+ +、- -、/ /表示的算術(shù)表達(dá)式表示的算術(shù)表達(dá)式 ,也可以用圓括號改變運算順序。,也可以用圓括號改變運算順序。 v立即數(shù)只能是整數(shù),不能是小數(shù)、變量或其它類型立即數(shù)只能是整數(shù),不能是小數(shù)、變量或其它類型 的數(shù)據(jù)。的數(shù)據(jù)。 12 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.2 3.2.2 寄存器尋址寄存器
11、尋址 v操作數(shù)在寄存器中,在指令中指定寄存器號。操作數(shù)在寄存器中,在指令中指定寄存器號。 v由于寄存器號短,因此,采用寄存器尋址方式由于寄存器號短,因此,采用寄存器尋址方式 的指令的機器碼長度短。的指令的機器碼長度短。 v操作數(shù)在寄存器中,指令執(zhí)行時,操作就在操作數(shù)在寄存器中,指令執(zhí)行時,操作就在 CPUCPU的內(nèi)部進(jìn)行,不需要通過訪問存儲器來取的內(nèi)部進(jìn)行,不需要通過訪問存儲器來取 得操作數(shù),因而指令的執(zhí)行速度快。得操作數(shù),因而指令的執(zhí)行速度快。 v在編程中,如有可能,應(yīng)盡量在指令中使用這在編程中,如有可能,應(yīng)盡量在指令中使用這 種尋址方式。種尋址方式。 v例如:例如: MOV AXMOV A
12、X,2010H2010H 13 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器尋址方式可用的寄存器寄存器尋址方式可用的寄存器 v對于對于1616位操作數(shù),寄存器可以是:位操作數(shù),寄存器可以是: AXAX,BXBX,CXCX,DXDX SISI,DIDI,SPSP,BPBP CSCS,DSDS,SSSS和和ESES v對對8 8位操作數(shù),寄存器可以是:位操作數(shù),寄存器可以是: AHAH,ALAL BHBH,BLBL CHCH,CLCL DHDH,DLDL 14 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器尋址方式指令執(zhí)行示意圖寄存器尋
13、址方式指令執(zhí)行示意圖 15 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器尋址方式說明寄存器尋址方式說明 v在一條指令中,寄存器尋址方式既可用于源操作在一條指令中,寄存器尋址方式既可用于源操作 數(shù),也可用于目標(biāo)操作數(shù),還可以兩者都用寄存數(shù),也可用于目標(biāo)操作數(shù),還可以兩者都用寄存 器尋址方式。器尋址方式。 v源操作數(shù)與目標(biāo)操作數(shù)的長度應(yīng)一致。例如,不源操作數(shù)與目標(biāo)操作數(shù)的長度應(yīng)一致。例如,不 能將寄存器能將寄存器AXAX的內(nèi)容傳送到寄存器的內(nèi)容傳送到寄存器BHBH中,也不能中,也不能 將寄存器將寄存器BHBH的內(nèi)容傳送到寄存器的內(nèi)容傳送到寄存器AXAX中。中。 v兩
14、個操作數(shù)不能同時為段寄存器。兩個操作數(shù)不能同時為段寄存器。 v目標(biāo)操作數(shù)不能是代碼段寄存器。目標(biāo)操作數(shù)不能是代碼段寄存器。 16 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v以下各種尋址方式操作數(shù)在代碼段以外的內(nèi)存中以下各種尋址方式操作數(shù)在代碼段以外的內(nèi)存中, , 內(nèi)存地址采用邏輯地址表示。內(nèi)存地址采用邏輯地址表示。 段基址:段內(nèi)偏移地址(段基址:段內(nèi)偏移地址(EAEA) 偏移量:可以用數(shù)字也可用變量名或符號地址偏移量:可以用數(shù)字也可用變量名或符號地址 表示表示 MOV AX MOV AX,NUMANUMA 基址:基址:BXBX或或 BP BP 變址:變址:SI S
15、I 或或DIDI vEA=EA=基址基址+ +(變址(變址* *比例因子)比例因子)+ +位移量位移量 17 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 各種訪存類型對應(yīng)的段的默認(rèn)選擇各種訪存類型對應(yīng)的段的默認(rèn)選擇 訪存類型訪存類型所用段及段寄存器所用段及段寄存器 指令指令代碼段代碼段 CSCS寄存器寄存器 堆棧堆棧堆棧段堆棧段 SSSS寄存器寄存器 局部數(shù)據(jù)局部數(shù)據(jù)數(shù)據(jù)段數(shù)據(jù)段 DSDS寄存器寄存器 目的串目的串附加數(shù)據(jù)段附加數(shù)據(jù)段 ESES寄存器寄存器 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 19 第第3 3章章 80868086尋址
16、方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.4 3.2.4 直接尋址直接尋址 v操作數(shù)在存儲器中,操作數(shù)在存儲器中,操作數(shù)地址的偏移量(操作數(shù)地址的偏移量(EAEA) 在指令中。在指令中。指令中以具體數(shù)值的形式直接給出操指令中以具體數(shù)值的形式直接給出操 作數(shù)所在存儲單元的有效地址作數(shù)所在存儲單元的有效地址EAEA。為了與立即數(shù)。為了與立即數(shù) 區(qū)別,該有效地址必須用區(qū)別,該有效地址必須用括起。括起。 v物理地址物理地址= =制定段的段基址制定段的段基址* *16+16+偏移量偏移量 系統(tǒng)默認(rèn),操作數(shù)在數(shù)據(jù)段系統(tǒng)默認(rèn),操作數(shù)在數(shù)據(jù)段 v例如:例如: MOV AXMOV AX,2010H2010H 該
17、指令的源操作數(shù)采用直接尋址方式。該指令的源操作數(shù)采用直接尋址方式。 若若(DS)=2000H(DS)=2000H,那么指令執(zhí)行后,那么指令執(zhí)行后,(AX)=1225H(AX)=1225H。 20 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 直接尋址方式指令執(zhí)行示意圖直接尋址方式指令執(zhí)行示意圖 21 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v采用直接尋址方式時,如果指令中沒有用前綴說采用直接尋址方式時,如果指令中沒有用前綴說 明操作數(shù)存放在哪個段,則操作數(shù)默認(rèn)存放在數(shù)明操作數(shù)存放在哪個段,則操作數(shù)默認(rèn)存放在數(shù) 據(jù)段。據(jù)段。 v8086808
18、6系統(tǒng)允許操作數(shù)存放在代碼段、堆棧段或附系統(tǒng)允許操作數(shù)存放在代碼段、堆棧段或附 加段。此時,就需要在指令中指明段超越。加段。此時,就需要在指令中指明段超越。 v例如:例如: MOV ES:1225HMOV ES:1225H,AX AX 該指令的目標(biāo)操作數(shù)采用直接尋址方式。操作數(shù)存該指令的目標(biāo)操作數(shù)采用直接尋址方式。操作數(shù)存 放在由放在由ESES指示的附加段中。指示的附加段中。 物理地址物理地址=ES=ES10H+1225H10H+1225H。 22 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v在匯編語言指令中,可以用符號地址代替數(shù)值地在匯編語言指令中,可以用符號地址
19、代替數(shù)值地 址。址。 v例如:例如: MOV AXMOV AX,NUMANUMA 此時,此時,NUMANUMA是存放操作數(shù)的內(nèi)存單元的符號地址。是存放操作數(shù)的內(nèi)存單元的符號地址。 v上面這條指令還可以寫成如下的形式:上面這條指令還可以寫成如下的形式: MOV AXMOV AX,NUMANUMA v如如DATA1DATA1數(shù)據(jù)存放在附加段,則可以用如下的形數(shù)據(jù)存放在附加段,則可以用如下的形 式指定段跨越前綴:式指定段跨越前綴: MOV AX MOV AX,ES: NUMAES: NUMA或或 MOV AXMOV AX,ES: NUMAES: NUMA 注注:80868086中規(guī)定雙操作數(shù)的指令中
20、兩個操作數(shù),中規(guī)定雙操作數(shù)的指令中兩個操作數(shù), 只能用一個使用存儲器尋址方式。只能用一個使用存儲器尋址方式。 23 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.4 3.2.4 寄存器間接尋址寄存器間接尋址 v操作數(shù)的有效地址操作數(shù)的有效地址EAEA存放在基址寄存器存放在基址寄存器BXBX、BPBP或或 變址寄存器變址寄存器SISI、DIDI中。中。 v為了區(qū)別于寄存器尋址方式,指令中指定的寄存為了區(qū)別于寄存器尋址方式,指令中指定的寄存 器名要用器名要用括起來。括起來。 v指令中使用指令中使用SISI、DIDI、BXBX寄存器時,操作數(shù)默認(rèn)存寄存器時,操作數(shù)默認(rèn)
21、存 放在數(shù)據(jù)段中;使用放在數(shù)據(jù)段中;使用BPBP寄存器時,操作數(shù)默認(rèn)存寄存器時,操作數(shù)默認(rèn)存 放在堆棧段中;允許段超越。放在堆棧段中;允許段超越。 v操作數(shù)的物理地址操作數(shù)的物理地址=(DS)=(DS)10H+(SI)/(DI)/(BX)10H+(SI)/(DI)/(BX) 或或 (SS)(SS)10H+(BP)10H+(BP) 24 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v例如:例如: MOV AX MOV AX,SI SI v該指令的源操作數(shù)采用寄存器間接尋址方式。該指令的源操作數(shù)采用寄存器間接尋址方式。 v若若(DS)=2000H(DS)=2000H,(S
22、I)=2010H(SI)=2010H,那么指令執(zhí)行后,那么指令執(zhí)行后 ,(AX)=1225H(AX)=1225H。 v如操作數(shù)不存放在間址寄存器默認(rèn)的段,則指如操作數(shù)不存放在間址寄存器默認(rèn)的段,則指 定段超越的指令可采用如下形式。定段超越的指令可采用如下形式。 MOV AXMOV AX,ES:SIES:SI 此時,操作數(shù)的物理地址此時,操作數(shù)的物理地址=ES=ES10H+SI10H+SI。 25 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器間接尋址方式指令執(zhí)行示意圖寄存器間接尋址方式指令執(zhí)行示意圖 26 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式
23、與指令系統(tǒng) 3.2.5 3.2.5 寄存器相對尋址寄存器相對尋址 v操作數(shù)的有效地址操作數(shù)的有效地址EAEA是指令中指定的基址(是指令中指定的基址( BX,BPBX,BP)或變址寄存器)或變址寄存器(SI,DI)(SI,DI)中的值與指定的中的值與指定的8 8 位或位或1616位偏移量之和。位偏移量之和。 BXBX EA= EA=SISI DI + 8DI + 8位或位或1616位偏移量位偏移量 BPBP v指令中使用指令中使用SISI、DIDI、BXBX寄存器時,操作數(shù)默認(rèn)存寄存器時,操作數(shù)默認(rèn)存 放在數(shù)據(jù)段中;使用放在數(shù)據(jù)段中;使用BPBP寄存器時,操作數(shù)默認(rèn)存寄存器時,操作數(shù)默認(rèn)存 放在
24、堆棧段中,允許段超越。放在堆棧段中,允許段超越。 27 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 操作數(shù)的物理地址操作數(shù)的物理地址 =(DS)=(DS)10H+(SI)/(DI)/(BX)+810H+(SI)/(DI)/(BX)+8位或位或1616位位移量位位移量 或或 =(SS)=(SS)10H+(BP)+810H+(BP)+8位或位或1616位位移量位位移量 28 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v例如:例如: MOV AX MOV AX,8BX 8BX v該指令的源操作數(shù)采用寄存器相對尋址方式。該指令的源操作數(shù)采用寄存器相
25、對尋址方式。 v若(若(DSDS)=2000H=2000H,(,(BXBX)=2008H=2008H,那么指令執(zhí),那么指令執(zhí) 行后,(行后,(AXAX)=1225H=1225H。 v例:例:MOV AX, COUNTSIMOV AX, COUNTSI 如果如果 DS=3000H ,SI=2000H,COUNT=3000HDS=3000H ,SI=2000H,COUNT=3000H 則物理地址則物理地址=30000+2000+3000=35000 H=30000+2000+3000=35000 H 29 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器相對尋址方式的指
26、令執(zhí)行示意圖寄存器相對尋址方式的指令執(zhí)行示意圖 30 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 寄存器相對尋址說明寄存器相對尋址說明 v偏移量是符號數(shù),偏移量是符號數(shù),8 8位偏移量的取值范圍為:位偏移量的取值范圍為:0000 0FFH(0FFH(即即+127D+127D-128D)-128D); v1616位偏移量的取值范圍為:位偏移量的取值范圍為:000000000FFFFH(0FFFFH(即即 +32767D+32767D-32768D)-32768D)。 v80868086匯編允許用下面三種形式表示相對尋址,它匯編允許用下面三種形式表示相對尋址,它 們是等效
27、的。們是等效的。 MOV AXMOV AX,BX+8 BX+8 MOV AXMOV AX,8BX 8BX MOV AXMOV AX,BX+8BX+8 注注:這種方式可用于處理數(shù)組和表格,偏移量設(shè)置為數(shù)組:這種方式可用于處理數(shù)組和表格,偏移量設(shè)置為數(shù)組 或表格首地址,利用基址或變址訪問不同元素。或表格首地址,利用基址或變址訪問不同元素。 31 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.63.2.6基址變址尋址基址變址尋址 v操作數(shù)的有效地址操作數(shù)的有效地址EAEA是指令中指定的基址寄是指令中指定的基址寄 存器存器(BX,BP)(BX,BP)的值與變址寄存器的的
28、值與變址寄存器的(SI,DI)(SI,DI)值值 之和。之和。 v指令中使用基址寄存器指令中使用基址寄存器BXBX時,操作數(shù)默認(rèn)存時,操作數(shù)默認(rèn)存 放在數(shù)據(jù)段中;放在數(shù)據(jù)段中; v使用基址寄存器使用基址寄存器BPBP時,操作數(shù)默認(rèn)存放在堆時,操作數(shù)默認(rèn)存放在堆 棧段中,允許段超越。棧段中,允許段超越。 v操作數(shù)的物理地址操作數(shù)的物理地址 = =(DSDS)10H+10H+(SISI)/ /(DIDI)+ +(BXBX) 或或 = =(SSSS)10H+10H+(SISI)/ /(DIDI)+ +(BPBP) 32 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v例如:例
29、如: MOV AXMOV AX,BX SI BX SI v該指令的源操作數(shù)采用基址變址尋址方式。該指令的源操作數(shù)采用基址變址尋址方式。 v若(若(DSDS)=2000H=2000H,(,(BXBX)=2008H=2008H,(,(SISI)=8H=8H, 那么指令執(zhí)行后,(那么指令執(zhí)行后,(AXAX)=1225H=1225H。 33 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 基址變址尋址方式的指令執(zhí)行示意圖基址變址尋址方式的指令執(zhí)行示意圖 34 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.2.7 3.2.7 相對基址變址尋址相對基址變址
30、尋址 v操作數(shù)的有效地址是一個基址寄存器的內(nèi)容、一操作數(shù)的有效地址是一個基址寄存器的內(nèi)容、一 個變址寄存器的內(nèi)容及個變址寄存器的內(nèi)容及8 8位或位或1616位位移量之和。位位移量之和。 v操作數(shù)的物理地址操作數(shù)的物理地址 = =(DSDS)10H+10H+(SISI)/ /(DIDI)+ +(BXBX)+8+8位或位或1616位位移量位位移量 或或 = =(SSSS)10H+10H+(SISI)/ /(DIDI)+ +(BPBP)+8+8位或位或1616位位移量位位移量 v指令中使用基址寄存器指令中使用基址寄存器BXBX時,操作數(shù)默認(rèn)存放在時,操作數(shù)默認(rèn)存放在 數(shù)據(jù)段中;數(shù)據(jù)段中; v使用基址
31、寄存器使用基址寄存器BPBP時,操作數(shù)默認(rèn)存放在堆棧段時,操作數(shù)默認(rèn)存放在堆棧段 中,允許段超越。中,允許段超越。 35 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v例如:例如: MOV AXMOV AX,3BX SI 3BX SI v該指令的源操作數(shù)采用寄存器相對尋址方式。該指令的源操作數(shù)采用寄存器相對尋址方式。 v若(若(DSDS)=2000H=2000H,(,(BXBX)=2008H=2008H,(,(SISI)=5H=5H, 那么指令執(zhí)行后,(那么指令執(zhí)行后,(AXAX)=1225H=1225H。 v這種方式方便處理二維數(shù)組,偏移量設(shè)置為數(shù)組這種方式方便處理
32、二維數(shù)組,偏移量設(shè)置為數(shù)組 或表格首地址,利用基址或變址訪問行和列?;虮砀袷椎刂?,利用基址或變址訪問行和列。 36 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 相對基址變址尋址方式的指令執(zhí)行示意圖相對基址變址尋址方式的指令執(zhí)行示意圖 37 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 38 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.3 80863.3 8086指令系統(tǒng)指令系統(tǒng) v80868086指令系統(tǒng)包括六大類指令:指令系統(tǒng)包括六大類指令: v數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 v算術(shù)運算指令算術(shù)運算指令 v邏輯運算和移
33、位指令邏輯運算和移位指令 v串操作指令串操作指令 v控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令 v處理器控制指令處理器控制指令 39 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v80868086匯編指令中的操作數(shù)可以有零個、一個或兩匯編指令中的操作數(shù)可以有零個、一個或兩 個,通常稱為零地址、一地址或二地址指令。個,通常稱為零地址、一地址或二地址指令。 v二地址指令中的兩個操作數(shù)分別稱為源操作數(shù)和二地址指令中的兩個操作數(shù)分別稱為源操作數(shù)和 目標(biāo)操作數(shù)。目標(biāo)操作數(shù)。 40 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.3.13.3.1數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令
34、v數(shù)據(jù)傳送指令是將數(shù)據(jù)或地址傳送到寄存器、存數(shù)據(jù)傳送指令是將數(shù)據(jù)或地址傳送到寄存器、存 儲單元或儲單元或I/OI/O端口中。端口中。 v包括包括5 5類:類: v通用數(shù)據(jù)傳送指令;通用數(shù)據(jù)傳送指令; v累加器專用傳送指令;累加器專用傳送指令; v地址傳送指令;地址傳送指令; v標(biāo)志傳送指令;標(biāo)志傳送指令; v數(shù)據(jù)類型轉(zhuǎn)換指令。數(shù)據(jù)類型轉(zhuǎn)換指令。 41 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 數(shù)據(jù)傳送指令的共同特點數(shù)據(jù)傳送指令的共同特點 v除了除了POPFPOPF和和SAHFSAHF指令外,其他的數(shù)據(jù)傳送指令的指令外,其他的數(shù)據(jù)傳送指令的 執(zhí)行結(jié)果都不影響標(biāo)志位。執(zhí)
35、行結(jié)果都不影響標(biāo)志位。 v指令中如果列出兩個操作數(shù),則指令的執(zhí)行過程指令中如果列出兩個操作數(shù),則指令的執(zhí)行過程 是:目標(biāo)操作數(shù)是:目標(biāo)操作數(shù)源操作數(shù)。源操作數(shù)。 v指令中如果僅列出一個操作數(shù),則另一個操作數(shù)指令中如果僅列出一個操作數(shù),則另一個操作數(shù) 為隱含操作數(shù)。為隱含操作數(shù)。 42 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 1.1.通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令 v1 1)傳送指令)傳送指令 v格式:格式:MOV MOV 目標(biāo)操作數(shù),源操作數(shù)目標(biāo)操作數(shù),源操作數(shù) v功能:將源操作數(shù)的內(nèi)容(一個字或一個字節(jié))功能:將源操作數(shù)的內(nèi)容(一個字或一個字節(jié)) 傳送到目標(biāo)操
36、作數(shù)指定的寄存器或內(nèi)存單元,源傳送到目標(biāo)操作數(shù)指定的寄存器或內(nèi)存單元,源 操作數(shù)內(nèi)容不變。操作數(shù)內(nèi)容不變。 43 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) MOVMOV指令舉例指令舉例 MOV ALMOV AL,5 5;字節(jié)傳送,立即數(shù)送通用寄存器;字節(jié)傳送,立即數(shù)送通用寄存器 MOV AXMOV AX,BXBX;字傳送,通用寄存器送通用寄存器;字傳送,通用寄存器送通用寄存器 MOV DSMOV DS,AXAX ;字傳送,通用寄存器送段寄存器;字傳送,通用寄存器送段寄存器 44 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 45 第第3 3章
37、章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) MOVMOV指令的使用說明指令的使用說明 v源操作數(shù)可以是立即數(shù)、寄存器或內(nèi)存操作數(shù)。源操作數(shù)可以是立即數(shù)、寄存器或內(nèi)存操作數(shù)。 v目標(biāo)操作數(shù)可以是寄存器或內(nèi)存操作數(shù)。目標(biāo)操作數(shù)可以是寄存器或內(nèi)存操作數(shù)。 v立即數(shù)和立即數(shù)和CSCS寄存器只能作為源操作數(shù),不允許作寄存器只能作為源操作數(shù),不允許作 為目標(biāo)操作數(shù)。為目標(biāo)操作數(shù)。 vIPIP和和PSWPSW都不可作為源操作數(shù)或是目標(biāo)操作數(shù)。都不可作為源操作數(shù)或是目標(biāo)操作數(shù)。 v立即數(shù)不允許直接傳送至立即數(shù)不允許直接傳送至DSDS、ESES或或SSSS寄存器。寄存器。 v源操作數(shù)和目標(biāo)操作數(shù)不
38、允許同時是內(nèi)存操作數(shù)源操作數(shù)和目標(biāo)操作數(shù)不允許同時是內(nèi)存操作數(shù) ,也不允許同時是段寄存器。,也不允許同時是段寄存器。 v源操作數(shù)和目標(biāo)操作數(shù)的類型必須相同,即同為源操作數(shù)和目標(biāo)操作數(shù)的類型必須相同,即同為 字節(jié)類型或字類型。字節(jié)類型或字類型。 46 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 1.1.通用數(shù)據(jù)傳送指令(續(xù))通用數(shù)據(jù)傳送指令(續(xù)) v2 2)數(shù)據(jù)交換指令)數(shù)據(jù)交換指令 v格式:格式:XCHGXCHG 目標(biāo)操作數(shù),源操作數(shù)目標(biāo)操作數(shù),源操作數(shù) v功能:源操作數(shù)的內(nèi)容(一個字或字節(jié))與目標(biāo)功能:源操作數(shù)的內(nèi)容(一個字或字節(jié))與目標(biāo) 操作數(shù)的內(nèi)容(一個字或字節(jié)
39、)互換。操作數(shù)的內(nèi)容(一個字或字節(jié))互換。 v例如:例如: XCHG BLXCHG BL,AHAH ;字節(jié)交換,寄存器與寄存器的內(nèi)容交換;字節(jié)交換,寄存器與寄存器的內(nèi)容交換 XCHG AXXCHG AX,BXSIBXSI ;字交換,寄存器與內(nèi)存單元的內(nèi)容交換;字交換,寄存器與內(nèi)存單元的內(nèi)容交換 47 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) XCHGXCHG指令的使用說明指令的使用說明 v 兩個操作必須有一個在寄存器中。兩個操作必須有一個在寄存器中。 v源操作數(shù)和目標(biāo)操作數(shù)不可以同時是寄存器(累源操作數(shù)和目標(biāo)操作數(shù)不可以同時是寄存器(累 加器)加器)AXAX。 v段
40、寄存器、寄存器段寄存器、寄存器IPIP或立即數(shù)不可以作為源操作或立即數(shù)不可以作為源操作 數(shù)或目標(biāo)操作數(shù)。數(shù)或目標(biāo)操作數(shù)。 v例如:例如: XCHG AXXCHG AX,2011H2011H;源操作數(shù)不能是立即數(shù)源操作數(shù)不能是立即數(shù) XCHG CSXCHG CS,5SI5SI;CSCS不能作為操作數(shù)不能作為操作數(shù) XCHG AXXCHG AX,AX AX ;源操作數(shù)和目標(biāo)操作數(shù)不可同是源操作數(shù)和目標(biāo)操作數(shù)不可同是AXAX 48 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v【例【例3-13-1】若兩個字?jǐn)?shù)據(jù)分別存儲在內(nèi)存單元】若兩個字?jǐn)?shù)據(jù)分別存儲在內(nèi)存單元 NUM1NU
41、M1和和NUM2NUM2中,編寫匯編程序段將這兩個內(nèi)存單中,編寫匯編程序段將這兩個內(nèi)存單 元的內(nèi)容互換。元的內(nèi)容互換。 v匯編程序段如下:匯編程序段如下: MOV AXMOV AX,NUM1 NUM1 XCHG AXXCHG AX,NUM2 NUM2 MOV NUM1MOV NUM1,AX AX 49 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 堆棧堆棧 v堆棧是一塊按照堆棧是一塊按照“后進(jìn)先出后進(jìn)先出”原則工作的內(nèi)存區(qū)原則工作的內(nèi)存區(qū) 域。域。 v把數(shù)據(jù)從棧頂存入堆棧中的操作稱為入棧(或壓把數(shù)據(jù)從棧頂存入堆棧中的操作稱為入棧(或壓 入);入); v把數(shù)據(jù)通過棧頂從堆
42、棧中取出的操作稱為出棧(把數(shù)據(jù)通過棧頂從堆棧中取出的操作稱為出棧( 或彈出)?;驈棾觯?。 v堆棧常被用于數(shù)據(jù)的暫存、交換、子程序的參數(shù)堆棧常被用于數(shù)據(jù)的暫存、交換、子程序的參數(shù) 傳遞等場合。傳遞等場合。 v在調(diào)用子程序或轉(zhuǎn)入中斷服務(wù)程序時,堆棧是默在調(diào)用子程序或轉(zhuǎn)入中斷服務(wù)程序時,堆棧是默 認(rèn)的被用于保存返回地址的內(nèi)存區(qū)域。認(rèn)的被用于保存返回地址的內(nèi)存區(qū)域。 v為了實現(xiàn)子程序或中斷嵌套,也必須使用堆棧技為了實現(xiàn)子程序或中斷嵌套,也必須使用堆棧技 術(shù)。術(shù)。 50 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v在在80868086系統(tǒng)中,堆棧所在的段就是堆棧段,它可系統(tǒng)中
43、,堆棧所在的段就是堆棧段,它可 以占用的最大空間是以占用的最大空間是64KB64KB。堆棧段中地址最大單。堆棧段中地址最大單 元稱為棧底,通常固定。元稱為棧底,通常固定。 v堆棧段的段地址由堆棧段的段地址由SSSS寄存器指示。寄存器指示。 v堆棧指針寄存器堆棧指針寄存器SPSP始終指示棧頂?shù)钠频刂凡㈦S始終指示棧頂?shù)钠频刂凡㈦S 著入棧著入棧SP-2SP-2,出棧操作,出棧操作SP+2SP+2而自動變化。而自動變化。 v當(dāng)進(jìn)行壓入操作后堆棧指針達(dá)到定義值,表明堆當(dāng)進(jìn)行壓入操作后堆棧指針達(dá)到定義值,表明堆 棧滿;當(dāng)執(zhí)行彈出操作后堆棧指針回到初值,表棧滿;當(dāng)執(zhí)行彈出操作后堆棧指針回到初值,表 明堆
44、???。明堆棧空。 v當(dāng)棧滿時,再壓入數(shù)據(jù),稱為當(dāng)棧滿時,再壓入數(shù)據(jù),稱為“堆棧溢出堆棧溢出”。 51 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 1.1.通用數(shù)據(jù)傳送指令(續(xù))通用數(shù)據(jù)傳送指令(續(xù)) v3)3)堆棧操作指令堆棧操作指令 v80868086指令系統(tǒng)中:指令系統(tǒng)中: v堆棧操作指令中操作數(shù)的類型只能是字,不能是堆棧操作指令中操作數(shù)的類型只能是字,不能是 字節(jié)。字節(jié)。 v立即數(shù)不能作為操作數(shù)。立即數(shù)不能作為操作數(shù)。 52 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 進(jìn)棧指令進(jìn)棧指令 v格式:格式:PUSH PUSH 源操作數(shù)源操作數(shù)
45、 v功能:源操作數(shù)入棧。功能:源操作數(shù)入棧。 v指令的執(zhí)行如下操作:指令的執(zhí)行如下操作: v (SP) (SP) (SP) -2 (SP) -2 v (SS:SP) (SS:SP)源操作數(shù)源操作數(shù) v說明:說明: v源操作數(shù)可以是源操作數(shù)可以是寄存器寄存器或是或是內(nèi)存操作數(shù)內(nèi)存操作數(shù)。 53 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 出棧指令出棧指令 v格式:格式:POP POP 目標(biāo)操作數(shù)目標(biāo)操作數(shù) v功能:數(shù)據(jù)出棧,存入目標(biāo)操作數(shù)。功能:數(shù)據(jù)出棧,存入目標(biāo)操作數(shù)。 v指令的執(zhí)行如下操作:指令的執(zhí)行如下操作: v 目標(biāo)操作數(shù)目標(biāo)操作數(shù)(SS:SP) (SS:SP)
46、 v (SP) (SP) (SP) +2 (SP) +2 v說明:說明: v目標(biāo)操作數(shù)可以是段寄存器、目標(biāo)操作數(shù)可以是段寄存器、1616位寄存器或內(nèi)存位寄存器或內(nèi)存 操作數(shù)。操作數(shù)。 v當(dāng)目標(biāo)操作數(shù)是段寄存器時,不能是當(dāng)目標(biāo)操作數(shù)是段寄存器時,不能是CSCS寄存器。寄存器。 54 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 【例【例3-23-2】 v設(shè)設(shè)(SS)=2011H(SS)=2011H,(SP)=0020H(SP)=0020H,依次執(zhí)行下列匯編,依次執(zhí)行下列匯編 指令后,分析堆棧中的數(shù)據(jù)和寄存器指令后,分析堆棧中的數(shù)據(jù)和寄存器AXAX、BXBX、SPSP 的變
47、化情況。的變化情況。 MOV AX,0103HMOV AX,0103H MOV BX,1228HMOV BX,1228H PUSH AXPUSH AX PUSH BXPUSH BX POP BXPOP BX 55 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 56 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 57 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 2.2.累加器專用傳送指令累加器專用傳送指令 v(1 1)換碼指令)換碼指令 v格式一:格式一:XLATXLAT v格式二:格式二:XLAT XLAT 表格首地址表
48、格首地址 v功能:將內(nèi)存表格中某一單元的值傳送至寄存器功能:將內(nèi)存表格中某一單元的值傳送至寄存器 ALAL,實現(xiàn)一種編碼到另一種編碼的轉(zhuǎn)換。例如,實現(xiàn)一種編碼到另一種編碼的轉(zhuǎn)換。例如, 把字符的掃描碼轉(zhuǎn)換成把字符的掃描碼轉(zhuǎn)換成ASCIIASCII碼。碼。 v指令的執(zhí)行如下操作:指令的執(zhí)行如下操作: v把數(shù)據(jù)段中偏移地址為把數(shù)據(jù)段中偏移地址為BX+ALBX+AL的內(nèi)存單元的內(nèi)容的內(nèi)存單元的內(nèi)容 送到送到ALAL中,即:中,即:(AL) (AL) ( BX + AL) ( BX + AL)。 58 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) XLATXLAT指令使用說明指
49、令使用說明 v源操作數(shù)、目標(biāo)操作數(shù)均隱含。源操作數(shù)、目標(biāo)操作數(shù)均隱含。 v該指令隱含說明:寄存器該指令隱含說明:寄存器BXBX保存內(nèi)存表格的首地保存內(nèi)存表格的首地 址;寄存器址;寄存器ALAL保存表格中某單元在此表格中的偏保存表格中某單元在此表格中的偏 移量。因此,在使用該指令之前,必須先初始化移量。因此,在使用該指令之前,必須先初始化 BXBX和和ALAL這兩個寄存器。這兩個寄存器。 v該指令能訪問的內(nèi)存表格中的數(shù)據(jù)只能是字節(jié)類該指令能訪問的內(nèi)存表格中的數(shù)據(jù)只能是字節(jié)類 型的。型的。 v該指令能訪問的內(nèi)存表格的最大容量是該指令能訪問的內(nèi)存表格的最大容量是256256字節(jié)字節(jié) 。 v格式二中的
50、表格首地址部分,只是為了提高程序格式二中的表格首地址部分,只是為了提高程序 的可讀性而設(shè)置的。指令執(zhí)行時,使用的可讀性而設(shè)置的。指令執(zhí)行時,使用BXBX的值作的值作 為表格首地址。為表格首地址。 59 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) XLATXLAT指令用法舉例指令用法舉例 v若若(DS)=2000H(DS)=2000H ,(BX)=0020H(BX)=0020H ,(AL)=9H(AL)=9H, v則執(zhí)行指令則執(zhí)行指令 XLATXLAT后,后, (AL)=39H(AL)=39H。 60 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)
51、 例:在數(shù)據(jù)區(qū)中例:在數(shù)據(jù)區(qū)中TABLETABLE開始的存儲區(qū)順序存開始的存儲區(qū)順序存 放放AZAZ的的ASCIIASCII碼,下程序是把字母從碼,下程序是把字母從0 0開始開始 的存放順序號變成對應(yīng)的字母的的存放順序號變成對應(yīng)的字母的ASCIIASCII碼值。碼值。 TABLE DB A B C D E .ZTABLE DB A B C D E .Z MOV BX, OFFSET TABLE MOV BX, OFFSET TABLE MOV AL,4MOV AL,4 XLATXLAT 61 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (2 2)輸入)輸入/ /輸出指
52、令(輸出指令(I/OI/O指令)指令) v(1 1)輸入指令)輸入指令 v格式一:格式一:IN ALIN AL,端口地址,端口地址 v格式二:格式二:IN AXIN AX,端口地址,端口地址 v格式三:格式三:IN ALIN AL,DXDX v格式四:格式四:IN AXIN AX,DXDX v功能:從指令中指定的功能:從指令中指定的I/OI/O端口讀入一字節(jié)數(shù)據(jù)端口讀入一字節(jié)數(shù)據(jù) 到到ALAL或一個字?jǐn)?shù)據(jù)到或一個字?jǐn)?shù)據(jù)到AXAX。 62 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (2 2)輸出指令)輸出指令 v格式一:格式一:OUT OUT 端口地址,端口地址,AL
53、AL v格式二:格式二:OUT OUT 端口地址,端口地址,AXAX v格式三:格式三:OUT DXOUT DX,ALAL v格式四:格式四:OUT DXOUT DX,AXAX v功能:將功能:將ALAL或或AXAX的內(nèi)容輸出到一個的內(nèi)容輸出到一個8 8位位I/OI/O端口或端口或 1616位位I/OI/O端口。端口。 63 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) IN/OUTIN/OUT指令的使用說明指令的使用說明 v采用格式一和格式二時,端口地址的取值范圍是采用格式一和格式二時,端口地址的取值范圍是 :0 0FFHFFH,可以尋址,可以尋址256256個個I/
54、OI/O端口。端口。 v當(dāng)端口地址值超過當(dāng)端口地址值超過255D255D時,只能采用格式三或格時,只能采用格式三或格 式四,把端口地址保存到寄存器式四,把端口地址保存到寄存器DXDX中,此時,端中,此時,端 口地址的取值范圍是:口地址的取值范圍是:0 0FFFFHFFFFH,可以尋址,可以尋址 6553665536個個I/OI/O端口。端口。 v當(dāng)端口是當(dāng)端口是8 8位時,目標(biāo)操作數(shù)選用位時,目標(biāo)操作數(shù)選用ALAL寄存器;當(dāng)寄存器;當(dāng) 端口是端口是1616位時,目標(biāo)操作數(shù)選位時,目標(biāo)操作數(shù)選AXAX寄存器。寄存器。 64 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) I
55、N/OUTIN/OUT指令的使用舉例指令的使用舉例 vMOV DX,60HMOV DX,60H; ;端口地址送端口地址送DXDX寄存器中寄存器中 vIN AL,DXIN AL,DX; ;從從60H60H端口寫入一個端口寫入一個8 8位數(shù)位數(shù) vOUT 90H,AXOUT 90H,AX; ;將將1616位數(shù)輸出到位數(shù)輸出到90H90H端口端口 65 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 3.3.地址傳送指令地址傳送指令 v在匯編程序中,地址是一種特殊操作數(shù),區(qū)別于在匯編程序中,地址是一種特殊操作數(shù),區(qū)別于 一般數(shù)據(jù)操作數(shù),它無符號,長度為一般數(shù)據(jù)操作數(shù),它無符號,
56、長度為1616位。位。 v在在80868086系統(tǒng)中,有專門的指令進(jìn)行地址傳送。系統(tǒng)中,有專門的指令進(jìn)行地址傳送。 66 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) (1 1)取有效地址指令)取有效地址指令LEALEA v格式:格式:LEA r16LEA r16,memmem v功能:取內(nèi)存單元功能:取內(nèi)存單元memmem的有效地址,送到的有效地址,送到1616位寄位寄 存器存器r16r16中,即:中,即:r16 r16 EA(mem) EA(mem)。 v例如,設(shè)例如,設(shè)DS=2100HDS=2100H,BX=100HBX=100H,SI=10HSI=10H, (D
57、S:110H)=1234H(DS:110H)=1234H,則指令:,則指令: vLEA BX,BX+SI LEA BX,BX+SI v執(zhí)行后,執(zhí)行后,(BX)=(BX)+(SI)=110H(BX)=(BX)+(SI)=110H。 67 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v(2 2)地址指針裝入)地址指針裝入DSDS指令指令LDSLDS v格式:格式:LDS r16LDS r16,m32m32 v功能:把內(nèi)存中的功能:把內(nèi)存中的3232位源操作數(shù)中的低位源操作數(shù)中的低1616位送到位送到 指定寄存器指定寄存器r16r16中,高中,高1616位送到段寄存器位送到
58、段寄存器DSDS中。中。 即:即:r16 r16 m32 m32低低1616位;位;DSDS m32 m32高高1616位。位。 v(3 3)地址指針裝入)地址指針裝入ESES指令指令LESLES v把上述指令中的把上述指令中的DSDS換成換成ESES,即成為,即成為LESLES指令。指令。 68 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) 4.4.標(biāo)志傳送指令標(biāo)志傳送指令 v標(biāo)志寄存器用于記載指令執(zhí)行引起的狀態(tài)變化及標(biāo)志寄存器用于記載指令執(zhí)行引起的狀態(tài)變化及 一些特殊控制位,以此作為控制程序執(zhí)行的依據(jù)一些特殊控制位,以此作為控制程序執(zhí)行的依據(jù) 。 v標(biāo)志寄存器是特殊
59、寄存器,不能像一般數(shù)據(jù)寄存標(biāo)志寄存器是特殊寄存器,不能像一般數(shù)據(jù)寄存 器那樣隨意操作,以免其中的值發(fā)生變化。器那樣隨意操作,以免其中的值發(fā)生變化。 69 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v(1 1)取標(biāo)志指令)取標(biāo)志指令LAHFLAHF v格式:格式:LAHFLAHF v該指令中的源操作數(shù)隱含為標(biāo)志寄存器低該指令中的源操作數(shù)隱含為標(biāo)志寄存器低8 8位,位, 目標(biāo)操作數(shù)隱含為目標(biāo)操作數(shù)隱含為AHAH。 v功能:把功能:把1616位的標(biāo)志寄存器低位的標(biāo)志寄存器低8 8位送寄存器位送寄存器AHAH。 v(2 2)置標(biāo)志指令)置標(biāo)志指令SAHFSAHF v格式:格
60、式:SAHFSAHF v該指令中的源操作數(shù)隱含為該指令中的源操作數(shù)隱含為AHAH,目標(biāo)操作數(shù)隱含,目標(biāo)操作數(shù)隱含 為標(biāo)志寄存器。為標(biāo)志寄存器。 v功能:把寄存器功能:把寄存器AHAH中內(nèi)容送至中內(nèi)容送至1616位的標(biāo)志寄存器位的標(biāo)志寄存器 低低8 8位,此操作是位,此操作是LAHFLAHF的逆操作。的逆操作。 70 第第3 3章章 80868086尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng) v【例【例3-33-3】 編寫匯編程序段,把標(biāo)志寄存器的編寫匯編程序段,把標(biāo)志寄存器的 CFCF位求反,其他位不變。位求反,其他位不變。 LAHFLAHF; ;取標(biāo)志寄存器的低取標(biāo)志寄存器的低8 8位位 XOR
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小額貸款擔(dān)保及貸款利率調(diào)整及貸款條件變更及擔(dān)保人責(zé)任合同3篇
- 二零二五年度木工耗材供應(yīng)與配送合同4篇
- 01 修辭手法題的應(yīng)對策略-高考語文一輪復(fù)習(xí)之核心考點解密
- 七年級道德與法治試卷
- 信用激勵措施考核試卷
- 二零二五年度鋼材行業(yè)質(zhì)量標(biāo)準(zhǔn)制定與實施合同3篇
- 二零二五年度陵園墓碑雕刻技藝傳承合同4篇
- 2025版品牌視覺設(shè)計制作合同范本2篇
- 《菜根譚名句》課件
- 2025年因擅自公開他人隱私賠償協(xié)議
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計研究
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 天津市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟學(xué)的思維方式(第13版)
- 盤錦市重點中學(xué)2024年中考英語全真模擬試卷含答案
- 手衛(wèi)生依從性調(diào)查表
- 湖北教育出版社四年級下冊信息技術(shù)教案
評論
0/150
提交評論