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

下載本文檔

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

文檔簡介

1、匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用第二章第二章 尋址方式與指令系統(tǒng)尋址方式與指令系統(tǒng)任課教師:陶雪麗任課教師:陶雪麗xueli_匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院22021-10-16本章內(nèi)容提要本章內(nèi)容提要 尋址方式尋址方式指令系統(tǒng)指令系統(tǒng)指令格式指令格式匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院32021-10-162.1 2.1 匯編語言指令格式匯編語言指令格式指令由操作碼和操作數(shù)

2、兩部分組成。指令由操作碼和操作數(shù)兩部分組成。 操作碼操作碼說明計算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)說明計算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分。等操作,它是指令中不可缺少的組成部分。操作數(shù)操作數(shù)是指令執(zhí)行的參與者,也就是各種操作的對象。是指令執(zhí)行的參與者,也就是各種操作的對象。操作碼操作碼操作數(shù)操作數(shù)用助記符表達(dá)的指令的一般格式:用助記符表達(dá)的指令的一般格式: 操作碼操作碼 操作數(shù)操作數(shù)1 1,操作數(shù),操作數(shù)n n ;注釋;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與

3、信息技術(shù)學(xué)院42021-10-162.1 2.1 匯編語言指令格式匯編語言指令格式操作碼:操作碼:用一個唯一的助記符表示(指令功能的英文縮寫)用一個唯一的助記符表示(指令功能的英文縮寫)對應(yīng)著機(jī)器指令的一個二進(jìn)制編碼對應(yīng)著機(jī)器指令的一個二進(jìn)制編碼操作數(shù):操作數(shù):可以是操作數(shù)本身(一個具體的數(shù)值)可以是操作數(shù)本身(一個具體的數(shù)值)也可以是存放數(shù)據(jù)的寄存器也可以是存放數(shù)據(jù)的寄存器或指明數(shù)據(jù)在主存位置的存儲器地址或指明數(shù)據(jù)在主存位置的存儲器地址匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院52021-10-162.1

4、2.1 匯編語言指令格式匯編語言指令格式 操作數(shù)字段可以是一個、二個或三個,通常稱為一地址、二地址操作數(shù)字段可以是一個、二個或三個,通常稱為一地址、二地址或三地址指令?;蛉刂分噶睢尾僮鲾?shù)指令單操作數(shù)指令就是一地址指令它只需要指定一個操作數(shù)。就是一地址指令它只需要指定一個操作數(shù)。雙操作數(shù)指令雙操作數(shù)指令就是二地址指令。就是二地址指令。 操作數(shù)操作數(shù)2 2稱為源操作數(shù)稱為源操作數(shù)scrscr,操作數(shù),操作數(shù)1 1稱為目的操作數(shù)稱為目的操作數(shù)destdest,它不僅,它不僅作為指令操作的一個對象,還用來存放指令操作的結(jié)果。作為指令操作的一個對象,還用來存放指令操作的結(jié)果。操作碼操作碼 操作數(shù)操作

5、數(shù)操作碼操作碼 操作數(shù)操作數(shù)1 1,操作數(shù),操作數(shù)2 2匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院62021-10-162.1 2.1 匯編語言指令格式匯編語言指令格式大多數(shù)運(yùn)算指令可使用三地址指令:大多數(shù)運(yùn)算指令可使用三地址指令: 除給出參加運(yùn)算的兩個操作數(shù)(操作數(shù)除給出參加運(yùn)算的兩個操作數(shù)(操作數(shù)2 2,操作數(shù),操作數(shù)3 3)外,還指出)外,還指出運(yùn)算結(jié)果的存放地址(操作數(shù)運(yùn)算結(jié)果的存放地址(操作數(shù)1 1)。)。分號后的內(nèi)容是對指令的解釋。分號后的內(nèi)容是對指令的解釋。操作碼操作碼 操作數(shù)操作數(shù)1 1,操作

6、數(shù),操作數(shù)2 2,操作數(shù),操作數(shù)3 3匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院72021-10-162.1 2.1 匯編語言指令格式匯編語言指令格式 而操作數(shù)的給出方式比較復(fù)雜,指令系統(tǒng)設(shè)計了多種操作數(shù)的來而操作數(shù)的給出方式比較復(fù)雜,指令系統(tǒng)設(shè)計了多種操作數(shù)的來源。源。尋找操作數(shù)的方式叫做操作數(shù)的尋址方式。尋找操作數(shù)的方式叫做操作數(shù)的尋址方式。操作數(shù)采取哪一種尋址方式,會影響機(jī)器運(yùn)行的速度和效率。操作數(shù)采取哪一種尋址方式,會影響機(jī)器運(yùn)行的速度和效率。這種符號指令系統(tǒng)中,操作碼的給出方式比較簡單。這種符號指令

7、系統(tǒng)中,操作碼的給出方式比較簡單。如何尋址一個操作數(shù)對程序的設(shè)計來講也是很重要的。如何尋址一個操作數(shù)對程序的設(shè)計來講也是很重要的。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院82021-10-162.2 2.2 尋址方式尋址方式 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院92021-10-162.2.1 2.2.1 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式 8086 8086、80286

8、80286的機(jī)器字長位的機(jī)器字長位1616位,一般情況下只處理位,一般情況下只處理8 8、1616位數(shù),位數(shù),只在乘、除指令中才會有只在乘、除指令中才會有3232位數(shù)。位數(shù)。 80386 80386及其后繼機(jī)型字長位及其后繼機(jī)型字長位3232位,它可處理位,它可處理8 8、1616、3232位操作數(shù),位操作數(shù),在乘除指令中還可產(chǎn)生在乘除指令中還可產(chǎn)生6464位數(shù)。位數(shù)。這種尋址方式用來確定操作數(shù)地址從而找到操作數(shù)。這種尋址方式用來確定操作數(shù)地址從而找到操作數(shù)。本節(jié)對數(shù)據(jù)尋址方式的討論,均以本節(jié)對數(shù)據(jù)尋址方式的討論,均以MOVMOV指令指令為例。為例。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、

9、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院102021-10-162.2.1 2.2.1 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式 立即尋址方式立即尋址方式寄存器尋址方式寄存器尋址方式直接尋址方式直接尋址方式寄存器間接尋址方式寄存器間接尋址方式寄存器相對尋址方式寄存器相對尋址方式基址變址尋址方式基址變址尋址方式知識要點(diǎn)知識要點(diǎn)相對基址變址尋址方式相對基址變址尋址方式匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院112021-10-161. 1. 立即尋址(立即尋址(immediate a

10、ddressingimmediate addressing) 操作數(shù)直接存放在指令中,緊跟在操作碼之后,作為指令的一部分操作數(shù)直接存放在指令中,緊跟在操作碼之后,作為指令的一部分存放在代碼段里。存放在代碼段里。如圖所示如圖所示。這種操作數(shù)被稱為這種操作數(shù)被稱為立即數(shù)立即數(shù)immimm:它可以是它可以是8 8位數(shù)值位數(shù)值i8i8;也可以是也可以是1616位數(shù)值位數(shù)值i16i16。數(shù)據(jù)存放時采用數(shù)據(jù)存放時采用“小端方式小端方式”。立即數(shù)尋址方式常用來給寄存器賦值。立即數(shù)尋址方式常用來給寄存器賦值。只能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。只能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。匯編語言程

11、序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院122021-10-16立即尋址舉例立即尋址舉例例例2-32-3Y EQU 2005HY EQU 2005H; ;定義常量定義常量MOV AX, 2002HMOV AX, 2002HMOV BL, 36HMOV BL, 36HMOV BX, YMOV BX, Y匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院132021-10-162. 2. 寄存器尋址(寄存器尋址(register address

12、ingregister addressing) 操作數(shù)存放在操作數(shù)存放在CPUCPU的內(nèi)部寄存器的內(nèi)部寄存器regreg中,無需訪問存儲器,因而可以中,無需訪問存儲器,因而可以得到較高的運(yùn)算速度,得到較高的運(yùn)算速度,如圖所示如圖所示。寄存器可以是:寄存器可以是:8 8位位(r8)(r8): AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL1616位位(r16)(r16): AXAX、BXBX、CXCX、DXDX、SISI、DIDI、BPBP、SPSP段寄存器段寄存器(seg(seg) );CSCS、DSDS、SSSS、ESES匯編語言程序設(shè)計匯編語言程序設(shè)計方法、

13、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院142021-10-16寄存器尋址舉例寄存器尋址舉例例例2-42-4(1 1)MOV AX, 1234HMOV AX, 1234H(2 2)MOV AX, BXMOV AX, BX(3 3)MOV AH, BHMOV AH, BH執(zhí)行動畫演示執(zhí)行動畫演示匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院152021-10-16存儲器尋址方式存儲器尋址方式以下各種尋址方式的以下各種尋址方式的操作數(shù)都在除代碼段以外的存儲區(qū)中操作數(shù)都

14、在除代碼段以外的存儲區(qū)中。 操作數(shù)地址是由段基地址和偏移地址相加而取得的。段基地址在操作數(shù)地址是由段基地址和偏移地址相加而取得的。段基地址在實(shí)模式和保護(hù)模式下可從不同途徑取得。實(shí)模式和保護(hù)模式下可從不同途徑取得。這里要解決的問題是如何取這里要解決的問題是如何取得操作數(shù)的偏移地址。得操作數(shù)的偏移地址。 在在80 x8680 x86里,把操作數(shù)的偏移地址稱為里,把操作數(shù)的偏移地址稱為有效地址(有效地址(effective effective addressaddress,EAEA)。)。通過不同尋址方式求得操作數(shù)地址,從而取得操作數(shù)。通過不同尋址方式求得操作數(shù)地址,從而取得操作數(shù)。下述各種尋址方式

15、即為求得有效地址(下述各種尋址方式即為求得有效地址(EAEA)的不同途徑。)的不同途徑。 匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院162021-10-16存儲器尋址方式存儲器尋址方式 指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EAEA),而段地址在默認(rèn)的或用段超越前綴指定的段寄存器中。),而段地址在默認(rèn)的或用段超越前綴指定的段寄存器中。 80X86 80X86設(shè)計了多種存儲器尋址方式:設(shè)計了多種存儲器尋址方式:1616位尋址:位尋址: 直

16、接尋址方式直接尋址方式寄存器間接尋址方式寄存器間接尋址方式 寄存器相對尋址方式寄存器相對尋址方式基址變址尋址方式基址變址尋址方式 相對基址變址尋址方式相對基址變址尋址方式3232位尋址:位尋址: 比例變址尋址方式比例變址尋址方式 基址比例變址尋址方式基址比例變址尋址方式 相對基址比例變址尋址方式相對基址比例變址尋址方式匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院172021-10-16有效地址有效地址EA EA (Effective AddressEffective Address) 位移量(位移量(displ

17、acementdisplacement)是存放在指令中的一個是存放在指令中的一個8 8位或位或1616位的數(shù),位的數(shù),但它不是立即數(shù),而是一個地址。但它不是立即數(shù),而是一個地址。 基址(基址(basebase)是存放在基址寄存器中的內(nèi)容。它是有效地址中的是存放在基址寄存器中的內(nèi)容。它是有效地址中的基址部分,通常用來指向數(shù)據(jù)段中數(shù)組或字符串的首地址?;凡糠?,通常用來指向數(shù)據(jù)段中數(shù)組或字符串的首地址。 變址(變址(indexindex)是存放在變址寄存器中的內(nèi)容。它通常用來訪問數(shù)是存放在變址寄存器中的內(nèi)容。它通常用來訪問數(shù)組中的某個元素或字符串中的某個字符。組中的某個元素或字符串中的某個字符。有

18、效地址的四種組成成分:有效地址的四種組成成分: * *比例因子(比例因子(scale factorscale factor)是是386386及其后繼機(jī)型新增加的尋址方式及其后繼機(jī)型新增加的尋址方式中的一個術(shù)語,其值可為中的一個術(shù)語,其值可為1 1,2 2,4 4或或8 8。在尋址中,可用變址寄存器的內(nèi)。在尋址中,可用變址寄存器的內(nèi)容乘以比例因子來取得變址值。這類尋址方式對訪問元素長度為容乘以比例因子來取得變址值。這類尋址方式對訪問元素長度為2 2,4 4,8 8字節(jié)的數(shù)組特別有用。字節(jié)的數(shù)組特別有用。 匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)

19、學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院182021-10-16有效地址有效地址EA EA (Effective AddressEffective Address) EA EA基址(變址基址(變址比例因子)比例因子)+ +位移量位移量 這四個成分中,除比例因子是固定值外,其他三個成分都可正可這四個成分中,除比例因子是固定值外,其他三個成分都可正可負(fù),以保證指針移動的靈活性。負(fù),以保證指針移動的靈活性。 8086/80286 8086/80286只能使用只能使用1616位尋址,而位尋址,而8038680386及其后繼機(jī)型則既可用及其后繼機(jī)型則既可用3232位尋址,也可用位尋址,也可用1616位尋址。

20、在這兩種情況下,對以上四種成分的組成位尋址。在這兩種情況下,對以上四種成分的組成有不同的規(guī)定,有不同的規(guī)定,表表1 1說明了這一規(guī)定。說明了這一規(guī)定。 有效地址的計算公式:有效地址的計算公式: 這四種成分可以任意組合使用,在各種不同組合下其中每一種成這四種成分可以任意組合使用,在各種不同組合下其中每一種成分均可空缺,但比例因子只能與變址寄存器同時使用。其中分均可空缺,但比例因子只能與變址寄存器同時使用。其中有關(guān)比例有關(guān)比例因子的三種組合只能用于因子的三種組合只能用于8038680386及其后繼機(jī)型。及其后繼機(jī)型。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)

21、與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院192021-10-16段選擇規(guī)則段選擇規(guī)則 表表2 2則說明了各種訪存類型下所對應(yīng)的則說明了各種訪存類型下所對應(yīng)的段的默認(rèn)選擇段的默認(rèn)選擇。實(shí)際上,在。實(shí)際上,在某些情況下,某些情況下,80 x8680 x86允許程序員用允許程序員用段跨越前綴段跨越前綴來改變系統(tǒng)所指定的默認(rèn)來改變系統(tǒng)所指定的默認(rèn)段段,如允許數(shù)據(jù)存放在除,如允許數(shù)據(jù)存放在除DSDS段以外的其他段中,此時程序中應(yīng)使用段段以外的其他段中,此時程序中應(yīng)使用段跨越前綴??缭角熬Y。段的選擇和段跨越前綴段的選擇和段跨越前綴以下三種情況下,不允許使用段跨越前綴:以下三種情況下,不允許使用段跨越

22、前綴:串處理指令的目的串必須用串處理指令的目的串必須用ESES段;段;PUSHPUSH指令的目的和指令的目的和POPPOP指令的源必須用指令的源必須用SSSS段;段;指令必須存放在指令必須存放在CSCS段中。段中。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院202021-10-163. 3. 直接尋址(直接尋址(direct addressingdirect addressing) 操作數(shù)的有效地址只包含位移量一種成分,其值就存放在代碼段中操作數(shù)的有效地址只包含位移量一種成分,其值就存放在代碼段中指令的操作碼之

23、后,位移量的值即操作數(shù)的有效地址。指令的操作碼之后,位移量的值即操作數(shù)的有效地址。如圖所示如圖所示。默認(rèn)的段地址在默認(rèn)的段地址在DSDS段寄存器,可使用段超越前綴改變。段寄存器,可使用段超越前綴改變。直接尋址方式適用于處理單個變量。直接尋址方式適用于處理單個變量。 例如,要處理某個存放在存儲器里的變量,可以用存儲器尋址方式,例如,要處理某個存放在存儲器里的變量,可以用存儲器尋址方式,這就是一個常量常常先要送到寄存器的原因。這就是一個常量常常先要送到寄存器的原因。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院212

24、021-10-16直接尋址舉例直接尋址舉例 例例 MOV AXMOV AX,2000H2000H 如(如(DSDS)3000H3000H,則執(zhí)行情況,則執(zhí)行情況如圖所示如圖所示。 執(zhí)行結(jié)果為:(執(zhí)行結(jié)果為:(AXAX)3050H3050H 在匯編語言指令中,可以用符號地址代替數(shù)值地址,如:在匯編語言指令中,可以用符號地址代替數(shù)值地址,如:MOV AXMOV AX,VALUEVALUE 此時此時VALUEVALUE為存放操作數(shù)單元的符號地址。如寫成:為存放操作數(shù)單元的符號地址。如寫成:MOV AXMOV AX,VALUEVALUE 也是可以的,兩者是等效的。如也是可以的,兩者是等效的。如VALU

25、EVALUE在附加段中,則應(yīng)指定在附加段中,則應(yīng)指定段跨越前綴如下:段跨越前綴如下:MOV AXMOV AX,ESES:VALUEVALUE或或MOV AXMOV AX,ESES:VALUEVALUE匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院222021-10-164. 4. 寄存器間接尋址寄存器間接尋址(register indirect addressingregister indirect addressing) 操作數(shù)的有效地址為基址寄存器內(nèi)容或變址寄存器的內(nèi)容。因此,操作數(shù)的有效地址為基址寄存器內(nèi)容

26、或變址寄存器的內(nèi)容。因此,有效地址就在某個寄存器中,而操作數(shù)則在存儲器中,有效地址就在某個寄存器中,而操作數(shù)則在存儲器中,如圖所示如圖所示。其他寄存器默認(rèn)的段地址在其他寄存器默認(rèn)的段地址在DSDS段寄存器,可使用段超越前綴改變。段寄存器,可使用段超越前綴改變。凡使用凡使用BPBP,ESPESP和和EBPEBP寄存器時,其默認(rèn)段為寄存器時,其默認(rèn)段為SSSS段。段。 這種尋址方式可以用于表格處理,執(zhí)行完一條指令后,只需修改寄這種尋址方式可以用于表格處理,執(zhí)行完一條指令后,只需修改寄存器內(nèi)容就可以取出表格的下一項(xiàng)。存器內(nèi)容就可以取出表格的下一項(xiàng)。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法

27、、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院232021-10-16寄存器間接尋址舉例寄存器間接尋址舉例 例例 MOV AX,BXMOV AX,BX 如果(如果(DSDS)2000H2000H,(,(BXBX)1000H1000H 則物理地址則物理地址20000200001000100021000H21000H 執(zhí)行情況執(zhí)行情況如圖所示如圖所示。 執(zhí)行結(jié)果為:(執(zhí)行結(jié)果為:(AXAX)50A0H50A0H。指令中也可指定段跨越前綴來取得其他段中的數(shù)據(jù)。指令中也可指定段跨越前綴來取得其他段中的數(shù)據(jù)。如:如:MOV AXMOV AX,ESES:BXBX匯編語言程序設(shè)

28、計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院242021-10-165. 5. 寄存器相對尋址寄存器相對尋址(register relative addressingregister relative addressing)又稱直接變址尋址方式。又稱直接變址尋址方式。寄存器的使用和段寄存器的默認(rèn)情況,同寄存器的使用和段寄存器的默認(rèn)情況,同“寄存器間接尋址寄存器間接尋址”。 操作數(shù)的有效地址為基址寄存器或變址寄存器的內(nèi)容與指令中指定操作數(shù)的有效地址為基址寄存器或變址寄存器的內(nèi)容與指令中指定的位移量之和,所以有效地址由兩種成分組

29、成。這種尋址方式的位移量之和,所以有效地址由兩種成分組成。這種尋址方式如圖所示如圖所示。 這種尋址方式同樣可用于表格處理,表格的首地址可設(shè)置為位移量,這種尋址方式同樣可用于表格處理,表格的首地址可設(shè)置為位移量,利用修改基址或變址寄存器的內(nèi)容來取得表格中的值。利用修改基址或變址寄存器的內(nèi)容來取得表格中的值。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院252021-10-16寄存器相對尋址舉例寄存器相對尋址舉例 例例 MOV AXMOV AX,COUNTSICOUNTSI(也可表示為(也可表示為MOV AXMOV

30、AX,COUNTCOUNTSISI)其中其中COUNTCOUNT為為1616位位移量的符號地址。位位移量的符號地址。 如果(如果(DSDS)3000H3000H,(,(SISI)2000H2000H,COUNTCOUNT3000H3000H 則物理地址則物理地址3000030000200020003000300035000H35000H 指令執(zhí)行情況指令執(zhí)行情況如圖所示如圖所示。 執(zhí)行結(jié)果是:(執(zhí)行結(jié)果是:(AXAX)1234H1234H 類似地,可有類似地,可有MOV EAXMOV EAX,TABLEESITABLEESITABLETABLE為為3232位位移量的符號地址,位位移量的符號地址

31、,ESIESI的內(nèi)容指向此表格中的一項(xiàng)。的內(nèi)容指向此表格中的一項(xiàng)。 這種尋址方式也可以使用段跨越前綴。例如:這種尋址方式也可以使用段跨越前綴。例如:MOV DLMOV DL,ESES:STRINGSISTRINGSI匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院262021-10-166. 6. 基址變址尋址基址變址尋址(based indexed addressingbased indexed addressing) 操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容之操作數(shù)的有效地址是一個基址寄存器和一個

32、變址寄存器的內(nèi)容之和,所以有效地址由兩種成分組成。和,所以有效地址由兩種成分組成。如圖所示如圖所示。 這種尋址方式同樣適用于數(shù)組或表格處理,首地址可存放在基址寄這種尋址方式同樣適用于數(shù)組或表格處理,首地址可存放在基址寄存器中,而用變址寄存器來訪問數(shù)組中的各個元素。由于兩個寄存器都存器中,而用變址寄存器來訪問數(shù)組中的各個元素。由于兩個寄存器都可以修改,所以它比直接尋址方式更加靈活??梢孕薷?,所以它比直接尋址方式更加靈活。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院272021-10-16基址變址尋址舉例基址變址尋

33、址舉例 例例 MOV AXMOV AX,BXDIBXDI (或?qū)憺椋海ɑ驅(qū)憺椋篗OV AXMOV AX,BXBXDIDI) 如(如(DSDS)2100H2100H,(,(BXBX)0158H0158H,(,(DIDI)10A5H10A5H 則則EAEA0158015810A510A511FDH11FDH, 物理地址物理地址210002100011FD11FD221FDH221FDH 指令執(zhí)行情況指令執(zhí)行情況如圖所示如圖所示。 執(zhí)行結(jié)果(執(zhí)行結(jié)果(AXAX)1234H1234H。 此種尋址方式使用段跨越前綴時的格式為:此種尋址方式使用段跨越前綴時的格式為:MOV AXMOV AX,ESES:BX

34、SIBXSI匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院282021-10-167. 7. 相對基址變址尋址(相對基址變址尋址(relativedrelatived based indexed addressing based indexed addressing) 操作數(shù)的有效地址是一個基址寄存器與一個變址寄存器的內(nèi)容操作數(shù)的有效地址是一個基址寄存器與一個變址寄存器的內(nèi)容和指令中指定的位移量之和,所以有效地址由三種成分組成。和指令中指定的位移量之和,所以有效地址由三種成分組成。如圖如圖所示所示。 這種尋址方式

35、通常用于對二維數(shù)組的尋址。例如,存儲器中存這種尋址方式通常用于對二維數(shù)組的尋址。例如,存儲器中存放著由多個記錄組成的文件,在位移量可指向文件之首,基址寄存放著由多個記錄組成的文件,在位移量可指向文件之首,基址寄存器指向某個記錄,變址寄存器則指向該記錄中的一個元素。這種尋器指向某個記錄,變址寄存器則指向該記錄中的一個元素。這種尋址方式也為堆棧處理提供了方便,一般(址方式也為堆棧處理提供了方便,一般(BPBP)可指向棧頂,從棧頂)可指向棧頂,從棧頂?shù)綌?shù)組的首址可用位移量表示,變址寄存器可用來訪問數(shù)組中的某到數(shù)組的首址可用位移量表示,變址寄存器可用來訪問數(shù)組中的某個元素。個元素。匯編語言程序設(shè)計匯編

36、語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院292021-10-16相對基址變址尋址舉例相對基址變址尋址舉例 例例 MOV AXMOV AX,MASKBXSIMASKBXSI(也可寫成(也可寫成 MOV AXMOV AX,MASKBXMASKBXSISI 或或 MOV AXMOV AX,MASKMASKBXBXSISI)。)。 如(如(DSDS)3000H3000H,(,(BXBX)2000H2000H,(,(SISI)10001000,MASKMASK0250H0250H, 則物理地址則物理地址16d16d(DSDS)()(BX

37、BX)()(SISI)MASKMASK 300003000020002000100010000250025033250H33250H 指令執(zhí)行情況指令執(zhí)行情況如圖所示如圖所示。 執(zhí)行結(jié)果(執(zhí)行結(jié)果(AXAX)1234H1234H。 類似地,對于類似地,對于3232位尋址方式可有:位尋址方式可有:MOV EAXMOV EAX,ARRAYEBXECXARRAYEBXECX提示:提示:位移量可用符號表示位移量可用符號表示同一尋址方式有多種表達(dá)形式同一尋址方式有多種表達(dá)形式匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院3

38、02021-10-162.2.2 2.2.2 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式 段內(nèi)直接尋址段內(nèi)直接尋址段內(nèi)間接尋址段內(nèi)間接尋址段間直接尋址段間直接尋址段間間接尋址段間間接尋址知識要點(diǎn)知識要點(diǎn)匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院312021-10-162.2.2 2.2.2 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式 如圖所示如圖所示。這種尋址方式用來確定轉(zhuǎn)移指令及這種尋址方式用來確定轉(zhuǎn)移指令及CALLCALL指令的轉(zhuǎn)向地址。指令的轉(zhuǎn)向地址。本節(jié)均以無條件轉(zhuǎn)移指令本節(jié)均以無條件轉(zhuǎn)移指令JMPJMP為例。為例。匯編

39、語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院322021-10-162.2.2 2.2.2 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式目標(biāo)地址的尋址方式目標(biāo)地址的尋址方式直接尋址:直接尋址: 轉(zhuǎn)移地址象立即數(shù)一樣,直接在指令的機(jī)器代碼中,就是直轉(zhuǎn)移地址象立即數(shù)一樣,直接在指令的機(jī)器代碼中,就是直接尋址方式。接尋址方式。間接尋址:間接尋址: 轉(zhuǎn)移地址在寄存器或主存單元中,就是通過寄存器或存儲器轉(zhuǎn)移地址在寄存器或主存單元中,就是通過寄存器或存儲器的間接尋址方式。的間接尋址方式。用寄存器或存儲器用寄存器或存儲器操作數(shù)表達(dá)操作數(shù)表達(dá)

40、用符號表達(dá)用符號表達(dá)匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院332021-10-162.2.2 2.2.2 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式目標(biāo)地址的范圍:段內(nèi)目標(biāo)地址的范圍:段內(nèi)段內(nèi)轉(zhuǎn)移段內(nèi)轉(zhuǎn)移近轉(zhuǎn)移(近轉(zhuǎn)移(nearnear) 在當(dāng)前代碼段在當(dāng)前代碼段64KB64KB范圍內(nèi)轉(zhuǎn)移(范圍內(nèi)轉(zhuǎn)移( 32KB32KB范圍)范圍)不需要更改不需要更改CSCS段地址,只要改變段地址,只要改變IPIP偏移地址偏移地址段內(nèi)轉(zhuǎn)移段內(nèi)轉(zhuǎn)移短轉(zhuǎn)移(短轉(zhuǎn)移(shortshort) 轉(zhuǎn)移范圍可以用一個字節(jié)表達(dá),在段內(nèi)轉(zhuǎn)移范圍可以

41、用一個字節(jié)表達(dá),在段內(nèi)128128127127范圍的轉(zhuǎn)移范圍的轉(zhuǎn)移代碼段代碼段代碼段代碼段匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院342021-10-162.2.2 2.2.2 轉(zhuǎn)移地址尋址方式轉(zhuǎn)移地址尋址方式目標(biāo)地址的范圍:段間目標(biāo)地址的范圍:段間段間轉(zhuǎn)移段間轉(zhuǎn)移遠(yuǎn)轉(zhuǎn)移(遠(yuǎn)轉(zhuǎn)移(farfar) 從當(dāng)前代碼段跳轉(zhuǎn)到另一個代碼段,從當(dāng)前代碼段跳轉(zhuǎn)到另一個代碼段,可以在可以在1MB1MB范圍。范圍。 需要更改需要更改CSCS段地址和段地址和IPIP偏移地址。偏移地址。 目標(biāo)地址必須用一個目標(biāo)地址必須用一個323

42、2位數(shù)表達(dá),叫位數(shù)表達(dá),叫做做3232位遠(yuǎn)指針,它就是邏輯地址。位遠(yuǎn)指針,它就是邏輯地址。代碼段代碼段代碼段代碼段 實(shí)際編程時,匯編程序會根據(jù)目標(biāo)地址的距離,自動處理成實(shí)際編程時,匯編程序會根據(jù)目標(biāo)地址的距離,自動處理成短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移。短轉(zhuǎn)移、近轉(zhuǎn)移或遠(yuǎn)轉(zhuǎn)移。 可用操作符可用操作符shortshort、near ptrnear ptr 或或far ptrfar ptr強(qiáng)制。強(qiáng)制。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院352021-10-161. 1. 段內(nèi)直接尋址段內(nèi)直接尋址(intrasegme

43、ntintrasegment direct addressing direct addressing) 轉(zhuǎn)向的有效地址是轉(zhuǎn)向的有效地址是當(dāng)前當(dāng)前IPIP寄存器的內(nèi)容和指令中指定的寄存器的內(nèi)容和指令中指定的8 8位或位或1616位位位移量之和位移量之和,如圖所示如圖所示。 指令中的位移量是轉(zhuǎn)向的有效地址與當(dāng)前指令中的位移量是轉(zhuǎn)向的有效地址與當(dāng)前IPIP值之差,所以當(dāng)這一程值之差,所以當(dāng)這一程序段在內(nèi)存中的不同區(qū)域運(yùn)行時,這種尋址方式的轉(zhuǎn)移指令本身不會發(fā)序段在內(nèi)存中的不同區(qū)域運(yùn)行時,這種尋址方式的轉(zhuǎn)移指令本身不會發(fā)生變化,這是符合程序的再定位要求的。生變化,這是符合程序的再定位要求的。 轉(zhuǎn)向有效地

44、址用相對于當(dāng)前轉(zhuǎn)向有效地址用相對于當(dāng)前IPIP值的位移量來表示,所以它是一種相值的位移量來表示,所以它是一種相對尋址方式。對尋址方式。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院362021-10-161. 1. 段內(nèi)直接尋址段內(nèi)直接尋址(intrasegmentintrasegment direct addressing direct addressing)這種尋址方式適用于條件轉(zhuǎn)移及無條件轉(zhuǎn)移指令:這種尋址方式適用于條件轉(zhuǎn)移及無條件轉(zhuǎn)移指令: 當(dāng)它用于條件轉(zhuǎn)移指令時,位移量只允許當(dāng)它用于條件轉(zhuǎn)移指令時,位移

45、量只允許8 8位。位。 無條件轉(zhuǎn)移指令在位移量為無條件轉(zhuǎn)移指令在位移量為8 8位時稱為短跳轉(zhuǎn),位移量為位時稱為短跳轉(zhuǎn),位移量為1616位時則稱位時則稱為近跳轉(zhuǎn)為近跳轉(zhuǎn) 。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院372021-10-161. 1. 段內(nèi)直接尋址段內(nèi)直接尋址(intrasegmentintrasegment direct addressing direct addressing) 指令的匯編語言格式表示為:指令的匯編語言格式表示為:JMP NEAR PTR PROGIAJMP NEAR PTR

46、PROGIAJMP SHORT QUESTJMP SHORT QUEST PROGIA PROGIA和和QUESTQUEST均為轉(zhuǎn)向的符號地址,在機(jī)器指令中,用位移量來表均為轉(zhuǎn)向的符號地址,在機(jī)器指令中,用位移量來表示。示。 在匯編指令中:在匯編指令中: 如果位移量為如果位移量為1616位,則在符號地址前加操作符位,則在符號地址前加操作符NERA PTRNERA PTR; 如果位移量為如果位移量為8 8位,則在符號地址前加操作符位,則在符號地址前加操作符SHORTSHORT。 匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信

47、息技術(shù)學(xué)院382021-10-162. 2. 段內(nèi)間接尋址段內(nèi)間接尋址(intrasegmentintrasegment indirect addressing indirect addressing) 轉(zhuǎn)向有效地址是一個寄存器或是一個存儲單元的內(nèi)容。轉(zhuǎn)向有效地址是一個寄存器或是一個存儲單元的內(nèi)容。 這種尋址方式以及以下的兩種段間尋址方式都不能用于條件轉(zhuǎn)移指這種尋址方式以及以下的兩種段間尋址方式都不能用于條件轉(zhuǎn)移指令。也就是說:令。也就是說: 轉(zhuǎn)向有效地址轉(zhuǎn)向有效地址可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋可以用數(shù)據(jù)尋址方式中除立即數(shù)以外的任何一種尋址方式取得址方式取得,所得到的轉(zhuǎn)向的有效

48、地址用來取代,所得到的轉(zhuǎn)向的有效地址用來取代IPIP寄存器的內(nèi)容。寄存器的內(nèi)容。如圖所示如圖所示。 條件轉(zhuǎn)移指令只能使用段內(nèi)直接尋址的條件轉(zhuǎn)移指令只能使用段內(nèi)直接尋址的8 8位位移量;位位移量; JMP JMP和和CALLCALL指令則可用四種尋址方式中的任何一種。指令則可用四種尋址方式中的任何一種。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院392021-10-162. 2. 段內(nèi)間接尋址段內(nèi)間接尋址(intrasegmentintrasegment indirect addressing indirect

49、addressing) 段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為:段內(nèi)間接尋址轉(zhuǎn)移指令的匯編格式可以表示為:JMP BXJMP BXJMP WORD PTRBP+TABLE JMP WORD PTRBP+TABLE 其中其中WORD PTRWORD PTR為操作符,用以指出其后的尋址方式所取得的轉(zhuǎn)向地為操作符,用以指出其后的尋址方式所取得的轉(zhuǎn)向地址是一個字的有效地址,也就是說它是一種段內(nèi)轉(zhuǎn)移。址是一個字的有效地址,也就是說它是一種段內(nèi)轉(zhuǎn)移。 以上兩種尋址方式均為段內(nèi)轉(zhuǎn)移,所以直接把求以上兩種尋址方式均為段內(nèi)轉(zhuǎn)移,所以直接把求得的轉(zhuǎn)向的有效地址送到得的轉(zhuǎn)向的有效地址送到IPIP寄存器就可以了。寄

50、存器就可以了。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院402021-10-16段內(nèi)間接尋址舉例段內(nèi)間接尋址舉例 假設(shè):(假設(shè):(DSDS)2000H2000H,(,(BXBX)1256H1256H,(,(SISI)528FH528FH,位移量,位移量20A1H20A1H,(,(232F7H232F7H)3280H3280H,(,(264E5H264E5H)2450H2450H。例例1 1 JMP BXJMP BX則執(zhí)行該指令后(則執(zhí)行該指令后(IPIP)1256H1256H例例2 2JMP TABLEBXJ

51、MP TABLEBX則執(zhí)行該指令后則執(zhí)行該指令后(IPIP)()(16d16d(DSDS)()(BXBX)位移量)位移量) (20000200001256125620A120A1) (232F7232F7) 3280H3280H匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院412021-10-16段內(nèi)間接尋址舉例段內(nèi)間接尋址舉例 例例3 3 JMP BXSI JMP BXSI則執(zhí)行該指令后則執(zhí)行該指令后 (IPIP)()(16d16d(DSDS)()(BXBX)位移量)位移量) (2000020000125612

52、56528F528F) (264E5264E5) 2450H2450H匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院422021-10-163. 3. 段間直接尋址段間直接尋址(intersegmentintersegment direct addressing direct addressing) 指令中直接提供了轉(zhuǎn)向段地址和偏移地址,所以只要指令中直接提供了轉(zhuǎn)向段地址和偏移地址,所以只要用指令中指定的偏移地址取代用指令中指定的偏移地址取代IPIP寄存器的內(nèi)容;寄存器的內(nèi)容; 用指令中指定的段地址取代用指令中指

53、定的段地址取代CSCS寄存器的內(nèi)容就完成了從一個段到寄存器的內(nèi)容就完成了從一個段到另一個段的轉(zhuǎn)移操作。另一個段的轉(zhuǎn)移操作。如圖所示如圖所示。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院432021-10-163. 3. 段間直接尋址段間直接尋址(intersegmentintersegment direct addressing direct addressing) 指令的匯編語言格式可表示為:指令的匯編語言格式可表示為:JMP FAR PTR NEXTROUTINTJMP FAR PTR NEXTROUTIN

54、T 其中,其中,NEXTROUTINTNEXTROUTINT為轉(zhuǎn)向的符號地址,為轉(zhuǎn)向的符號地址,F(xiàn)AR PTRFAR PTR則是表示段間轉(zhuǎn)移則是表示段間轉(zhuǎn)移的操作符。的操作符。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院442021-10-164. 4. 段間間接尋址段間間接尋址(intersegmentintersegment indirect addressing indirect addressing) 用用存儲器中的兩個相繼字的內(nèi)容來取代存儲器中的兩個相繼字的內(nèi)容來取代IPIP和和CSCS寄存器中的原始

55、內(nèi)容寄存器中的原始內(nèi)容,以達(dá)到段間轉(zhuǎn)移的目的。以達(dá)到段間轉(zhuǎn)移的目的。 存儲單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的存儲單元的地址是由指令指定除立即數(shù)方式和寄存器方式以外的任何一種數(shù)據(jù)尋址方式取得。任何一種數(shù)據(jù)尋址方式取得。 如圖所示如圖所示。 匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院452021-10-164. 4. 段間間接尋址段間間接尋址(intersegmentintersegment indirect addressing indirect addressing) 這種指令的匯編語言格式

56、可表示為:這種指令的匯編語言格式可表示為:JMP DWORD PTRINTERSJMP DWORD PTRINTERSBXBX 其中,其中,INTERSINTERSBXBX說明數(shù)據(jù)尋址方式為直接變址尋址方式,說明數(shù)據(jù)尋址方式為直接變址尋址方式,DWORD PTRDWORD PTR為雙字操作符,說明轉(zhuǎn)向地址需取雙字為段間轉(zhuǎn)移指令。為雙字操作符,說明轉(zhuǎn)向地址需取雙字為段間轉(zhuǎn)移指令。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院462021-10-162.2.3 2.2.3 尋址方式的選擇尋址方式的選擇 立即尋址方式主

57、要用于:立即尋址方式主要用于: (1 1) 寄存器初始化,如寄存器初始化,如MOV CX, 12;MOV CX, 12; (3 3) 與寄存器中內(nèi)容進(jìn)行算術(shù)或邏輯運(yùn)算,如與寄存器中內(nèi)容進(jìn)行算術(shù)或邏輯運(yùn)算,如ADD AX, 100ADD AX, 100 (2 2) 為存儲單元賦值,如為存儲單元賦值,如MOV XX, 12;MOV XX, 12; 寄存器尋址方式主要用于:寄存器尋址方式主要用于: 存放運(yùn)算對象、中間結(jié)果、預(yù)算結(jié)果、計數(shù)值等。存放運(yùn)算對象、中間結(jié)果、預(yù)算結(jié)果、計數(shù)值等。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與

58、信息技術(shù)學(xué)院472021-10-162.2.3 2.2.3 尋址方式的選擇尋址方式的選擇 存儲器尋址方式主要用于:存儲器尋址方式主要用于: 訪問存儲單元中一片連續(xù)存儲單元,這片連續(xù)單元地址不用變量訪問存儲單元中一片連續(xù)存儲單元,這片連續(xù)單元地址不用變量一一給出,只需為存儲區(qū)首地址定義一個變量,某個存儲單元用存儲一一給出,只需為存儲區(qū)首地址定義一個變量,某個存儲單元用存儲器尋址方式中的一種均可方便訪問。器尋址方式中的一種均可方便訪問。 與與C C語言中用指針處理數(shù)組的方法類似。語言中用指針處理數(shù)組的方法類似。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息

59、技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院482021-10-162.3 2.3 指令系統(tǒng)指令系統(tǒng) 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令處理機(jī)控制與雜項(xiàng)操作指令處理機(jī)控制與雜項(xiàng)操作指令地址傳送指令地址傳送指令標(biāo)志傳送指令標(biāo)志傳送指令輸入輸出指令輸入輸出指令匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院492021-10-16準(zhǔn)備知識準(zhǔn)備知識指令系統(tǒng)指令系統(tǒng)計算機(jī)的指令系統(tǒng)就是指該計算機(jī)能夠執(zhí)行的全部指令的集合。計算機(jī)的指令系統(tǒng)就是指該計算機(jī)能夠執(zhí)行的全部指令的集合。每種計算機(jī)都有它支持的指令集合每種計算機(jī)都有它支持的指

60、令集合 。1616位位80868086指令系統(tǒng)是指令系統(tǒng)是Intel 80 x86Intel 80 x86系列微處理器指令系統(tǒng)的基礎(chǔ)。系列微處理器指令系統(tǒng)的基礎(chǔ)。匯編語言程序設(shè)計匯編語言程序設(shè)計方法、技術(shù)、應(yīng)用方法、技術(shù)、應(yīng)用河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院河南師范大學(xué)計算機(jī)與信息技術(shù)學(xué)院502021-10-16準(zhǔn)備知識準(zhǔn)備知識學(xué)習(xí)指令的注意事項(xiàng)學(xué)習(xí)指令的注意事項(xiàng) 指令的功能指令的功能該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是該指令能夠?qū)崿F(xiàn)何種操作。通常指令助記符就是指令功能的英文單詞或其縮寫形式。指令功能的英文單詞或其縮寫形式。 指令支持的尋址方式指令支持的尋址方式該指令中的操作數(shù)可以采用何

溫馨提示

  • 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

提交評論