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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

9、成短指令格式。數(shù)據(jù)傳送指令等)設(shè)計(jì)成短指令格式。2022-6-12115.1.3 5.1.3 指令的地址結(jié)構(gòu)指令的地址結(jié)構(gòu) CPUCPU可直接訪問(wèn)的存儲(chǔ)結(jié)構(gòu)可直接訪問(wèn)的存儲(chǔ)結(jié)構(gòu) 主存儲(chǔ)器:訪存時(shí)要給出存儲(chǔ)器單元地址主存儲(chǔ)器:訪存時(shí)要給出存儲(chǔ)器單元地址 CPUCPU寄存器:包括通用寄存器和專(zhuān)用寄存器。寄存器:包括通用寄存器和專(zhuān)用寄存器。 I/OI/O接口寄存器:包括數(shù)據(jù)寄存器和狀態(tài)寄接口寄存器:包括數(shù)據(jù)寄存器和狀態(tài)寄存器。存器。 堆棧。堆棧。2022-6-1212 設(shè)計(jì)指令字的地址碼格式時(shí)需解決的主設(shè)計(jì)指令字的地址碼格式時(shí)需解決的主要問(wèn)題:要問(wèn)題: 一條指令中需要指明幾個(gè)地址;一條指令中需要指明

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

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

12、變。為了壓縮指令長(zhǎng)度,下一條指令地址采用指令地址采用隱含隱含的方法給出。的方法給出。 通常用一個(gè)通常用一個(gè)程序計(jì)數(shù)器程序計(jì)數(shù)器 PC PC 來(lái)跟蹤程序的執(zhí)行來(lái)跟蹤程序的執(zhí)行并指示并指示將要執(zhí)行的指令地址將要執(zhí)行的指令地址。每執(zhí)行一條指令,。每執(zhí)行一條指令,PCPC自動(dòng)增量,增量值取決于執(zhí)行指令的長(zhǎng)度。自動(dòng)增量,增量值取決于執(zhí)行指令的長(zhǎng)度。 當(dāng)程序出現(xiàn)轉(zhuǎn)移時(shí),用專(zhuān)門(mén)的轉(zhuǎn)移指令將轉(zhuǎn)移當(dāng)程序出現(xiàn)轉(zhuǎn)移時(shí),用專(zhuān)門(mén)的轉(zhuǎn)移指令將轉(zhuǎn)移地址直接送入地址直接送入PCPC。 在三地址指令在三地址指令中不明顯地指示下條指令地址。中不明顯地指示下條指令地址。2022-6-1216 三地址指令格式:三地址指令格式: A

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

14、令長(zhǎng)度仍比較長(zhǎng),所以一般在字長(zhǎng)較長(zhǎng)的大、中型機(jī)中使用,而般在字長(zhǎng)較長(zhǎng)的大、中型機(jī)中使用,而微、小型機(jī)中很少使用三個(gè)地址均為存微、小型機(jī)中很少使用三個(gè)地址均為存儲(chǔ)器地址的三地址指令。儲(chǔ)器地址的三地址指令。2022-6-12183 3二地址指令二地址指令 二地址指令的格式為:二地址指令的格式為: A A1 1、A A2 2是操作數(shù)所在的存儲(chǔ)器地址或寄存器地址。是操作數(shù)所在的存儲(chǔ)器地址或寄存器地址。 二地址指令功能為:二地址指令功能為: (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、的地址 目的地址目的地址:既提供一個(gè)操作數(shù),又存放操作結(jié)果:既提供一個(gè)操作數(shù),又存放操作結(jié)果的地址的地址OPOPA A1 1A A2 22022-6-1219二地址指令的意義二地址指令的意義 源地址中的操作數(shù)與目的地址中的操作源地址中的操作數(shù)與目的地址中的操作數(shù)進(jìn)行操作碼所規(guī)定的操作,結(jié)果存入數(shù)進(jìn)行操作碼所規(guī)定的操作,結(jié)果存入目的地址中。目的地址中。2022-6-1220 存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器型(存儲(chǔ)器型(S SS S型型)指令:)指令: A A1 1、A A2 2均為存儲(chǔ)器地址的二地址指令。均為存儲(chǔ)器地址的二地址指令。OPOPA A1 1A A2 2二地址指令的幾種形式二地址指令的幾種形式20

16、22-6-1221 寄存器寄存器寄存器型(寄存器型(R RR R型型)指令:)指令: A A1 1、A A2 2均為寄存器地址的二地址指令。均為寄存器地址的二地址指令。OPOPR R1 1R R2 22022-6-1222 寄存器寄存器存儲(chǔ)器型(存儲(chǔ)器型(R RS S型型)指令:)指令: A A1 1、A A2 2中一個(gè)是寄存器地址,另一個(gè)是存儲(chǔ)器中一個(gè)是寄存器地址,另一個(gè)是存儲(chǔ)器地址的二地址指令。也稱(chēng)一個(gè)半地址指令。地址的二地址指令。也稱(chēng)一個(gè)半地址指令。OPOPR Rn nA A2022-6-1223 二地址指令的指令長(zhǎng)度短,特別是二地址指令的指令長(zhǎng)度短,特別是R RR R型指令,型指令,不

17、需訪問(wèn)存儲(chǔ)器取操作數(shù),指令執(zhí)行速度快,不需訪問(wèn)存儲(chǔ)器取操作數(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-6-12244. 4. 一地址指令(單地址指令)一地址指令(單地址指令) 一地址指令也稱(chēng)單地址指令,指令中只有一地址指令也稱(chēng)單地址指令,指令中只有一個(gè)地址字段。一個(gè)地址字段。 一地址指令的格式為:

18、一地址指令的格式為: A A可以是存儲(chǔ)器地址,也可是寄存器地址??梢允谴鎯?chǔ)器地址,也可是寄存器地址。OPOPA A2022-6-1225 一地址指令有兩種情況一地址指令有兩種情況 單操作數(shù)指令單操作數(shù)指令:如:如INCINC、DECDEC、NEGNEG等,等,只需一個(gè)操作數(shù),其功能為:只需一個(gè)操作數(shù),其功能為: OP(A)AOP(A)A 雙操作數(shù)指令雙操作數(shù)指令:另一個(gè)操作數(shù)通常采:另一個(gè)操作數(shù)通常采用隱含尋址的方法,將操作數(shù)隱含在約用隱含尋址的方法,將操作數(shù)隱含在約定的累加器定的累加器ACAC中,其指令功能為:中,其指令功能為: (AC)OP(A)AC(AC)OP(A)AC2022-6-12

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

20、址指令:操作數(shù)隱含在堆棧中。OPOP2022-6-12285.1.4 5.1.4 指令的操作碼指令的操作碼 操作碼用于指明指令要完成的操作功能及其特操作碼用于指明指令要完成的操作功能及其特性。指令系統(tǒng)中的每一條指令都有一個(gè)唯一確性。指令系統(tǒng)中的每一條指令都有一個(gè)唯一確定的操作碼,用以指示指令的操作功能。不同定的操作碼,用以指示指令的操作功能。不同的指令具有不同的操作碼。的指令具有不同的操作碼。 為了能表示指令系統(tǒng)中的全部操作,指令字中為了能表示指令系統(tǒng)中的全部操作,指令字中必須有足夠長(zhǎng)度的操作碼字段。假定指令系統(tǒng)必須有足夠長(zhǎng)度的操作碼字段。假定指令系統(tǒng)中有中有 m m 種操作,則操作碼位數(shù)種操

21、作,則操作碼位數(shù) n n 應(yīng)滿(mǎn)足:應(yīng)滿(mǎn)足: nlognlog2 2m m 指令操作碼的編碼有定長(zhǎng)編碼和變長(zhǎng)編碼兩種。指令操作碼的編碼有定長(zhǎng)編碼和變長(zhǎng)編碼兩種。2022-6-1229 定長(zhǎng)編碼的指令操作碼定長(zhǎng)編碼的指令操作碼:所有指令的操作碼長(zhǎng):所有指令的操作碼長(zhǎng)度一致,位置固定。是一種簡(jiǎn)單規(guī)整的編碼方度一致,位置固定。是一種簡(jiǎn)單規(guī)整的編碼方法。法。 定長(zhǎng)編碼操作碼的特點(diǎn):定長(zhǎng)編碼操作碼的特點(diǎn): 位數(shù)和位置固定,指令譯碼簡(jiǎn)單,有利于簡(jiǎn)化位數(shù)和位置固定,指令譯碼簡(jiǎn)單,有利于簡(jiǎn)化硬件設(shè)計(jì)。硬件設(shè)計(jì)。 在字長(zhǎng)較長(zhǎng)的大、中型機(jī)以及超小型機(jī)中定長(zhǎng)在字長(zhǎng)較長(zhǎng)的大、中型機(jī)以及超小型機(jī)中定長(zhǎng)編碼的操作碼被廣泛采

22、用,編碼的操作碼被廣泛采用, 例如:在例如:在IBM 360/370IBM 360/370機(jī)中,所有指令的操作機(jī)中,所有指令的操作碼均為碼均為8 8位,最多可指定位,最多可指定256256種操作。種操作。1)1)定長(zhǎng)編碼定長(zhǎng)編碼2022-6-1230 變長(zhǎng)編碼的指令操作碼變長(zhǎng)編碼的指令操作碼:不同指令的操作碼長(zhǎng)度:不同指令的操作碼長(zhǎng)度不完全相同,操作碼的位數(shù)不固定,分散地放在不完全相同,操作碼的位數(shù)不固定,分散地放在指令字的不同位置上。指令字的不同位置上。 變長(zhǎng)編碼變長(zhǎng)編碼操作碼操作碼的特點(diǎn):的特點(diǎn): 可用較短的指令字長(zhǎng)表示更多的操作類(lèi)型,尋址可用較短的指令字長(zhǎng)表示更多的操作類(lèi)型,尋址較大的存

23、儲(chǔ)空間。較大的存儲(chǔ)空間。 操作碼的位數(shù)不固定,且位置分散,增加了指令操作碼的位數(shù)不固定,且位置分散,增加了指令譯碼與分析的難度,使硬件設(shè)計(jì)復(fù)雜化。譯碼與分析的難度,使硬件設(shè)計(jì)復(fù)雜化。 在早期的微、小型機(jī)中,由于指令字較短,均采在早期的微、小型機(jī)中,由于指令字較短,均采用變長(zhǎng)編碼的指令操作碼。如用變長(zhǎng)編碼的指令操作碼。如Intel 8086Intel 8086、PDPPDP一一1111等機(jī)器。等機(jī)器。2) 2) 變長(zhǎng)編碼變長(zhǎng)編碼2022-6-1231擴(kuò)展操作碼的方法擴(kuò)展操作碼的方法 最常用的變長(zhǎng)操作碼的編碼方式是擴(kuò)展操作碼最常用的變長(zhǎng)操作碼的編碼方式是擴(kuò)展操作碼法。法。 擴(kuò)展操作碼法擴(kuò)展操作碼法

24、:當(dāng)指令長(zhǎng)度一定時(shí),將操作數(shù):當(dāng)指令長(zhǎng)度一定時(shí),將操作數(shù)地址多的指令選擇短的操作碼,操作數(shù)地址少地址多的指令選擇短的操作碼,操作數(shù)地址少的指令選擇較長(zhǎng)操作碼。的指令選擇較長(zhǎng)操作碼。 采用擴(kuò)展操作碼法即能充分地利用指令字的各采用擴(kuò)展操作碼法即能充分地利用指令字的各個(gè)字段,又能在不增加指令長(zhǎng)度的情況下擴(kuò)展個(gè)字段,又能在不增加指令長(zhǎng)度的情況下擴(kuò)展操作碼長(zhǎng)度,使它能表示更多的指令。操作碼長(zhǎng)度,使它能表示更多的指令。2022-6-1232 例:設(shè)某機(jī)的指令長(zhǎng)度為例:設(shè)某機(jī)的指令長(zhǎng)度為1616位。操作碼為位。操作碼為4 4位,位,具有三個(gè)地址字段,每個(gè)地址字段長(zhǎng)為具有三個(gè)地址字段,每個(gè)地址字段長(zhǎng)為4 4位

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

26、條二二地地址址指指令令條條三三地地址址指指令令161515151111 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-6-1234 例例5.1 :設(shè)機(jī)器指令字長(zhǎng)為:設(shè)機(jī)器指令字長(zhǎng)為1616位,指令中地址字段位,指令中地址字段的長(zhǎng)度為的長(zhǎng)度為4 4位,共有位,共有1111條三地址指令,條三地址指令,7272條二地址條二地址指令,指令,646

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

28、二地址指令?,F(xiàn)有7272條二地址指令,條二地址指令,所以還有所以還有808072728 8 個(gè)編碼用于一地址指令。個(gè)編碼用于一地址指令。2022-6-1235 一地址指令的地址字段共需一地址指令的地址字段共需4 4位,可有位,可有1212位操位操作碼,去掉二、三地址指令用掉的操作碼,可作碼,去掉二、三地址指令用掉的操作碼,可規(guī)定規(guī)定 8 81616128 128 條單地址指令。條單地址指令。 由于要求有由于要求有6464條零地址指令,而條零地址指令,而4 4位操作碼只位操作碼只能提供能提供1616條指令,所以需要由單地址指令提供條指令,所以需要由單地址指令提供64/1664/164 4個(gè)操作碼

29、編碼,因此還能規(guī)定個(gè)操作碼編碼,因此還能規(guī)定 1281284 4124 124 條單地址指令。條單地址指令。2022-6-1236條條零零地地址址指指令令條條單單地地址址指指令令條條二二地地址址指指令令條條三三地地址址指指令令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-6-1237 根據(jù)指令系統(tǒng)的要求,

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

31、高的指令使用短的操作碼,使用頻度低的指令使用較長(zhǎng)的操作碼。用頻度低的指令使用較長(zhǎng)的操作碼。 這樣可以縮短經(jīng)常使用的指令的譯碼時(shí)間,加這樣可以縮短經(jīng)常使用的指令的譯碼時(shí)間,加快系統(tǒng)整體的運(yùn)行速度??煜到y(tǒng)整體的運(yùn)行速度。 2022-6-12385.2 5.2 尋址方式尋址方式 尋址方式:形成本條指令的操作數(shù)地址尋址方式:形成本條指令的操作數(shù)地址和下一條要執(zhí)行指令的地址的方法。和下一條要執(zhí)行指令的地址的方法。 尋址分為尋址分為指令地址的尋址指令地址的尋址和和操作數(shù)地址操作數(shù)地址的尋址的尋址。2022-6-1239指令的執(zhí)行過(guò)程指令的執(zhí)行過(guò)程ALUAPCMARMEMMDRRSIRIDPLA控制信號(hào)控制

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

33、移時(shí),由轉(zhuǎn)移類(lèi)指令產(chǎn)生當(dāng)程序需要轉(zhuǎn)移時(shí),由轉(zhuǎn)移類(lèi)指令產(chǎn)生轉(zhuǎn)移地址并送入轉(zhuǎn)移地址并送入PCPC中。中。 轉(zhuǎn)移地址的形成有各種方法。轉(zhuǎn)移地址的形成有各種方法。2022-6-124362022-6-1244 由于操作數(shù)的存放往往是隨機(jī)的,所以由于操作數(shù)的存放往往是隨機(jī)的,所以希望有多種方式產(chǎn)生操作數(shù)地址。另外希望有多種方式產(chǎn)生操作數(shù)地址。另外為了提高程序設(shè)計(jì)質(zhì)量,也希望能提供為了提高程序設(shè)計(jì)質(zhì)量,也希望能提供多種靈活的尋址方式。多種靈活的尋址方式。 因此,因此,尋址方式主要是指操作數(shù)地址的尋址方式主要是指操作數(shù)地址的尋址方式。尋址方式。操作數(shù)地址有多種尋址方式。操作數(shù)地址有多種尋址方式。5.2.2

34、5.2.2 操作數(shù)的尋址方式操作數(shù)的尋址方式 2022-6-1245 形式地址形式地址:指令中給出的地址。:指令中給出的地址。 由于有多種尋址方式,指令中地址字段給出的由于有多種尋址方式,指令中地址字段給出的地址,不一定是操作數(shù)的實(shí)際地址,稱(chēng)為形式地址,不一定是操作數(shù)的實(shí)際地址,稱(chēng)為形式地址。地址。 有效地址有效地址:形式地址經(jīng)過(guò)一定的運(yùn)算而得:形式地址經(jīng)過(guò)一定的運(yùn)算而得到的操作數(shù)的實(shí)際地址。到的操作數(shù)的實(shí)際地址。 有效地址是有效地址是CPUCPU實(shí)際訪問(wèn)的主存單元的地址。實(shí)際訪問(wèn)的主存單元的地址。 討論各種尋址方式的目的:討論各種尋址方式的目的: 確定由形式地址變換為有效地址的算法,并按確定

35、由形式地址變換為有效地址的算法,并按照這些算法確定相應(yīng)的硬件結(jié)構(gòu),自動(dòng)地實(shí)現(xiàn)照這些算法確定相應(yīng)的硬件結(jié)構(gòu),自動(dòng)地實(shí)現(xiàn)尋址。尋址。2022-6-1246 設(shè)計(jì)尋址方式的要求:設(shè)計(jì)尋址方式的要求: 指令內(nèi)包含的地址盡可能短,以縮短指令長(zhǎng)度。指令內(nèi)包含的地址盡可能短,以縮短指令長(zhǎng)度。 能訪問(wèn)盡可能大的存儲(chǔ)空間。能訪問(wèn)盡可能大的存儲(chǔ)空間。 即能提供盡可能長(zhǎng)的地址信息。根據(jù)程序所具有即能提供盡可能長(zhǎng)的地址信息。根據(jù)程序所具有的局部性特性,大多數(shù)程序在一段時(shí)間內(nèi)都使用的局部性特性,大多數(shù)程序在一段時(shí)間內(nèi)都使用存儲(chǔ)器的一個(gè)小區(qū)域,所以,可以用短地址訪問(wèn)存儲(chǔ)器的一個(gè)小區(qū)域,所以,可以用短地址訪問(wèn)該區(qū)域內(nèi)的任一

36、單元的。該區(qū)域內(nèi)的任一單元的。 希望地址能隱含在寄存器中。希望地址能隱含在寄存器中。 因?yàn)榧拇嫫鞯刂繁容^短,而寄存器長(zhǎng)度一般與機(jī)因?yàn)榧拇嫫鞯刂繁容^短,而寄存器長(zhǎng)度一般與機(jī)器字長(zhǎng)相同,在字長(zhǎng)較長(zhǎng)的機(jī)器中寄存器內(nèi)存器字長(zhǎng)相同,在字長(zhǎng)較長(zhǎng)的機(jī)器中寄存器內(nèi)存放的地址可訪問(wèn)很大的存儲(chǔ)空間,所以地址隱含放的地址可訪問(wèn)很大的存儲(chǔ)空間,所以地址隱含在寄存器,可以減少指令長(zhǎng)度。在寄存器,可以減少指令長(zhǎng)度。2022-6-1247 能在不改變指令的情況下改變地址的實(shí)際能在不改變指令的情況下改變地址的實(shí)際值。值。 即在數(shù)組、向量、線(xiàn)性表、字符串等數(shù)據(jù)結(jié)構(gòu)即在數(shù)組、向量、線(xiàn)性表、字符串等數(shù)據(jù)結(jié)構(gòu)的操作中,能夠?qū)崿F(xiàn)操作數(shù)

37、地址的最大增減量。的操作中,能夠?qū)崿F(xiàn)操作數(shù)地址的最大增減量。 尋址方式盡可能簡(jiǎn)單、規(guī)范,以便簡(jiǎn)化硬尋址方式盡可能簡(jiǎn)單、規(guī)范,以便簡(jiǎn)化硬件設(shè)計(jì)。件設(shè)計(jì)。2022-6-1248常用尋址方式常用尋址方式 一地址指令格式一地址指令格式 MOD:尋址方式字段尋址方式字段 A:形式地址:形式地址 形式地址按相應(yīng)的尋址方式計(jì)算得到的操作數(shù)形式地址按相應(yīng)的尋址方式計(jì)算得到的操作數(shù)的有效地址記作的有效地址記作EA。 OPOP尋址方式尋址方式 MODMOD形式地址形式地址 A A2022-6-12491 1立即尋址立即尋址 立即尋址方式是指指令的地址碼部分給出的不是立即尋址方式是指指令的地址碼部分給出的不是操作數(shù)

38、的地址而是操作數(shù)的地址而是操作數(shù)本身操作數(shù)本身。即指令所需的操。即指令所需的操作數(shù)由指令的形式地址直接給出。作數(shù)由指令的形式地址直接給出。 采用立即尋址時(shí),操作數(shù)采用立即尋址時(shí),操作數(shù)DataData就是形式地址部分就是形式地址部分給出的內(nèi)容給出的內(nèi)容D D, D D也稱(chēng)為也稱(chēng)為立即數(shù)立即數(shù)。 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H ;將數(shù)據(jù);將數(shù)據(jù)2000H2000H存入存入 累加器累加器AXAX中中OPOP立即尋址立即尋址D DDataDataD D2022-6-1250 立即尋址方式在取指令的同時(shí)操作數(shù)即被取出,立即

39、尋址方式在取指令的同時(shí)操作數(shù)即被取出,不必再次訪問(wèn)存儲(chǔ)器,提高了指令執(zhí)行速度。不必再次訪問(wèn)存儲(chǔ)器,提高了指令執(zhí)行速度。 由于指令字長(zhǎng)有限,立即尋址方式使得操作數(shù)的由于指令字長(zhǎng)有限,立即尋址方式使得操作數(shù)的范圍受到限制。范圍受到限制。 立即尋址方式通常用于給某一寄存器或存儲(chǔ)器單立即尋址方式通常用于給某一寄存器或存儲(chǔ)器單元賦予初值或提供一個(gè)常數(shù)。元賦予初值或提供一個(gè)常數(shù)。2022-6-12512.2.直接尋址直接尋址 直接尋址方式是指操作數(shù)的有效地址在指直接尋址方式是指操作數(shù)的有效地址在指令字中直接給出,指令的地址碼部分給出令字中直接給出,指令的地址碼部分給出的形式地址的形式地址A就是操作數(shù)的有效

40、地址就是操作數(shù)的有效地址EA。 OP 直接尋址 A 操作數(shù) 主存 EA EAA 2022-6-1252直接尋址直接尋址2022-6-1253 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H 將有效地址為將有效地址為2000H2000H的內(nèi)存單元的內(nèi)容讀的內(nèi)存單元的內(nèi)容讀入累加器入累加器AXAX中。中。2022-6-1254 簡(jiǎn)單直觀,不需要另外計(jì)算操作數(shù)地址,在指令簡(jiǎn)單直觀,不需要另外計(jì)算操作數(shù)地址,在指令執(zhí)行階段只需訪問(wèn)一次主存即可得到操作數(shù),便執(zhí)行階段只需訪問(wèn)一次主存即可得到操作數(shù),便于硬件實(shí)現(xiàn)。于硬件實(shí)現(xiàn)。 隨著存儲(chǔ)器容量不

41、斷擴(kuò)大,采用直接隨著存儲(chǔ)器容量不斷擴(kuò)大,采用直接尋址方式尋址方式尋尋址整個(gè)主存空間,將造成指令長(zhǎng)度加長(zhǎng)。址整個(gè)主存空間,將造成指令長(zhǎng)度加長(zhǎng)。 采用直接尋址方式編程時(shí),如果操作數(shù)地址發(fā)生采用直接尋址方式編程時(shí),如果操作數(shù)地址發(fā)生變化,就必須修改指令中變化,就必須修改指令中A A的值,給編程帶來(lái)不便。的值,給編程帶來(lái)不便。 由于操作數(shù)地址在指令中給定,使程序和數(shù)據(jù)在由于操作數(shù)地址在指令中給定,使程序和數(shù)據(jù)在內(nèi)存中的存放位置受到限制。內(nèi)存中的存放位置受到限制。 直接尋址的特點(diǎn)直接尋址的特點(diǎn)2022-6-12553 3間接尋址間接尋址 間接尋址方式是指指令的地址碼部分給出的是間接尋址方式是指指令的地址

42、碼部分給出的是操作數(shù)的有效地址操作數(shù)的有效地址EAEA所在的存儲(chǔ)單元的地址或所在的存儲(chǔ)單元的地址或是指示操作數(shù)地址的地址指示字。即有效地址是指示操作數(shù)地址的地址指示字。即有效地址EAEA是由形式地址是由形式地址A A間接提供的。間接提供的。 間接尋址分為一級(jí)間接尋址和多級(jí)間接尋址。間接尋址分為一級(jí)間接尋址和多級(jí)間接尋址。2022-6-1256 一級(jí)間接尋址一級(jí)間接尋址 指令的形式地址指令的形式地址A A給出的是給出的是EAEA所在的存儲(chǔ)單元所在的存儲(chǔ)單元的地址,這時(shí)存儲(chǔ)單元的地址,這時(shí)存儲(chǔ)單元A A中的內(nèi)容就是操作數(shù)中的內(nèi)容就是操作數(shù)的有效地址的有效地址EAEA。 EA(A) Data (A)

43、 OP 間接尋址 A A 主存 EA EA 操作數(shù) EA(A) 2022-6-1257一級(jí)間接尋址一級(jí)間接尋址2022-6-1258 例:某計(jì)算機(jī)指令:例:某計(jì)算機(jī)指令: MOV ALMOV AL,2000H2000H E E(A)(A)(2000H)(2000H)3000H3000H DataData50H50H00H00H30H30H50H50H2000H2000H3000H3000H2001H2001H50H50HALAL2022-6-1259 多級(jí)間接尋址多級(jí)間接尋址 指令的地址碼部分給出的是操作數(shù)地址的地址指令的地址碼部分給出的是操作數(shù)地址的地址指示字,即存儲(chǔ)單元指示字,即存儲(chǔ)單元A

44、 A中的內(nèi)容還不是有效地中的內(nèi)容還不是有效地址址EAEA,而是指向另一個(gè)存儲(chǔ)單元的地址或地址,而是指向另一個(gè)存儲(chǔ)單元的地址或地址指示字。指示字。 在多級(jí)間址方式中,通常把地址字的高位作為在多級(jí)間址方式中,通常把地址字的高位作為標(biāo)志位,以指示該字是有效地址,還是地址指標(biāo)志位,以指示該字是有效地址,還是地址指示字。示字。 2022-6-1260三級(jí)間址的尋址過(guò)程三級(jí)間址的尋址過(guò)程 地址指示字的高位地址指示字的高位為為1,表示該單元內(nèi),表示該單元內(nèi)容仍為地址指示字,容仍為地址指示字,需繼續(xù)訪存尋址。需繼續(xù)訪存尋址。 地址指示字的高位地址指示字的高位為為0,表示該單元內(nèi),表示該單元內(nèi)容即為操作數(shù)所在容

45、即為操作數(shù)所在單元的有效地址單元的有效地址EA。 E(A) 1 A1 1 A2 0 EA 操作數(shù) OP 間接尋址 A A 主存 A2 EA A1 EA(A) 2022-6-1261三級(jí)間接尋址三級(jí)間接尋址2022-6-1262 間接尋址比直接尋址靈活,可擴(kuò)大尋址范圍,間接尋址比直接尋址靈活,可擴(kuò)大尋址范圍,以短的地址碼訪問(wèn)大的存儲(chǔ)空間。以短的地址碼訪問(wèn)大的存儲(chǔ)空間。 如:指令字長(zhǎng)與存儲(chǔ)器字長(zhǎng)均為如:指令字長(zhǎng)與存儲(chǔ)器字長(zhǎng)均為1616位,指令中地位,指令中地址碼長(zhǎng)為址碼長(zhǎng)為1010位,其直接尋址范圍為位,其直接尋址范圍為1k1k空間;如果空間;如果用間接尋址,有效地址為用間接尋址,有效地址為161

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

47、。高速計(jì)算機(jī)中,很少采用間接尋址。間接尋址的特點(diǎn)間接尋址的特點(diǎn)2022-6-12634 4寄存器直接尋址(寄存器尋址)寄存器直接尋址(寄存器尋址) 寄存器直接尋址也稱(chēng)寄存器尋址。寄存器直接尋寄存器直接尋址也稱(chēng)寄存器尋址。寄存器直接尋址是指在指令地址碼中給出的是某一通用寄存器址是指在指令地址碼中給出的是某一通用寄存器的編號(hào)(也稱(chēng)寄存器地址),該寄存器的內(nèi)容即的編號(hào)(也稱(chēng)寄存器地址),該寄存器的內(nèi)容即為指令所需的操作數(shù)。采用寄存器尋址方式時(shí),為指令所需的操作數(shù)。采用寄存器尋址方式時(shí),有效地址有效地址EAEA是寄存器的編號(hào)。是寄存器的編號(hào)。 O P 寄 存 器 直 接 尋 址 Ri 操 作 數(shù) 寄

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

49、指寄存器間接尋址方式是指指令中地址碼部分所指定的寄存器中的內(nèi)容是操作數(shù)的有效地址。定的寄存器中的內(nèi)容是操作數(shù)的有效地址。 OP 寄存器間接尋址 Ri EA 寄存器 Ri EA(Ri) R0 R1 . . . . 操作數(shù) 主存 EA 2022-6-1266 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,BXBX 設(shè)設(shè) BXBX2000H2000H,(2000H)(2000H)80H80H,則,則 AL80HAL80H 由于寄存器間接尋址方式中,地址存放在寄存由于寄存器間接尋址方式中,地址存放在寄存器中,因此只需一次訪存即可取得操作數(shù),而器中,因此只需一次

50、訪存即可取得操作數(shù),而且寄存器又能給出全字長(zhǎng)的地址碼,可尋址較且寄存器又能給出全字長(zhǎng)的地址碼,可尋址較大的存儲(chǔ)空間。大的存儲(chǔ)空間。2022-6-12676 6變址尋址變址尋址 變址尋址方式是指操作數(shù)的有效地址是由指令變址尋址方式是指操作數(shù)的有效地址是由指令中指定的變址寄存器的內(nèi)容與指令字中的形式中指定的變址寄存器的內(nèi)容與指令字中的形式地址相加形成的。地址相加形成的。 變址寄存器變址寄存器R Rx x可以是專(zhuān)用寄存器,也可以是通可以是專(zhuān)用寄存器,也可以是通用寄存器中的某一個(gè)。用寄存器中的某一個(gè)。 OP 變址尋址 Rx A 操作數(shù) 主存 EAAX EAA(Rx) X Rx ALU 2022-6-1

51、268變址尋址變址尋址2022-6-1269 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,SISI44 設(shè)設(shè) SISI2000H2000H,SISI4 42004H2004H (2004H)(2004H)82H82H,所以,所以 AL82HAL82H 在某些計(jì)算機(jī)中,變址寄存器還可以自動(dòng)增量在某些計(jì)算機(jī)中,變址寄存器還可以自動(dòng)增量或減量。每存取一個(gè)數(shù)據(jù),根據(jù)數(shù)據(jù)的長(zhǎng)度,或減量。每存取一個(gè)數(shù)據(jù),根據(jù)數(shù)據(jù)的長(zhǎng)度,變址寄存器的內(nèi)容自動(dòng)增量或自動(dòng)減量,前者變址寄存器的內(nèi)容自動(dòng)增量或自動(dòng)減量,前者稱(chēng)為稱(chēng)為自增型變址尋址自增型變址尋址;后者稱(chēng)為;后者稱(chēng)為自減型變

52、址尋自減型變址尋址址。 也有資料稱(chēng)為也有資料稱(chēng)為自增型寄存器間接尋址和自減型自增型寄存器間接尋址和自減型寄存器間接尋址。寄存器間接尋址。2022-6-1270 例例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ù)長(zhǎng)按操作數(shù)長(zhǎng)度增量。度增量。 設(shè)操作數(shù)字長(zhǎng)為一個(gè)字節(jié),每次增量為設(shè)操作數(shù)字長(zhǎng)為一個(gè)字節(jié),每次增量為1 1

53、,若若R R1 11000H1000H,則指令執(zhí)行后,則指令執(zhí)行后,R R1 1自增加自增加1 1,R R1 11001H1001H。 -(R-(R1 1) )表示自減型變址尋址,寄存器表示自減型變址尋址,寄存器R R1 1先按先按操作數(shù)長(zhǎng)度減量后作為源操作數(shù)地址,并將減操作數(shù)長(zhǎng)度減量后作為源操作數(shù)地址,并將減量結(jié)果送回量結(jié)果送回R R1 1。 設(shè)每次減量為設(shè)每次減量為1 1,R R1 11000H1000H,指令執(zhí)行時(shí)先將,指令執(zhí)行時(shí)先將R R1 1減減1 1,R R1 10FFFH0FFFH,然后將,然后將R R1 1的內(nèi)容作為有效的內(nèi)容作為有效地址訪問(wèn)源操作數(shù)。地址訪問(wèn)源操作數(shù)。2022

54、-6-1271 變址尋址可用于數(shù)組、向量、字符串等數(shù)據(jù)的變址尋址可用于數(shù)組、向量、字符串等數(shù)據(jù)的處理。處理。 例:例: Intel 8086指令:指令: LODS ;AL(SI),SISI1SISIAAa0A1a1A2a2+1+12022-6-1272 變址尋址還可以與間接尋址相結(jié)合,形成復(fù)合變址尋址還可以與間接尋址相結(jié)合,形成復(fù)合型尋址。型尋址。 先間址后變址先間址后變址 OP 間址加變址尋址 Rx A1 A2 操作數(shù) 主存 EAA2X EA(A)(Rx) X Rx ALU A1 2022-6-1273先間址后變址先間址后變址2022-6-1274 先變址后間址先變址后間址 EA 操作數(shù) 主

55、存 EA EA(A(Rx) X Rx ALU A1X OP 變址加間址尋址 Rx A1 2022-6-1275先變址后間址先變址后間址2022-6-12767 7相對(duì)尋址相對(duì)尋址 相對(duì)尋址方式是將程序計(jì)數(shù)器相對(duì)尋址方式是將程序計(jì)數(shù)器 PC PC 的當(dāng)前內(nèi)容與的當(dāng)前內(nèi)容與指令中給出的形式地址相加形成操作數(shù)的有效地指令中給出的形式地址相加形成操作數(shù)的有效地址。址。 OP 相對(duì)尋址 Disp 主存 EA=K+1+Disp EA(PC)Disp K1 PC ALU OP 相對(duì)尋址 Disp 操作數(shù) K Disp . . . 指令 2022-6-1277相對(duì)尋址相對(duì)尋址2022-6-1278 PCPC當(dāng)

56、前內(nèi)容當(dāng)前內(nèi)容一般為現(xiàn)行指令的下一單元的地址。一般為現(xiàn)行指令的下一單元的地址。 形式地址形式地址是操作數(shù)地址相對(duì)于是操作數(shù)地址相對(duì)于PCPC當(dāng)前內(nèi)容的一當(dāng)前內(nèi)容的一個(gè)相對(duì)位移量(個(gè)相對(duì)位移量(DispDisp),),位移量可正可負(fù),一位移量可正可負(fù),一般用補(bǔ)碼表示般用補(bǔ)碼表示。 在相對(duì)尋址中,只要保持位移量不變,就可實(shí)在相對(duì)尋址中,只要保持位移量不變,就可實(shí)現(xiàn)指令帶著數(shù)據(jù)在存儲(chǔ)器中搬家,有利于實(shí)現(xiàn)現(xiàn)指令帶著數(shù)據(jù)在存儲(chǔ)器中搬家,有利于實(shí)現(xiàn)程序再定位。程序再定位。KOP OP 相對(duì)尋址相對(duì)尋址 5 5K+1K+2K+6操作數(shù)操作數(shù)MOP OP 相對(duì)尋址相對(duì)尋址 5 5M+1M+2M+6操作數(shù)操作數(shù)

57、2022-6-1279 相對(duì)尋址還經(jīng)常用于轉(zhuǎn)移指令中,以相對(duì)尋址還經(jīng)常用于轉(zhuǎn)移指令中,以PCPC內(nèi)容為內(nèi)容為基準(zhǔn),加上相對(duì)位移量形成轉(zhuǎn)移地址。例如基準(zhǔn),加上相對(duì)位移量形成轉(zhuǎn)移地址。例如PDPPDP1111轉(zhuǎn)移指令格式為:轉(zhuǎn)移指令格式為: 其轉(zhuǎn)移地址為其轉(zhuǎn)移地址為(PC)(PC)2Disp2Disp。之所以加。之所以加 2Disp2Disp,是因?yàn)槭且驗(yàn)镻DPPDP一一1111是以字節(jié)為單位對(duì)主存進(jìn)行編是以字節(jié)為單位對(duì)主存進(jìn)行編址的,而址的,而DispDisp是相對(duì)于是相對(duì)于PCPC的字位移,一個(gè)字為的字位移,一個(gè)字為2 2個(gè)字節(jié)。個(gè)字節(jié)。15 815 87 07 0OPOPDispDisp20

58、22-6-1280 例例5.9 Intel 80865.9 Intel 8086的進(jìn)位為的進(jìn)位為0 0轉(zhuǎn)移指令轉(zhuǎn)移指令 JNC D JNC D 的功能為:如果進(jìn)位為的功能為:如果進(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)移目

59、標(biāo)地址為轉(zhuǎn)移目標(biāo)地址為 1002H1002H0003H0003H1005H1005H 設(shè)指令為設(shè)指令為JNC 0FDHJNC 0FDH則轉(zhuǎn)移目標(biāo)地址為則轉(zhuǎn)移目標(biāo)地址為 1002H1002HFFFDHFFFDH0FFFH0FFFH0FFDH0FFDH0FFEH0FFEH0FFFH0FFFH1000H1000HJNCJNC1001H1001H03H03H1002H1002H1003H1003H1004H1004H1005H1005HDFDHD03H2022-6-12818 8基址尋址基址尋址 基址尋址方式是指操作數(shù)的有效地址等于指令中的基址尋址方式是指操作數(shù)的有效地址等于指令中的形式地址與基址寄存

60、器中的內(nèi)容之和。基址寄存器形式地址與基址寄存器中的內(nèi)容之和。基址寄存器可以是一個(gè)專(zhuān)用的寄存器,也可以是由指令指定的可以是一個(gè)專(zhuān)用的寄存器,也可以是由指令指定的通用寄存器,基址寄存器中的內(nèi)容稱(chēng)為通用寄存器,基址寄存器中的內(nèi)容稱(chēng)為基地址基地址。 OP 基址尋址 Rb Disp 主存 EA EA(Rb)Disp 操作數(shù) Base Rb ALU 2022-6-1282基址尋址基址尋址2022-6-1283 基址尋址主要用于將用戶(hù)程序的邏輯地址(用戶(hù)基址尋址主要用于將用戶(hù)程序的邏輯地址(用戶(hù)編寫(xiě)程序時(shí)所使用的地址)轉(zhuǎn)換成主存的物理地編寫(xiě)程序時(shí)所使用的地址)轉(zhuǎn)換成主存的物理地址(程序在主存中的實(shí)際地址),

溫馨提示

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

評(píng)論

0/150

提交評(píng)論