第 5 章 指令系統(tǒng)_第1頁
第 5 章 指令系統(tǒng)_第2頁
第 5 章 指令系統(tǒng)_第3頁
第 5 章 指令系統(tǒng)_第4頁
第 5 章 指令系統(tǒng)_第5頁
已閱讀5頁,還剩184頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-3-7 第8版 2012.091第第 5 5 章章 指令系統(tǒng)指令系統(tǒng)2022-3-72本章學(xué)習(xí)內(nèi)容 指令系統(tǒng)的設(shè)計方法指令系統(tǒng)的設(shè)計方法指令格式指令格式尋址方式尋址方式 CISCCISC和和RISCRISC的概念的概念2022-3-735.1 5.1 機(jī)器指令機(jī)器指令 指令指令:控制計算機(jī)執(zhí)行某種操作的命令。:控制計算機(jī)執(zhí)行某種操作的命令。 機(jī)器語言機(jī)器語言:計算機(jī)硬件實體直接表示控制信息的:計算機(jī)硬件實體直接表示控制信息的語言。語言。 機(jī)器語言程序機(jī)器語言程序:用機(jī)器語言編制的程序。:用機(jī)器語言編制的程序。 機(jī)器語言是計算機(jī)硬件能直接理解并執(zhí)行的語言,機(jī)器語言是計算機(jī)硬件能直接理解

2、并執(zhí)行的語言,任何用其它語言編制的程序,都必須經(jīng)過任何用其它語言編制的程序,都必須經(jīng)過 “翻翻譯譯”,翻譯為機(jī)器語言程序,才能在機(jī)器中正確,翻譯為機(jī)器語言程序,才能在機(jī)器中正確的運(yùn)行。的運(yùn)行。 一條指令就是機(jī)器語言的一個語句,用來說明機(jī)一條指令就是機(jī)器語言的一個語句,用來說明機(jī)器硬件應(yīng)完成的操作。器硬件應(yīng)完成的操作。 指令系統(tǒng)(指令集)指令系統(tǒng)(指令集):一臺計算機(jī)所能執(zhí)行的全:一臺計算機(jī)所能執(zhí)行的全部指令的集合。部指令的集合。2022-3-74 機(jī)器語言是面向機(jī)器的機(jī)器語言是面向機(jī)器的:不同的計算機(jī)系統(tǒng),:不同的計算機(jī)系統(tǒng),具有不同的指令,每一計算機(jī)系統(tǒng)都具有自己具有不同的指令,每一計算機(jī)系

3、統(tǒng)都具有自己的指令系統(tǒng)。的指令系統(tǒng)。 指令系統(tǒng)必須是完備的指令系統(tǒng)必須是完備的:即任何運(yùn)算都可以用:即任何運(yùn)算都可以用指令系統(tǒng)中的指令編程實現(xiàn)。指令系統(tǒng)中的指令編程實現(xiàn)。 指令系統(tǒng)是計算機(jī)體系結(jié)構(gòu)的核心;是計算機(jī)指令系統(tǒng)是計算機(jī)體系結(jié)構(gòu)的核心;是計算機(jī)系統(tǒng)硬件、軟件的主要界面。它既是計算機(jī)硬系統(tǒng)硬件、軟件的主要界面。它既是計算機(jī)硬件設(shè)計的主要依據(jù),又是計算機(jī)軟件設(shè)計的基件設(shè)計的主要依據(jù),又是計算機(jī)軟件設(shè)計的基石。所以一臺計算機(jī)指令系統(tǒng)的優(yōu)劣,直接影石。所以一臺計算機(jī)指令系統(tǒng)的優(yōu)劣,直接影響著計算機(jī)系統(tǒng)的性能。響著計算機(jī)系統(tǒng)的性能。2022-3-755.1.1 5.1.1 機(jī)器指令格式機(jī)器指令格

4、式 指令字指令字(指令代碼):表示一條指令的一(指令代碼):表示一條指令的一串二進(jìn)制代碼。串二進(jìn)制代碼。 指令格式的設(shè)計內(nèi)容:指令格式的設(shè)計內(nèi)容: 確定的指令字長度確定的指令字長度 劃分指令字字段并加以定義劃分指令字字段并加以定義2022-3-76 一條指令中應(yīng)包含的信息:一條指令中應(yīng)包含的信息: 操作碼操作碼:表示指令的操作特性和功能。:表示指令的操作特性和功能。 操作數(shù)的地址操作數(shù)的地址:指示操作數(shù)或操作數(shù)所在的:指示操作數(shù)或操作數(shù)所在的地址。地址。 存放操作結(jié)果的地址存放操作結(jié)果的地址。 下一條指令的地址下一條指令的地址。 指令的基本格式:指令的基本格式:操作碼(操作碼(OPOP)地址碼

5、(地址碼(A A)2022-3-77 各字段的指定方法:各字段的指定方法: 顯式指定顯式指定:在指令字中明顯地指定。:在指令字中明顯地指定。 隱含指定隱含指定:由設(shè)計者用約定的方法指定。:由設(shè)計者用約定的方法指定。 指令操作碼均采用顯式指定。指令操作碼均采用顯式指定。 下一條指令的地址多采用隱含指定。下一條指令的地址多采用隱含指定。 信息的存儲結(jié)構(gòu)不同,指定的地址也不一樣,信息的存儲結(jié)構(gòu)不同,指定的地址也不一樣,地址的結(jié)構(gòu)也不同。地址的結(jié)構(gòu)也不同。2022-3-785.1.2 5.1.2 指令字的長度指令字的長度 指令字長度指令字長度:一個指令字所包含的二進(jìn)制信息的:一個指令字所包含的二進(jìn)制信

6、息的位數(shù)。位數(shù)。 定長指令字定長指令字:機(jī)器的指令系統(tǒng)中:機(jī)器的指令系統(tǒng)中各種指令字的長各種指令字的長度均為固定的度均為固定的。 可變長指令字可變長指令字:機(jī)器的指令系統(tǒng)中:機(jī)器的指令系統(tǒng)中各種指令字的各種指令字的長度隨指令的功能而異。長度隨指令的功能而異。 2022-3-79 定長指令字的指令長度固定,結(jié)構(gòu)簡單,指令定長指令字的指令長度固定,結(jié)構(gòu)簡單,指令譯碼時間短,有利于硬件控制系統(tǒng)的設(shè)計,但譯碼時間短,有利于硬件控制系統(tǒng)的設(shè)計,但定長指令字指令平均長度長、容易出現(xiàn)冗余碼定長指令字指令平均長度長、容易出現(xiàn)冗余碼點、指令不易擴(kuò)展。點、指令不易擴(kuò)展。 可變長指令字的指令長度不定,結(jié)構(gòu)靈活,能可

7、變長指令字的指令長度不定,結(jié)構(gòu)靈活,能充分利用指令的每一位,指令的充分利用指令的每一位,指令的碼點冗余少,碼點冗余少,平均指令長度短,易于擴(kuò)展。但平均指令長度短,易于擴(kuò)展。但可變長指令的可變長指令的指令格式不規(guī)整,取指令時可能需要多次訪存,指令格式不規(guī)整,取指令時可能需要多次訪存,導(dǎo)致不同指令的執(zhí)行時間不一致,硬件導(dǎo)致不同指令的執(zhí)行時間不一致,硬件控制系控制系統(tǒng)復(fù)雜。統(tǒng)復(fù)雜。 2022-3-710 在按字節(jié)編址的存儲器中,采用長度為字節(jié)的在按字節(jié)編址的存儲器中,采用長度為字節(jié)的整倍數(shù)的指令,可以充分利用存儲空間,增加整倍數(shù)的指令,可以充分利用存儲空間,增加內(nèi)存訪問的有效性。內(nèi)存訪問的有效性。

8、為了合理地安排存儲空間,并使指令能表達(dá)較為了合理地安排存儲空間,并使指令能表達(dá)較豐富的內(nèi)容,采用可變長指令將更加靈活有效。豐富的內(nèi)容,采用可變長指令將更加靈活有效。 單字長指令單字長指令:指令長度等于機(jī)器字長。:指令長度等于機(jī)器字長。 雙字長指令雙字長指令:指令長度等于兩個機(jī)器字長。:指令長度等于兩個機(jī)器字長。 還有更多倍字長的指令及半字長指令等。還有更多倍字長的指令及半字長指令等。 短指令占存儲空間少,有利于提高指令執(zhí)行速度,短指令占存儲空間少,有利于提高指令執(zhí)行速度,因此通常把最常用指令(如算術(shù)邏輯運(yùn)算指令、因此通常把最常用指令(如算術(shù)邏輯運(yùn)算指令、數(shù)據(jù)傳送指令等)設(shè)計成短指令格式。數(shù)據(jù)傳

9、送指令等)設(shè)計成短指令格式。2022-3-7115.1.3 5.1.3 指令的地址結(jié)構(gòu)指令的地址結(jié)構(gòu) CPUCPU可直接訪問的存儲結(jié)構(gòu)可直接訪問的存儲結(jié)構(gòu) 主存儲器:訪存時要給出存儲器單元地址主存儲器:訪存時要給出存儲器單元地址 CPUCPU寄存器:包括通用寄存器和專用寄存器。寄存器:包括通用寄存器和專用寄存器。 I/OI/O接口寄存器:包括數(shù)據(jù)寄存器和狀態(tài)寄接口寄存器:包括數(shù)據(jù)寄存器和狀態(tài)寄存器。存器。 堆棧。堆棧。2022-3-712 設(shè)計指令字的地址碼格式時需解決的主設(shè)計指令字的地址碼格式時需解決的主要問題:要問題: 一條指令中需要指明幾個地址;一條指令中需要指明幾個地址; 應(yīng)當(dāng)如何給出

10、地址;應(yīng)當(dāng)如何給出地址; 地址碼應(yīng)選多長。地址碼應(yīng)選多長。 2022-3-7131 1四地址指令四地址指令 四地址指令格式:四地址指令格式: A A1 1:第一源操作數(shù)的存儲器地址或寄存器地址。:第一源操作數(shù)的存儲器地址或寄存器地址。 A A2 2:第二源操作數(shù)的存儲器地址或寄存器地址。:第二源操作數(shù)的存儲器地址或寄存器地址。 A A3 3:存放操作結(jié)果的存儲器地址或寄存器地址。:存放操作結(jié)果的存儲器地址或寄存器地址。 A A4 4:指示下一條要執(zhí)行指令的地址。:指示下一條要執(zhí)行指令的地址。 四地址指令的功能:四地址指令的功能: (A(A1 1)OP(A)OP(A2 2)A)A3 3 A A4

11、 4指示下條指令地址指示下條指令地址OPOPA A1 1A A2 2A A3 3A A4 42022-3-714 四地址指令直觀明了,程序的執(zhí)行流向明確,四地址指令直觀明了,程序的執(zhí)行流向明確,不存在轉(zhuǎn)移指令。但指令長度太長,因此在實不存在轉(zhuǎn)移指令。但指令長度太長,因此在實際機(jī)器中基本不用。際機(jī)器中基本不用。2022-3-7152 2三地址指令三地址指令 程序在執(zhí)行過程中大多數(shù)情況是按指令序列依程序在執(zhí)行過程中大多數(shù)情況是按指令序列依次執(zhí)行的,只有在執(zhí)行轉(zhuǎn)移指令時,程序的執(zhí)次執(zhí)行的,只有在執(zhí)行轉(zhuǎn)移指令時,程序的執(zhí)行順序才被改變。為了壓縮指令長度,下一條行順序才被改變。為了壓縮指令長度,下一條指

12、令地址采用指令地址采用隱含隱含的方法給出。的方法給出。 通常用一個通常用一個程序計數(shù)器程序計數(shù)器 PC PC 來跟蹤程序的執(zhí)行來跟蹤程序的執(zhí)行并指示并指示將要執(zhí)行的指令地址將要執(zhí)行的指令地址。每執(zhí)行一條指令,。每執(zhí)行一條指令,PCPC自動增量,增量值取決于執(zhí)行指令的長度。自動增量,增量值取決于執(zhí)行指令的長度。 當(dāng)程序出現(xiàn)轉(zhuǎn)移時,用專門的轉(zhuǎn)移指令將轉(zhuǎn)移當(dāng)程序出現(xiàn)轉(zhuǎn)移時,用專門的轉(zhuǎn)移指令將轉(zhuǎn)移地址直接送入地址直接送入PCPC。 在三地址指令在三地址指令中不明顯地指示下條指令地址。中不明顯地指示下條指令地址。2022-3-716 三地址指令格式:三地址指令格式: A A1 1:第一源操作數(shù)的存儲器地

13、址或寄存器地址;:第一源操作數(shù)的存儲器地址或寄存器地址; A A2 2:第二源操作數(shù)的存儲器地址或寄存器地址;:第二源操作數(shù)的存儲器地址或寄存器地址; A A3 3:存放操作結(jié)果的存儲器地址或寄存器地址;:存放操作結(jié)果的存儲器地址或寄存器地址; 三地址指令功能為:三地址指令功能為: (A(A1 1)OP(A)OP(A2 2)A)A3 3; PC PC 指示下條指令地址指示下條指令地址OPOPA A1 1A A2 2A A3 32022-3-717 三地址指令編程方便,結(jié)果不影響運(yùn)算三地址指令編程方便,結(jié)果不影響運(yùn)算操作數(shù),但指令長度仍比較長,所以一操作數(shù),但指令長度仍比較長,所以一般在字長較長

14、的大、中型機(jī)中使用,而般在字長較長的大、中型機(jī)中使用,而微、小型機(jī)中很少使用三個地址均為存微、小型機(jī)中很少使用三個地址均為存儲器地址的三地址指令。儲器地址的三地址指令。2022-3-7183 3二地址指令二地址指令 二地址指令的格式為:二地址指令的格式為: A A1 1、A A2 2是操作數(shù)所在的存儲器地址或寄存器地址。是操作數(shù)所在的存儲器地址或寄存器地址。 二地址指令功能為:二地址指令功能為: (A(A1 1)OP(A)OP(A2 2)A)A1 1 或或 (A(A1 1)OP(A)OP(A2 2)A)A2 2 源地址源地址:僅提供操作數(shù)的地址:僅提供操作數(shù)的地址 目的地址目的地址:既提供一個

15、操作數(shù),又存放操作結(jié)果:既提供一個操作數(shù),又存放操作結(jié)果的地址的地址OPOPA A1 1A A2 22022-3-719二地址指令的意義二地址指令的意義 源地址中的操作數(shù)與目的地址中的操作源地址中的操作數(shù)與目的地址中的操作數(shù)進(jìn)行操作碼所規(guī)定的操作,結(jié)果存入數(shù)進(jìn)行操作碼所規(guī)定的操作,結(jié)果存入目的地址中。目的地址中。2022-3-720 存儲器存儲器存儲器型(存儲器型(S SS S型型)指令:)指令: A A1 1、A A2 2均為存儲器地址的二地址指令。均為存儲器地址的二地址指令。OPOPA A1 1A A2 2二地址指令的幾種形式二地址指令的幾種形式2022-3-721 寄存器寄存器寄存器型(

16、寄存器型(R RR R型型)指令:)指令: A A1 1、A A2 2均為寄存器地址的二地址指令。均為寄存器地址的二地址指令。OPOPR R1 1R R2 22022-3-722 寄存器寄存器存儲器型(存儲器型(R RS S型型)指令:)指令: A A1 1、A A2 2中一個是寄存器地址,另一個是存儲器中一個是寄存器地址,另一個是存儲器地址的二地址指令。也稱一個半地址指令。地址的二地址指令。也稱一個半地址指令。OPOPR Rn nA A2022-3-723 二地址指令的指令長度短,特別是二地址指令的指令長度短,特別是R RR R型指令,型指令,不需訪問存儲器取操作數(shù),指令執(zhí)行速度快,不需訪問

17、存儲器取操作數(shù),指令執(zhí)行速度快,因此是最常用的一種指令格式。尤其在因此是最常用的一種指令格式。尤其在RISCRISC結(jié)結(jié)構(gòu)機(jī)器中,所有運(yùn)算型指令均為構(gòu)機(jī)器中,所有運(yùn)算型指令均為R RR R型指令。型指令。 二地址指令執(zhí)行后,二地址指令執(zhí)行后,參加運(yùn)算的操作數(shù)被破壞參加運(yùn)算的操作數(shù)被破壞,若不希望被破壞,則需提前保護(hù)。若不希望被破壞,則需提前保護(hù)。2022-3-7244. 4. 一地址指令(單地址指令)一地址指令(單地址指令) 一地址指令也稱單地址指令,指令中只有一地址指令也稱單地址指令,指令中只有一個地址字段。一個地址字段。 一地址指令的格式為:一地址指令的格式為: A A可以是存儲器地址,也

18、可是寄存器地址。可以是存儲器地址,也可是寄存器地址。OPOPA A2022-3-725 一地址指令有兩種情況一地址指令有兩種情況 單操作數(shù)指令單操作數(shù)指令:如:如INCINC、DECDEC、NEGNEG等,等,只需一個操作數(shù),其功能為:只需一個操作數(shù),其功能為: OP(A)AOP(A)A 雙操作數(shù)指令雙操作數(shù)指令:另一個操作數(shù)通常采:另一個操作數(shù)通常采用隱含尋址的方法,將操作數(shù)隱含在約用隱含尋址的方法,將操作數(shù)隱含在約定的累加器定的累加器ACAC中,其指令功能為:中,其指令功能為: (AC)OP(A)AC(AC)OP(A)AC2022-3-726 一地址指令長度短,指令執(zhí)行速度快一地址指令長度

19、短,指令執(zhí)行速度快(若(若A A為存儲器地址,只需一次訪存取為存儲器地址,只需一次訪存取數(shù)),對于字長較短的微、小型機(jī),是數(shù)),對于字長較短的微、小型機(jī),是一種常用的指令格式。一種常用的指令格式。2022-3-7275 5零地址指令零地址指令 零地址指令中只有操作碼而無地址碼,其指令零地址指令中只有操作碼而無地址碼,其指令格式為;格式為; 零地址指令有兩種情況:零地址指令有兩種情況: 不需操作數(shù)的控制型指令,如不需操作數(shù)的控制型指令,如HALTHALT、WAITWAIT、NOPNOP等。等。 運(yùn)算型零地址指令:操作數(shù)隱含在堆棧中。運(yùn)算型零地址指令:操作數(shù)隱含在堆棧中。OPOP2022-3-72

20、85.1.4 5.1.4 指令的操作碼指令的操作碼 操作碼用于指明指令要完成的操作功能及其特操作碼用于指明指令要完成的操作功能及其特性。指令系統(tǒng)中的每一條指令都有一個唯一確性。指令系統(tǒng)中的每一條指令都有一個唯一確定的操作碼,用以指示指令的操作功能。不同定的操作碼,用以指示指令的操作功能。不同的指令具有不同的操作碼。的指令具有不同的操作碼。 為了能表示指令系統(tǒng)中的全部操作,指令字中為了能表示指令系統(tǒng)中的全部操作,指令字中必須有足夠長度的操作碼字段。假定指令系統(tǒng)必須有足夠長度的操作碼字段。假定指令系統(tǒng)中有中有 m m 種操作,則操作碼位數(shù)種操作,則操作碼位數(shù) n n 應(yīng)滿足:應(yīng)滿足: nlognl

21、og2 2m m 指令操作碼的編碼有定長編碼和變長編碼兩種。指令操作碼的編碼有定長編碼和變長編碼兩種。2022-3-729 定長編碼的指令操作碼定長編碼的指令操作碼:所有指令的操作碼長:所有指令的操作碼長度一致,位置固定。是一種簡單規(guī)整的編碼方度一致,位置固定。是一種簡單規(guī)整的編碼方法。法。 定長編碼操作碼的特點:定長編碼操作碼的特點: 位數(shù)和位置固定,指令譯碼簡單,有利于簡化位數(shù)和位置固定,指令譯碼簡單,有利于簡化硬件設(shè)計。硬件設(shè)計。 在字長較長的大、中型機(jī)以及超小型機(jī)中定長在字長較長的大、中型機(jī)以及超小型機(jī)中定長編碼的操作碼被廣泛采用,編碼的操作碼被廣泛采用, 例如:在例如:在IBM 36

22、0/370IBM 360/370機(jī)中,所有指令的操作機(jī)中,所有指令的操作碼均為碼均為8 8位,最多可指定位,最多可指定256256種操作。種操作。1)1)定長編碼定長編碼2022-3-730 變長編碼的指令操作碼變長編碼的指令操作碼:不同指令的操作碼長度:不同指令的操作碼長度不完全相同,操作碼的位數(shù)不固定,分散地放在不完全相同,操作碼的位數(shù)不固定,分散地放在指令字的不同位置上。指令字的不同位置上。 變長編碼變長編碼操作碼操作碼的特點:的特點: 可用較短的指令字長表示更多的操作類型,尋址可用較短的指令字長表示更多的操作類型,尋址較大的存儲空間。較大的存儲空間。 操作碼的位數(shù)不固定,且位置分散,增

23、加了指令操作碼的位數(shù)不固定,且位置分散,增加了指令譯碼與分析的難度,使硬件設(shè)計復(fù)雜化。譯碼與分析的難度,使硬件設(shè)計復(fù)雜化。 在早期的微、小型機(jī)中,由于指令字較短,均采在早期的微、小型機(jī)中,由于指令字較短,均采用變長編碼的指令操作碼。如用變長編碼的指令操作碼。如Intel 8086Intel 8086、PDPPDP一一1111等機(jī)器。等機(jī)器。2) 2) 變長編碼變長編碼2022-3-731擴(kuò)展操作碼的方法擴(kuò)展操作碼的方法 最常用的變長操作碼的編碼方式是擴(kuò)展操作碼最常用的變長操作碼的編碼方式是擴(kuò)展操作碼法。法。 擴(kuò)展操作碼法擴(kuò)展操作碼法:當(dāng)指令長度一定時,將操作數(shù):當(dāng)指令長度一定時,將操作數(shù)地址多

24、的指令選擇短的操作碼,操作數(shù)地址少地址多的指令選擇短的操作碼,操作數(shù)地址少的指令選擇較長操作碼。的指令選擇較長操作碼。 采用擴(kuò)展操作碼法即能充分地利用指令字的各采用擴(kuò)展操作碼法即能充分地利用指令字的各個字段,又能在不增加指令長度的情況下擴(kuò)展個字段,又能在不增加指令長度的情況下擴(kuò)展操作碼長度,使它能表示更多的指令。操作碼長度,使它能表示更多的指令。2022-3-732 例:設(shè)某機(jī)的指令長度為例:設(shè)某機(jī)的指令長度為1616位。操作碼為位。操作碼為4 4位,位,具有三個地址字段,每個地址字段長為具有三個地址字段,每個地址字段長為4 4位。其位。其指令格式為:指令格式為:15 1215 1211 81

25、1 87 47 43 03 0OPOPA A1 1A A2 2A A3 3 按照定長編碼的方法,按照定長編碼的方法,4 4位操作碼可表示位操作碼可表示1616條三條三地址指令。地址指令。 若指令系統(tǒng)中要求有若指令系統(tǒng)中要求有1515條三地址指令、條三地址指令、1515條二地條二地址指令、址指令、1515條一地址指令和條一地址指令和1616條零地址指令,共條零地址指令,共6161條指令。則需要采用條指令。則需要采用變長操作碼方式進(jìn)行編碼。變長操作碼方式進(jìn)行編碼。2022-3-733條條零零地地址址指指令令條條單單地地址址指指令令條條二二地地址址指指令令條條三三地地址址指指令令1615151511

26、11 1111 1111 11110000 1111 1111 1111xxxx 1110 1111 1111xxxx 0000 1111 1111xxxx xxxx 1110 1111xxxx xxxx 0000 1111xxxx xxxx xxxx 1110 xxxx xxxx xxxx 00002022-3-734 例例5.1 :設(shè)機(jī)器指令字長為:設(shè)機(jī)器指令字長為1616位,指令中地址字段位,指令中地址字段的長度為的長度為4 4位,共有位,共有1111條三地址指令,條三地址指令,7272條二地址條二地址指令,指令,6464條零地址指令。問最多還能規(guī)定多少條條零地址指令。問最多還能規(guī)定多少

27、條一地址指令?一地址指令? 解:三地址指令的地址字段共需解:三地址指令的地址字段共需1212位,所以可有位,所以可有4 4位操作碼,可規(guī)定位操作碼,可規(guī)定1616條三地址指令?,F(xiàn)有條三地址指令?,F(xiàn)有1111條三條三地址指令,所以還有地址指令,所以還有 161611115 5 個編碼用于二地個編碼用于二地址指令。址指令。 二地址指令的地址字段共需二地址指令的地址字段共需8 8位,可有位,可有8 8位操作碼,位操作碼,去掉三地址指令用掉的操作碼,可規(guī)定去掉三地址指令用掉的操作碼,可規(guī)定5 5161680 80 條二地址指令?,F(xiàn)有條二地址指令?,F(xiàn)有7272條二地址指令,條二地址指令,所以還有所以還有

28、808072728 8 個編碼用于一地址指令。個編碼用于一地址指令。2022-3-735 一地址指令的地址字段共需一地址指令的地址字段共需4 4位,可有位,可有1212位操位操作碼,去掉二、三地址指令用掉的操作碼,可作碼,去掉二、三地址指令用掉的操作碼,可規(guī)定規(guī)定 8 81616128 128 條單地址指令。條單地址指令。 由于要求有由于要求有6464條零地址指令,而條零地址指令,而4 4位操作碼只位操作碼只能提供能提供1616條指令,所以需要由單地址指令提供條指令,所以需要由單地址指令提供64/1664/164 4個操作碼編碼,因此還能規(guī)定個操作碼編碼,因此還能規(guī)定 1281284 4124

29、 124 條單地址指令。條單地址指令。2022-3-736條條零零地地址址指指令令條條單單地地址址指指令令條條二二地地址址指指令令條條三三地地址址指指令令6412472111111 1111 1111 1111 0000 1100 1111 1111xxxx 1011 1111 1111 xxxx 0000 1000 1111xxxx xxxx 0111 1111 xxxx xxxx 0000 1011xxxx xxxx xxxx 1010 xxxx xxxx xxxx 00002022-3-737 根據(jù)指令系統(tǒng)的要求,擴(kuò)展操作碼的組合方案根據(jù)指令系統(tǒng)的要求,擴(kuò)展操作碼的組合方案可以有很多種,

30、可以采用等長擴(kuò)展,也可采用可以有很多種,可以采用等長擴(kuò)展,也可采用不等長擴(kuò)展。不等長擴(kuò)展。 例如,例如,PDPPDP1111機(jī)的指令操作碼有機(jī)的指令操作碼有4 4、7 7、8 8、1010、1111和和1313位等不同的長度。位等不同的長度。 在進(jìn)行操作碼擴(kuò)展的過程中,必須注意的是:在進(jìn)行操作碼擴(kuò)展的過程中,必須注意的是: 不同指令的操作碼編碼一定不能重復(fù)。不同指令的操作碼編碼一定不能重復(fù)。 在設(shè)計不同長度的操作碼時,要盡量考慮安在設(shè)計不同長度的操作碼時,要盡量考慮安排指令排指令使用頻度高的指令使用短的操作碼,使使用頻度高的指令使用短的操作碼,使用頻度低的指令使用較長的操作碼。用頻度低的指令使

31、用較長的操作碼。 這樣可以縮短經(jīng)常使用的指令的譯碼時間,加這樣可以縮短經(jīng)常使用的指令的譯碼時間,加快系統(tǒng)整體的運(yùn)行速度??煜到y(tǒng)整體的運(yùn)行速度。 2022-3-7385.2 5.2 尋址方式尋址方式 尋址方式:形成本條指令的操作數(shù)地址尋址方式:形成本條指令的操作數(shù)地址和下一條要執(zhí)行指令的地址的方法。和下一條要執(zhí)行指令的地址的方法。 尋址分為尋址分為指令地址的尋址指令地址的尋址和和操作數(shù)地址操作數(shù)地址的尋址的尋址。2022-3-739指令的執(zhí)行過程指令的執(zhí)行過程ALUAPCMARMEMMDRRSIRIDPLA控制信號控制信號2022-3-740 1. 1. 順序方式順序方式: PCPC增量增量PC

32、PC 由于指令通常順序存放,所以當(dāng)程序順序由于指令通常順序存放,所以當(dāng)程序順序執(zhí)行時,可以采用執(zhí)行時,可以采用PCPC增量的方式形成下條增量的方式形成下條指令地址。即按照指令地址。即按照PCPC的內(nèi)容依次取指。增的內(nèi)容依次取指。增量的多少取決于一條指令所占的存儲單元量的多少取決于一條指令所占的存儲單元數(shù)。數(shù)。5.2.1 5.2.1 指令的尋址方式指令的尋址方式 2022-3-7412022-3-7422. 2. 跳越方式跳越方式 當(dāng)程序發(fā)生轉(zhuǎn)移時,修改當(dāng)程序發(fā)生轉(zhuǎn)移時,修改PCPC的內(nèi)容。的內(nèi)容。 當(dāng)程序需要轉(zhuǎn)移時,由轉(zhuǎn)移類指令產(chǎn)生當(dāng)程序需要轉(zhuǎn)移時,由轉(zhuǎn)移類指令產(chǎn)生轉(zhuǎn)移地址并送入轉(zhuǎn)移地址并送入

33、PCPC中。中。 轉(zhuǎn)移地址的形成有各種方法。轉(zhuǎn)移地址的形成有各種方法。2022-3-74362022-3-744 由于操作數(shù)的存放往往是隨機(jī)的,所以由于操作數(shù)的存放往往是隨機(jī)的,所以希望有多種方式產(chǎn)生操作數(shù)地址。另外希望有多種方式產(chǎn)生操作數(shù)地址。另外為了提高程序設(shè)計質(zhì)量,也希望能提供為了提高程序設(shè)計質(zhì)量,也希望能提供多種靈活的尋址方式。多種靈活的尋址方式。 因此,因此,尋址方式主要是指操作數(shù)地址的尋址方式主要是指操作數(shù)地址的尋址方式。尋址方式。操作數(shù)地址有多種尋址方式。操作數(shù)地址有多種尋址方式。5.2.2 5.2.2 操作數(shù)的尋址方式操作數(shù)的尋址方式 2022-3-745 形式地址形式地址:指

34、令中給出的地址。:指令中給出的地址。 由于有多種尋址方式,指令中地址字段給出的由于有多種尋址方式,指令中地址字段給出的地址,不一定是操作數(shù)的實際地址,稱為形式地址,不一定是操作數(shù)的實際地址,稱為形式地址。地址。 有效地址有效地址:形式地址經(jīng)過一定的運(yùn)算而得:形式地址經(jīng)過一定的運(yùn)算而得到的操作數(shù)的實際地址。到的操作數(shù)的實際地址。 有效地址是有效地址是CPUCPU實際訪問的主存單元的地址。實際訪問的主存單元的地址。 討論各種尋址方式的目的:討論各種尋址方式的目的: 確定由形式地址變換為有效地址的算法,并按確定由形式地址變換為有效地址的算法,并按照這些算法確定相應(yīng)的硬件結(jié)構(gòu),自動地實現(xiàn)照這些算法確定

35、相應(yīng)的硬件結(jié)構(gòu),自動地實現(xiàn)尋址。尋址。2022-3-746 設(shè)計尋址方式的要求:設(shè)計尋址方式的要求: 指令內(nèi)包含的地址盡可能短,以縮短指令長度。指令內(nèi)包含的地址盡可能短,以縮短指令長度。 能訪問盡可能大的存儲空間。能訪問盡可能大的存儲空間。 即能提供盡可能長的地址信息。根據(jù)程序所具有即能提供盡可能長的地址信息。根據(jù)程序所具有的局部性特性,大多數(shù)程序在一段時間內(nèi)都使用的局部性特性,大多數(shù)程序在一段時間內(nèi)都使用存儲器的一個小區(qū)域,所以,可以用短地址訪問存儲器的一個小區(qū)域,所以,可以用短地址訪問該區(qū)域內(nèi)的任一單元的。該區(qū)域內(nèi)的任一單元的。 希望地址能隱含在寄存器中。希望地址能隱含在寄存器中。 因為寄

36、存器地址比較短,而寄存器長度一般與機(jī)因為寄存器地址比較短,而寄存器長度一般與機(jī)器字長相同,在字長較長的機(jī)器中寄存器內(nèi)存器字長相同,在字長較長的機(jī)器中寄存器內(nèi)存放的地址可訪問很大的存儲空間,所以地址隱含放的地址可訪問很大的存儲空間,所以地址隱含在寄存器,可以減少指令長度。在寄存器,可以減少指令長度。2022-3-747 能在不改變指令的情況下改變地址的實際能在不改變指令的情況下改變地址的實際值。值。 即在數(shù)組、向量、線性表、字符串等數(shù)據(jù)結(jié)構(gòu)即在數(shù)組、向量、線性表、字符串等數(shù)據(jù)結(jié)構(gòu)的操作中,能夠?qū)崿F(xiàn)操作數(shù)地址的最大增減量。的操作中,能夠?qū)崿F(xiàn)操作數(shù)地址的最大增減量。 尋址方式盡可能簡單、規(guī)范,以便簡

37、化硬尋址方式盡可能簡單、規(guī)范,以便簡化硬件設(shè)計。件設(shè)計。2022-3-748常用尋址方式常用尋址方式 一地址指令格式一地址指令格式 MOD:尋址方式字段尋址方式字段 A:形式地址:形式地址 形式地址按相應(yīng)的尋址方式計算得到的操作數(shù)形式地址按相應(yīng)的尋址方式計算得到的操作數(shù)的有效地址記作的有效地址記作EA。 OPOP尋址方式尋址方式 MODMOD形式地址形式地址 A A2022-3-7491 1立即尋址立即尋址 立即尋址方式是指指令的地址碼部分給出的不是立即尋址方式是指指令的地址碼部分給出的不是操作數(shù)的地址而是操作數(shù)的地址而是操作數(shù)本身操作數(shù)本身。即指令所需的操。即指令所需的操作數(shù)由指令的形式地址

38、直接給出。作數(shù)由指令的形式地址直接給出。 采用立即尋址時,操作數(shù)采用立即尋址時,操作數(shù)DataData就是形式地址部分就是形式地址部分給出的內(nèi)容給出的內(nèi)容D D, D D也稱為也稱為立即數(shù)立即數(shù)。 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H ;將數(shù)據(jù);將數(shù)據(jù)2000H2000H存入存入 累加器累加器AXAX中中OPOP立即尋址立即尋址D DDataDataD D2022-3-750 立即尋址方式在取指令的同時操作數(shù)即被取出,立即尋址方式在取指令的同時操作數(shù)即被取出,不必再次訪問存儲器,提高了指令執(zhí)行速度。不必再次訪問存儲器,提

39、高了指令執(zhí)行速度。 由于指令字長有限,立即尋址方式使得操作數(shù)的由于指令字長有限,立即尋址方式使得操作數(shù)的范圍受到限制。范圍受到限制。 立即尋址方式通常用于給某一寄存器或存儲器單立即尋址方式通常用于給某一寄存器或存儲器單元賦予初值或提供一個常數(shù)。元賦予初值或提供一個常數(shù)。2022-3-7512.2.直接尋址直接尋址 直接尋址方式是指操作數(shù)的有效地址在指直接尋址方式是指操作數(shù)的有效地址在指令字中直接給出,指令的地址碼部分給出令字中直接給出,指令的地址碼部分給出的形式地址的形式地址A就是操作數(shù)的有效地址就是操作數(shù)的有效地址EA。 OP 直接尋址 A 操作數(shù) 主存 EA EAA 2022-3-752直

40、接尋址直接尋址2022-3-753 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H 將有效地址為將有效地址為2000H2000H的內(nèi)存單元的內(nèi)容讀的內(nèi)存單元的內(nèi)容讀入累加器入累加器AXAX中。中。2022-3-754 簡單直觀,不需要另外計算操作數(shù)地址,在指令簡單直觀,不需要另外計算操作數(shù)地址,在指令執(zhí)行階段只需訪問一次主存即可得到操作數(shù),便執(zhí)行階段只需訪問一次主存即可得到操作數(shù),便于硬件實現(xiàn)。于硬件實現(xiàn)。 隨著存儲器容量不斷擴(kuò)大,采用直接隨著存儲器容量不斷擴(kuò)大,采用直接尋址方式尋址方式尋尋址整個主存空間,將造成指令長度加長。址整

41、個主存空間,將造成指令長度加長。 采用直接尋址方式編程時,如果操作數(shù)地址發(fā)生采用直接尋址方式編程時,如果操作數(shù)地址發(fā)生變化,就必須修改指令中變化,就必須修改指令中A A的值,給編程帶來不便。的值,給編程帶來不便。 由于操作數(shù)地址在指令中給定,使程序和數(shù)據(jù)在由于操作數(shù)地址在指令中給定,使程序和數(shù)據(jù)在內(nèi)存中的存放位置受到限制。內(nèi)存中的存放位置受到限制。 直接尋址的特點直接尋址的特點2022-3-7553 3間接尋址間接尋址 間接尋址方式是指指令的地址碼部分給出的是間接尋址方式是指指令的地址碼部分給出的是操作數(shù)的有效地址操作數(shù)的有效地址EAEA所在的存儲單元的地址或所在的存儲單元的地址或是指示操作數(shù)

42、地址的地址指示字。即有效地址是指示操作數(shù)地址的地址指示字。即有效地址EAEA是由形式地址是由形式地址A A間接提供的。間接提供的。 間接尋址分為一級間接尋址和多級間接尋址。間接尋址分為一級間接尋址和多級間接尋址。2022-3-756 一級間接尋址一級間接尋址 指令的形式地址指令的形式地址A A給出的是給出的是EAEA所在的存儲單元所在的存儲單元的地址,這時存儲單元的地址,這時存儲單元A A中的內(nèi)容就是操作數(shù)中的內(nèi)容就是操作數(shù)的有效地址的有效地址EAEA。 EA(A) Data (A) OP 間接尋址 A A 主存 EA EA 操作數(shù) EA(A) 2022-3-757一級間接尋址一級間接尋址20

43、22-3-758 例:某計算機(jī)指令:例:某計算機(jī)指令: MOV ALMOV AL,2000H2000H E E(A)(A)(2000H)(2000H)3000H3000H DataData50H50H00H00H30H30H50H50H2000H2000H3000H3000H2001H2001H50H50HALAL2022-3-759 多級間接尋址多級間接尋址 指令的地址碼部分給出的是操作數(shù)地址的地址指令的地址碼部分給出的是操作數(shù)地址的地址指示字,即存儲單元指示字,即存儲單元A A中的內(nèi)容還不是有效地中的內(nèi)容還不是有效地址址EAEA,而是指向另一個存儲單元的地址或地址,而是指向另一個存儲單元的

44、地址或地址指示字。指示字。 在多級間址方式中,通常把地址字的高位作為在多級間址方式中,通常把地址字的高位作為標(biāo)志位,以指示該字是有效地址,還是地址指標(biāo)志位,以指示該字是有效地址,還是地址指示字。示字。 2022-3-760三級間址的尋址過程三級間址的尋址過程 地址指示字的高位地址指示字的高位為為1,表示該單元內(nèi),表示該單元內(nèi)容仍為地址指示字,容仍為地址指示字,需繼續(xù)訪存尋址。需繼續(xù)訪存尋址。 地址指示字的高位地址指示字的高位為為0,表示該單元內(nèi),表示該單元內(nèi)容即為操作數(shù)所在容即為操作數(shù)所在單元的有效地址單元的有效地址EA。 E(A) 1 A1 1 A2 0 EA 操作數(shù) OP 間接尋址 A A

45、 主存 A2 EA A1 EA(A) 2022-3-761三級間接尋址三級間接尋址2022-3-762 間接尋址比直接尋址靈活,可擴(kuò)大尋址范圍,間接尋址比直接尋址靈活,可擴(kuò)大尋址范圍,以短的地址碼訪問大的存儲空間。以短的地址碼訪問大的存儲空間。 如:指令字長與存儲器字長均為如:指令字長與存儲器字長均為1616位,指令中地位,指令中地址碼長為址碼長為1010位,其直接尋址范圍為位,其直接尋址范圍為1k1k空間;如果空間;如果用間接尋址,有效地址為用間接尋址,有效地址為1616位,其尋址空間為位,其尋址空間為64k64k,比直接尋址擴(kuò)大比直接尋址擴(kuò)大6464倍。倍。 采用間接尋址,當(dāng)操作數(shù)地址需要

46、改變時,可采用間接尋址,當(dāng)操作數(shù)地址需要改變時,可不必修改指令,只要修改地址指示字中內(nèi)容不必修改指令,只要修改地址指示字中內(nèi)容( (即存即存放有效地址的單元內(nèi)容放有效地址的單元內(nèi)容) )即可。即可。 間接尋址需多次訪存才能取得操作數(shù),尤其是間接尋址需多次訪存才能取得操作數(shù),尤其是多級間接尋址,因而降低了指令的執(zhí)行速度。多級間接尋址,因而降低了指令的執(zhí)行速度。 大多數(shù)計算機(jī)只允許一級間接尋址。在一些大型大多數(shù)計算機(jī)只允許一級間接尋址。在一些大型高速計算機(jī)中,很少采用間接尋址。高速計算機(jī)中,很少采用間接尋址。間接尋址的特點間接尋址的特點2022-3-7634 4寄存器直接尋址(寄存器尋址)寄存器直

47、接尋址(寄存器尋址) 寄存器直接尋址也稱寄存器尋址。寄存器直接尋寄存器直接尋址也稱寄存器尋址。寄存器直接尋址是指在指令地址碼中給出的是某一通用寄存器址是指在指令地址碼中給出的是某一通用寄存器的編號(也稱寄存器地址),該寄存器的內(nèi)容即的編號(也稱寄存器地址),該寄存器的內(nèi)容即為指令所需的操作數(shù)。采用寄存器尋址方式時,為指令所需的操作數(shù)。采用寄存器尋址方式時,有效地址有效地址EAEA是寄存器的編號。是寄存器的編號。 O P 寄 存 器 直 接 尋 址 Ri 操 作 數(shù) 寄 存 器 Ri E A Ri R0 R1 . . . . 2022-3-764 例:例: Intel 8086Intel 808

48、6指令:指令: MOV ALMOV AL,BL BL ; ALBLALBL,將寄存器將寄存器BLBL中的中的 內(nèi)容傳送到寄存器內(nèi)容傳送到寄存器ALAL中。中。 寄存器存取信息的速度比主存快,需要的地址寄存器存取信息的速度比主存快,需要的地址短,可壓縮指令長度,有利于加快指令執(zhí)行速短,可壓縮指令長度,有利于加快指令執(zhí)行速度。但寄存器的數(shù)量有限。度。但寄存器的數(shù)量有限。2022-3-7655. 5. 寄存器間接尋址寄存器間接尋址 寄存器間接尋址方式是指指令中地址碼部分所指寄存器間接尋址方式是指指令中地址碼部分所指定的寄存器中的內(nèi)容是操作數(shù)的有效地址。定的寄存器中的內(nèi)容是操作數(shù)的有效地址。 OP 寄

49、存器間接尋址 Ri EA 寄存器 Ri EA(Ri) R0 R1 . . . . 操作數(shù) 主存 EA 2022-3-766 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,BXBX 設(shè)設(shè) BXBX2000H2000H,(2000H)(2000H)80H80H,則,則 AL80HAL80H 由于寄存器間接尋址方式中,地址存放在寄存由于寄存器間接尋址方式中,地址存放在寄存器中,因此只需一次訪存即可取得操作數(shù),而器中,因此只需一次訪存即可取得操作數(shù),而且寄存器又能給出全字長的地址碼,可尋址較且寄存器又能給出全字長的地址碼,可尋址較大的存儲空間。大的存儲空間。2

50、022-3-7676 6變址尋址變址尋址 變址尋址方式是指操作數(shù)的有效地址是由指令變址尋址方式是指操作數(shù)的有效地址是由指令中指定的變址寄存器的內(nèi)容與指令字中的形式中指定的變址寄存器的內(nèi)容與指令字中的形式地址相加形成的。地址相加形成的。 變址寄存器變址寄存器R Rx x可以是專用寄存器,也可以是通可以是專用寄存器,也可以是通用寄存器中的某一個。用寄存器中的某一個。 OP 變址尋址 Rx A 操作數(shù) 主存 EAAX EAA(Rx) X Rx ALU 2022-3-768變址尋址變址尋址2022-3-769 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,SI

51、SI44 設(shè)設(shè) SISI2000H2000H,SISI4 42004H2004H (2004H)(2004H)82H82H,所以,所以 AL82HAL82H 在某些計算機(jī)中,變址寄存器還可以自動增量在某些計算機(jī)中,變址寄存器還可以自動增量或減量。每存取一個數(shù)據(jù),根據(jù)數(shù)據(jù)的長度,或減量。每存取一個數(shù)據(jù),根據(jù)數(shù)據(jù)的長度,變址寄存器的內(nèi)容自動增量或自動減量,前者變址寄存器的內(nèi)容自動增量或自動減量,前者稱為稱為自增型變址尋址自增型變址尋址;后者稱為;后者稱為自減型變址尋自減型變址尋址址。 也有資料稱為也有資料稱為自增型寄存器間接尋址和自減型自增型寄存器間接尋址和自減型寄存器間接尋址。寄存器間接尋址。2

52、022-3-770 例例5.8 VAX5.8 VAX1111指令:指令: MOV (RMOV (R1 1)+)+,R R0 0 MOV -(R MOV -(R1 1) ),R R0 0 (R(R1 1)+)+表示自增型變址尋址,寄存器表示自增型變址尋址,寄存器R R1 1中內(nèi)中內(nèi)容先作為源操作數(shù)地址,讀數(shù)后容先作為源操作數(shù)地址,讀數(shù)后R R1 1按操作數(shù)長按操作數(shù)長度增量。度增量。 設(shè)操作數(shù)字長為一個字節(jié),每次增量為設(shè)操作數(shù)字長為一個字節(jié),每次增量為1 1,若若R R1 11000H1000H,則指令執(zhí)行后,則指令執(zhí)行后,R R1 1自增加自增加1 1,R R1 11001H1001H。 -(

53、R-(R1 1) )表示自減型變址尋址,寄存器表示自減型變址尋址,寄存器R R1 1先按先按操作數(shù)長度減量后作為源操作數(shù)地址,并將減操作數(shù)長度減量后作為源操作數(shù)地址,并將減量結(jié)果送回量結(jié)果送回R R1 1。 設(shè)每次減量為設(shè)每次減量為1 1,R R1 11000H1000H,指令執(zhí)行時先將,指令執(zhí)行時先將R R1 1減減1 1,R R1 10FFFH0FFFH,然后將,然后將R R1 1的內(nèi)容作為有效的內(nèi)容作為有效地址訪問源操作數(shù)。地址訪問源操作數(shù)。2022-3-771 變址尋址可用于數(shù)組、向量、字符串等數(shù)據(jù)的變址尋址可用于數(shù)組、向量、字符串等數(shù)據(jù)的處理。處理。 例:例: Intel 8086指

54、令:指令: LODS ;AL(SI),SISI1SISIAAa0A1a1A2a2+1+12022-3-772 變址尋址還可以與間接尋址相結(jié)合,形成復(fù)合變址尋址還可以與間接尋址相結(jié)合,形成復(fù)合型尋址。型尋址。 先間址后變址先間址后變址 OP 間址加變址尋址 Rx A1 A2 操作數(shù) 主存 EAA2X EA(A)(Rx) X Rx ALU A1 2022-3-773先間址后變址先間址后變址2022-3-774 先變址后間址先變址后間址 EA 操作數(shù) 主存 EA EA(A(Rx) X Rx ALU A1X OP 變址加間址尋址 Rx A1 2022-3-775先變址后間址先變址后間址2022-3-7

55、767 7相對尋址相對尋址 相對尋址方式是將程序計數(shù)器相對尋址方式是將程序計數(shù)器 PC PC 的當(dāng)前內(nèi)容與的當(dāng)前內(nèi)容與指令中給出的形式地址相加形成操作數(shù)的有效地指令中給出的形式地址相加形成操作數(shù)的有效地址。址。 OP 相對尋址 Disp 主存 EA=K+1+Disp EA(PC)Disp K1 PC ALU OP 相對尋址 Disp 操作數(shù) K Disp . . . 指令 2022-3-777相對尋址相對尋址2022-3-778 PCPC當(dāng)前內(nèi)容當(dāng)前內(nèi)容一般為現(xiàn)行指令的下一單元的地址。一般為現(xiàn)行指令的下一單元的地址。 形式地址形式地址是操作數(shù)地址相對于是操作數(shù)地址相對于PCPC當(dāng)前內(nèi)容的一當(dāng)前

56、內(nèi)容的一個相對位移量(個相對位移量(DispDisp),),位移量可正可負(fù),一位移量可正可負(fù),一般用補(bǔ)碼表示般用補(bǔ)碼表示。 在相對尋址中,只要保持位移量不變,就可實在相對尋址中,只要保持位移量不變,就可實現(xiàn)指令帶著數(shù)據(jù)在存儲器中搬家,有利于實現(xiàn)現(xiàn)指令帶著數(shù)據(jù)在存儲器中搬家,有利于實現(xiàn)程序再定位。程序再定位。KOP OP 相對尋址相對尋址 5 5K+1K+2K+6操作數(shù)操作數(shù)MOP OP 相對尋址相對尋址 5 5M+1M+2M+6操作數(shù)操作數(shù)2022-3-779 相對尋址還經(jīng)常用于轉(zhuǎn)移指令中,以相對尋址還經(jīng)常用于轉(zhuǎn)移指令中,以PCPC內(nèi)容為內(nèi)容為基準(zhǔn),加上相對位移量形成轉(zhuǎn)移地址。例如基準(zhǔn),加上相

57、對位移量形成轉(zhuǎn)移地址。例如PDPPDP1111轉(zhuǎn)移指令格式為:轉(zhuǎn)移指令格式為: 其轉(zhuǎn)移地址為其轉(zhuǎn)移地址為(PC)(PC)2Disp2Disp。之所以加。之所以加 2Disp2Disp,是因為是因為PDPPDP一一1111是以字節(jié)為單位對主存進(jìn)行編是以字節(jié)為單位對主存進(jìn)行編址的,而址的,而DispDisp是相對于是相對于PCPC的字位移,一個字為的字位移,一個字為2 2個字節(jié)。個字節(jié)。15 815 87 07 0OPOPDispDisp2022-3-780 例例5.9 Intel 80865.9 Intel 8086的進(jìn)位為的進(jìn)位為0 0轉(zhuǎn)移指令轉(zhuǎn)移指令 JNC D JNC D 的功能為:如果進(jìn)

58、位為的功能為:如果進(jìn)位為0 0,則轉(zhuǎn)移到目標(biāo)地址為,則轉(zhuǎn)移到目標(biāo)地址為 (PC)(PC)D D處執(zhí)行。該指令為雙字節(jié)指令。設(shè)本條指處執(zhí)行。該指令為雙字節(jié)指令。設(shè)本條指令的地址為令的地址為1000H1000H。 設(shè)指令為設(shè)指令為JNC 03H:JNC 03H:如果進(jìn)位為如果進(jìn)位為0 0,則轉(zhuǎn)移到目標(biāo),則轉(zhuǎn)移到目標(biāo)地址為地址為(PC)(PC)03H03H處進(jìn)行執(zhí)行處進(jìn)行執(zhí)行本條指令取指后,本條指令取指后, PCPC1002H1002H轉(zhuǎn)移目標(biāo)地址為轉(zhuǎn)移目標(biāo)地址為 1002H1002H0003H0003H1005H1005H 設(shè)指令為設(shè)指令為JNC 0FDHJNC 0FDH則轉(zhuǎn)移目標(biāo)地址為則轉(zhuǎn)移目標(biāo)

59、地址為 1002H1002HFFFDHFFFDH0FFFH0FFFH0FFDH0FFDH0FFEH0FFEH0FFFH0FFFH1000H1000HJNCJNC1001H1001H03H03H1002H1002H1003H1003H1004H1004H1005H1005HDFDHD03H2022-3-7818 8基址尋址基址尋址 基址尋址方式是指操作數(shù)的有效地址等于指令中的基址尋址方式是指操作數(shù)的有效地址等于指令中的形式地址與基址寄存器中的內(nèi)容之和。基址寄存器形式地址與基址寄存器中的內(nèi)容之和。基址寄存器可以是一個專用的寄存器,也可以是由指令指定的可以是一個專用的寄存器,也可以是由指令指定的通用

60、寄存器,基址寄存器中的內(nèi)容稱為通用寄存器,基址寄存器中的內(nèi)容稱為基地址基地址。 OP 基址尋址 Rb Disp 主存 EA EA(Rb)Disp 操作數(shù) Base Rb ALU 2022-3-782基址尋址基址尋址2022-3-783 基址尋址主要用于將用戶程序的邏輯地址(用戶基址尋址主要用于將用戶程序的邏輯地址(用戶編寫程序時所使用的地址)轉(zhuǎn)換成主存的物理地編寫程序時所使用的地址)轉(zhuǎn)換成主存的物理地址(程序在主存中的實際地址),以便實現(xiàn)程序址(程序在主存中的實際地址),以便實現(xiàn)程序的再定位。的再定位。 在多道程序運(yùn)行時,系統(tǒng)的管理程序?qū)⒍嗟莱绦蛟诙嗟莱绦蜻\(yùn)行時,系統(tǒng)的管理程序?qū)⒍嗟莱绦蜓b入主

溫馨提示

  • 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

提交評論