版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、11/10/20211第第4章章 指令系統(tǒng)指令系統(tǒng)chapter 4 instruction system4.1 指令格式指令格式4.2 指令的尋址方式指令的尋址方式4.3 指令系統(tǒng)設(shè)計舉例指令系統(tǒng)設(shè)計舉例 4.4 cisc和和risc的基本概念的基本概念 11/10/20212本章學(xué)習(xí)要求本章學(xué)習(xí)要求 指令的基本格式、定長和擴(kuò)展操作碼指令格式指令的基本格式、定長和擴(kuò)展操作碼指令格式 各種尋址方式的尋址執(zhí)行過程各種尋址方式的尋址執(zhí)行過程 定長操作碼指令系統(tǒng)的設(shè)計示例定長操作碼指令系統(tǒng)的設(shè)計示例 cisc和和risc指令系統(tǒng)的思想及特點指令系統(tǒng)的思想及特點 指令系統(tǒng)的設(shè)計:指令類型(規(guī)模)、指令
2、長度、指令系統(tǒng)的設(shè)計:指令類型(規(guī)模)、指令長度、操作碼長度、尋址方式操作碼長度、尋址方式11/10/20213 一臺計算機所有指令的集合稱為該計算機的一臺計算機所有指令的集合稱為該計算機的指令系指令系統(tǒng)統(tǒng),不同類型的計算機由于結(jié)構(gòu)的差別具有不同的,不同類型的計算機由于結(jié)構(gòu)的差別具有不同的指令系統(tǒng)。計算機的性能與其所設(shè)置的指令系統(tǒng)有指令系統(tǒng)。計算機的性能與其所設(shè)置的指令系統(tǒng)有很大關(guān)系,而指令系統(tǒng)又與計算機硬件結(jié)構(gòu)密切相很大關(guān)系,而指令系統(tǒng)又與計算機硬件結(jié)構(gòu)密切相關(guān),因此計算機指令系統(tǒng)的設(shè)計是計算機組成結(jié)構(gòu)關(guān),因此計算機指令系統(tǒng)的設(shè)計是計算機組成結(jié)構(gòu)設(shè)計中一個非常重要的環(huán)節(jié)。設(shè)計中一個非常重要的
3、環(huán)節(jié)。 本章主要介紹指令的格式、指令的尋址方式、本章主要介紹指令的格式、指令的尋址方式、cisc和和risc的指令系統(tǒng)的指令系統(tǒng) 11/10/202144.1 指令格式指令格式 指令指令(instruction):指示計算機執(zhí)行某種操作的):指示計算機執(zhí)行某種操作的命令,它由一串二進(jìn)制數(shù)碼組成命令,它由一串二進(jìn)制數(shù)碼組成 。每條指令可以。每條指令可以完成一個獨立的算術(shù)運算或邏輯運算操作。完成一個獨立的算術(shù)運算或邏輯運算操作。 指令系統(tǒng)指令系統(tǒng)(instruction set):是一臺計算機全部):是一臺計算機全部指令的集合,是計算機所有功能的體現(xiàn)。指令系統(tǒng)指令的集合,是計算機所有功能的體現(xiàn)。指
4、令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影能不僅直接影響到機器的硬件結(jié)構(gòu),而且也直接影響到系統(tǒng)軟件,影響到機器的適應(yīng)范圍響到系統(tǒng)軟件,影響到機器的適應(yīng)范圍 。 指令系統(tǒng)的改進(jìn)指令系統(tǒng)的改進(jìn)是圍繞著縮小指令與高級語言的語是圍繞著縮小指令與高級語言的語義差異以及有利于操作系統(tǒng)的優(yōu)化而進(jìn)行的。義差異以及有利于操作系統(tǒng)的優(yōu)化而進(jìn)行的。11/10/202154.1 指令格式指令格式4.1.1 指令格式指令格式 計算機通過執(zhí)行指令來處理各種數(shù)據(jù)。為了指出數(shù)計算機通過執(zhí)行指令來處理各種數(shù)據(jù)。為了指出數(shù)據(jù)的來源、操
5、作結(jié)果的去向及所執(zhí)行的操作據(jù)的來源、操作結(jié)果的去向及所執(zhí)行的操作 。 一條指令一般包含下列信息一條指令一般包含下列信息: (1)操作碼,說明操作的性質(zhì)及功能)操作碼,說明操作的性質(zhì)及功能 (2)操作數(shù)的地址,說明參與運算的數(shù)據(jù)來源)操作數(shù)的地址,說明參與運算的數(shù)據(jù)來源 (3)操作結(jié)果的存儲地址,說明操作結(jié)果存放何)操作結(jié)果的存儲地址,說明操作結(jié)果存放何處處 (4)下一條指令的地址,當(dāng)遇到非順序執(zhí)行指令)下一條指令的地址,當(dāng)遇到非順序執(zhí)行指令時,給出轉(zhuǎn)移地址時,給出轉(zhuǎn)移地址 11/10/202164.1 指令格式指令格式4.1.1 指令格式指令格式 在計算機內(nèi)部,每條指令都表示一串二進(jìn)制位,稱在
6、計算機內(nèi)部,每條指令都表示一串二進(jìn)制位,稱為為指令字指令字。指令字劃分為若干個域,分別對應(yīng)指令。指令字劃分為若干個域,分別對應(yīng)指令的構(gòu)成部分,指令字的結(jié)構(gòu)稱為的構(gòu)成部分,指令字的結(jié)構(gòu)稱為指令格式指令格式 計算機的指令格式與機器的字長、存儲器的容量及計算機的指令格式與機器的字長、存儲器的容量及指令的功能都有很大的關(guān)系指令的功能都有很大的關(guān)系 指令格式的設(shè)置指令格式的設(shè)置一般遵循以下規(guī)則:一般遵循以下規(guī)則: (1)包含盡量多的信息;)包含盡量多的信息; (2)長度盡可能與機器字長相匹配;)長度盡可能與機器字長相匹配; (3)指令中包含盡量少的冗余信息。)指令中包含盡量少的冗余信息。 11/10/2
7、02174.1 指令格式指令格式4.1.1 指令格式指令格式 指令由指令由操作碼操作碼和和地址碼地址碼兩部分組成,其基本格式如兩部分組成,其基本格式如圖圖4-1所示所示 :操作碼字段操作碼字段地址碼字段地址碼字段操作碼操作碼:用來表示指令所要完成的操作:用來表示指令所要完成的操作地址碼地址碼:用來指出該指令的源操作數(shù)地址、結(jié)果:用來指出該指令的源操作數(shù)地址、結(jié)果 地址以及下一條指令的地址地址以及下一條指令的地址11/10/202184.1 指令格式指令格式4.1.1 指令格式指令格式 指令字長度指令字長度 :指一條指令中所包含的二進(jìn)制代碼:指一條指令中所包含的二進(jìn)制代碼的位數(shù),它取決于操作碼字
8、段的長度、操作數(shù)地址的位數(shù),它取決于操作碼字段的長度、操作數(shù)地址的個數(shù)及長度。指令長度可以等于機器字長,也可的個數(shù)及長度。指令長度可以等于機器字長,也可以與機器字長不等以與機器字長不等 。 固定字長指令結(jié)構(gòu)固定字長指令結(jié)構(gòu):指令系統(tǒng)中所有指令的長度都:指令系統(tǒng)中所有指令的長度都是一樣的。優(yōu)點是控制簡單,實現(xiàn)方便。但占用地是一樣的。優(yōu)點是控制簡單,實現(xiàn)方便。但占用地址空間較大,不夠靈活址空間較大,不夠靈活 變長指令字結(jié)構(gòu)變長指令字結(jié)構(gòu) :各種指令的長度隨指令的不同:各種指令的長度隨指令的不同而有所不同而有所不同 。變長指令字結(jié)構(gòu)字長不確定,指令。變長指令字結(jié)構(gòu)字長不確定,指令執(zhí)行周期與指令功能有
9、關(guān)系,往往不能在相同的周執(zhí)行周期與指令功能有關(guān)系,往往不能在相同的周期內(nèi)完成。優(yōu)點是節(jié)省存儲空間,指令系統(tǒng)靈活,期內(nèi)完成。優(yōu)點是節(jié)省存儲空間,指令系統(tǒng)靈活,被廣泛應(yīng)用于現(xiàn)代計算系統(tǒng)的設(shè)計中被廣泛應(yīng)用于現(xiàn)代計算系統(tǒng)的設(shè)計中11/10/202194.1 指令格式指令格式4.1.1 指令格式指令格式 操作碼(操作碼(operation code) :用來表示指令所要完:用來表示指令所要完成的操作,如加法、減法、傳送、移位、轉(zhuǎn)移等成的操作,如加法、減法、傳送、移位、轉(zhuǎn)移等 。 每條指令都有不同于其它指令的操作碼編碼。操作每條指令都有不同于其它指令的操作碼編碼。操作碼占用的二進(jìn)制位數(shù)一般取決于計算機指令
10、系統(tǒng)的碼占用的二進(jìn)制位數(shù)一般取決于計算機指令系統(tǒng)的規(guī)模,實際上也就是與指令的條數(shù)有關(guān)。規(guī)模,實際上也就是與指令的條數(shù)有關(guān)。 一般來講,如果操作碼固定,占一般來講,如果操作碼固定,占m位位,則該機器最,則該機器最多包含多包含2m條指令條指令 操作碼的長度操作碼的長度可以是固定的,也可以是變化的。相可以是固定的,也可以是變化的。相應(yīng)的指令格式可分為應(yīng)的指令格式可分為定長操作碼指令格式定長操作碼指令格式和和擴(kuò)展操擴(kuò)展操作碼指令格式兩類作碼指令格式兩類 11/10/2021104.1 指令格式指令格式4.1.1 指令格式指令格式 地址碼(地址碼(address code) :用來指出該指令的源:用來指
11、出該指令的源操作數(shù)地址、結(jié)果地址以及下一條指令的地址。這操作數(shù)地址、結(jié)果地址以及下一條指令的地址。這里的里的“地址地址”可以是主存地址,也可以是寄存器地可以是主存地址,也可以是寄存器地址或者址或者i/o設(shè)備的地址設(shè)備的地址 。 不是不是所有的指令都必須包含地址碼,所有的指令都必須包含地址碼,也不是也不是所有指所有指令的地址碼段數(shù)都相同。根據(jù)指令中包含的地址碼令的地址碼段數(shù)都相同。根據(jù)指令中包含的地址碼的段數(shù),的段數(shù),可以將指令分為可以將指令分為零地址指令、一地址指令、零地址指令、一地址指令、二地址指令、三地址指令二地址指令、三地址指令 11/10/202111 根據(jù)地址碼部分給出的地址個數(shù)分類
12、:根據(jù)地址碼部分給出的地址個數(shù)分類:1. 零地址指令零地址指令 指令中指令中只有操作碼只有操作碼,而,而沒有操作數(shù)沒有操作數(shù)或沒有操作數(shù)地或沒有操作數(shù)地址。這種指令有兩種可能:址。這種指令有兩種可能: (1) 無需任何操作數(shù)。如空操作指令、停機指令等無需任何操作數(shù)。如空操作指令、停機指令等 (2) 操作數(shù)按照某種約定隱含,如堆棧類指令操作數(shù)按照某種約定隱含,如堆棧類指令 2. 一地址指令一地址指令 指令中只給出指令中只給出一個地址一個地址。一種是單操作數(shù)運算,如。一種是單操作數(shù)運算,如加加1,減,減1,移位,取反等,該地址既是操作數(shù)的地,移位,取反等,該地址既是操作數(shù)的地址,又是操作結(jié)果存儲地
13、址。對這一地址所指定的址,又是操作結(jié)果存儲地址。對這一地址所指定的操作數(shù)執(zhí)行相應(yīng)的操作后,產(chǎn)生的結(jié)果又存回該地操作數(shù)執(zhí)行相應(yīng)的操作后,產(chǎn)生的結(jié)果又存回該地址中。另一種情況是雙操作數(shù),另一個操作數(shù)必須址中。另一種情況是雙操作數(shù),另一個操作數(shù)必須存放在事先約定的專門的寄存器中存放在事先約定的專門的寄存器中 11/10/2021123. 二地址指令二地址指令 這是最常見的指令格式,兩個地址指出兩個源操作這是最常見的指令格式,兩個地址指出兩個源操作數(shù)地址,其中一個還是存放結(jié)果的目的地址數(shù)地址,其中一個還是存放結(jié)果的目的地址4. 三地址指令:三地址指令: 指令中包含三個地址段,其中的兩個地址段用來存指令
14、中包含三個地址段,其中的兩個地址段用來存放源操作數(shù)地址,第三個地址段用來存放目的操作放源操作數(shù)地址,第三個地址段用來存放目的操作數(shù)地址數(shù)地址 5. 四地址指令四地址指令 指令中包含四個地址段,其中前兩個地址段用來存指令中包含四個地址段,其中前兩個地址段用來存放源操作數(shù)地址,第三個地址段用來存放目的操作放源操作數(shù)地址,第三個地址段用來存放目的操作數(shù)地址,第四個地址段給出下一條指令的地址。數(shù)地址,第四個地址段給出下一條指令的地址。11/10/2021136. 多地址指令多地址指令 高檔機或大型機中用于處理成批數(shù)據(jù)的指令,如字高檔機或大型機中用于處理成批數(shù)據(jù)的指令,如字符串處理指令,向量、矩陣運算指
15、令等。為了描述符串處理指令,向量、矩陣運算指令等。為了描述一批數(shù)據(jù),指令中需要多個地址來指出數(shù)據(jù)存放的一批數(shù)據(jù),指令中需要多個地址來指出數(shù)據(jù)存放的首地址、長度和下標(biāo)等信息。首地址、長度和下標(biāo)等信息。具有不同數(shù)量地址碼的指令系統(tǒng)格式如圖具有不同數(shù)量地址碼的指令系統(tǒng)格式如圖4-2所示所示 適應(yīng)范圍適應(yīng)范圍: 零地址、一地址和兩地址指令具有指令短,執(zhí)行速零地址、一地址和兩地址指令具有指令短,執(zhí)行速度快,硬件實現(xiàn)簡單等特點,多為結(jié)構(gòu)較簡單,字度快,硬件實現(xiàn)簡單等特點,多為結(jié)構(gòu)較簡單,字長較短的小型、微型機所采用長較短的小型、微型機所采用 兩地址、三地址及多地址指令具有功能強,便于編兩地址、三地址及多地
16、址指令具有功能強,便于編程等特點,多為字長較長的大,中型機所采用程等特點,多為字長較長的大,中型機所采用 11/10/202114圖4-2 具有不同數(shù)量地址碼的指令系統(tǒng)格式op零地址一地址三地址opa1opa2a1二地址opa2a1a3四地址opa2a1a3a411/10/2021154.1.2 定長操作碼指令格式定長操作碼指令格式 定長操作碼指令格式將定長操作碼指令格式將操作碼集中放在指令字的一操作碼集中放在指令字的一個字段內(nèi)個字段內(nèi),這種格式便于硬件設(shè)計,指令譯碼時間,這種格式便于硬件設(shè)計,指令譯碼時間短,廣泛應(yīng)用于字長較長的大、中型計算機和超級短,廣泛應(yīng)用于字長較長的大、中型計算機和超級
17、小型機以及小型機以及risc(reduced instruction set computer)中)中 。 ibm370機機就采用定長操作碼指令格式。就采用定長操作碼指令格式。ibm370機機是一種是一種32位機,機器字長位機,機器字長32位,有三種結(jié)構(gòu)的指令,位,有三種結(jié)構(gòu)的指令,分別是半字長指令(指令長度為分別是半字長指令(指令長度為16位)、單字長指位)、單字長指令(指令長度為令(指令長度為32位)、位)、1.5倍字長指令(指令長倍字長指令(指令長度為度為48位)。不同類型的指令編碼格式有所不同,位)。不同類型的指令編碼格式有所不同,但操作碼字段的長度都是固定的但操作碼字段的長度都是固定
18、的8位。位。11/10/2021164.1.2 定長操作碼指令格式定長操作碼指令格式 圖圖4-3列出了列出了ibm370機的指令系統(tǒng)格式機的指令系統(tǒng)格式 。op圖4-3 ibm370機的指令系統(tǒng)格式r2r1rr型opx2r18 4 4 4 12rx型b2d2opr2r18 4 4 4 12rs型b2d2opi28 8 4 12si型b1d1opl18 8 4 12 4 12ss型b1d1b2d211/10/2021174.1.3 擴(kuò)展操作碼指令格式擴(kuò)展操作碼指令格式 擴(kuò)展操作碼指令格式將擴(kuò)展操作碼指令格式將操作碼分散在指令字的不同操作碼分散在指令字的不同字段字段中,可有效壓縮操作碼平均長度,在
19、字長較短中,可有效壓縮操作碼平均長度,在字長較短的微型計算機中廣泛應(yīng)用,如的微型計算機中廣泛應(yīng)用,如z80、intel80 x86、pentium等,操作碼長度都是可變的等,操作碼長度都是可變的 。 操作碼長度不固定將操作碼長度不固定將增加指令譯碼和分析的難度增加指令譯碼和分析的難度,使控制器設(shè)計復(fù)雜化,因此對使控制器設(shè)計復(fù)雜化,因此對操作碼的編碼操作碼的編碼至關(guān)重至關(guān)重要。通常是在指令字中用一個要。通常是在指令字中用一個固定長度固定長度的字段來表的字段來表示示基本操作碼基本操作碼,而對于一部分不需要某個地址碼的,而對于一部分不需要某個地址碼的指令,把它們的操作碼指令,把它們的操作碼擴(kuò)展擴(kuò)展到
20、該地址字段,這樣既到該地址字段,這樣既能充分利用指令字的各字段,又能在不增加指令長能充分利用指令字的各字段,又能在不增加指令長度情況下擴(kuò)展操作碼的長度,使它表示更多指令。度情況下擴(kuò)展操作碼的長度,使它表示更多指令。11/10/202118設(shè)某機器的指令長度為設(shè)某機器的指令長度為16位,包括位,包括4位基本操作碼和位基本操作碼和三個三個4位地址碼段。位地址碼段。 15 12 118 7 4 3.0 op a1 a2 a311/10/2021194.1.3 擴(kuò)展操作碼指令格式擴(kuò)展操作碼指令格式 設(shè)某機器的指令長度為設(shè)某機器的指令長度為16位,包括位,包括4位基本操作碼位基本操作碼字段和字段和3個個
21、4位地址字段,其指令格式如圖位地址字段,其指令格式如圖4-4所示。所示。4位基本操作碼可表示位基本操作碼可表示16個狀態(tài),如全部用于表示個狀態(tài),如全部用于表示三地址指令,只有三地址指令,只有16條。若該機器有三地址指令條。若該機器有三地址指令15條,兩地址指令條,兩地址指令15條,一地址指令條,一地址指令15條,零地址指條,零地址指令令16條,共條,共61條,應(yīng)該如何安排操作碼呢條,應(yīng)該如何安排操作碼呢 ?圖4-4 某機器指令格式opa115 12 11 8 7 4 3 0a2a311/10/2021204.1.3 擴(kuò)展操作碼指令格式擴(kuò)展操作碼指令格式 只用只用4位基本操作碼明顯是不夠的,必須
22、將操作碼的長度向地址位基本操作碼明顯是不夠的,必須將操作碼的長度向地址碼字段擴(kuò)展才行。一種可供擴(kuò)展的方法和步驟如下:碼字段擴(kuò)展才行。一種可供擴(kuò)展的方法和步驟如下: (1)15條三地址指令的操作碼由條三地址指令的操作碼由4位基本操作碼從位基本操作碼從00001110給出,給出,剩下一個碼點剩下一個碼點1111把操作碼擴(kuò)展到把操作碼擴(kuò)展到a1,即,即4位擴(kuò)展到位擴(kuò)展到8位;位; ( 2)15條二地址指令的操作碼由條二地址指令的操作碼由8位操作碼從位操作碼從1111000011111110給給出,剩下一個碼點出,剩下一個碼點11111111把操作碼擴(kuò)展到把操作碼擴(kuò)展到a2,即從,即從8位擴(kuò)展到位擴(kuò)展
23、到12位;位; ( 3)15條一地址指令的操作碼由條一地址指令的操作碼由12位操作碼從位操作碼從111111110000111111111110給出,剩下一個碼點給出,剩下一個碼點111111111111把把操作碼擴(kuò)展到操作碼擴(kuò)展到a3,即從,即從12位擴(kuò)展到位擴(kuò)展到16位;位; ( 4)16條零地址指令的操作碼由條零地址指令的操作碼由16位操作碼從位操作碼從1111111111110000111111111111給出給出 。11/10/202121操作碼操作碼 地址碼地址碼 15 12 11 8 7 4 3 00000 0000 x x y zy z 1110 1110 x y zx y z
24、.11111111 0000 0000 y y z z 1111 1111 1110 1110 y y z z.三地址指令三地址指令 1515條條二地址指令二地址指令 1515條條11111111 11111111 0000 0000 z z 1111 11111111 1111 1110 1110 z z.一地址指令一地址指令 1515條條11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616條條11/10/2021224.1.3 擴(kuò)展操作碼指令格式擴(kuò)展操作碼指令格式
25、 除了這種方法以外,還有其他多種擴(kuò)展方法,如還可除了這種方法以外,還有其他多種擴(kuò)展方法,如還可以形成以形成15條三地址指令,條三地址指令,14條兩地址指令,條兩地址指令,31條一地條一地址指令和址指令和16條零地址指令,共條零地址指令,共76條指令:條指令:15條三地址為:條三地址為:0000 111014條二地址為:條二地址為:11110000 1111110131條一地址為:條一地址為:111111100000 11111111111016條零地址為:條零地址為:111111111110000111111111111111111/10/2021234.1.3 擴(kuò)展操作碼指令格式擴(kuò)展操作碼指
26、令格式 在可變長度的指令系統(tǒng)的設(shè)計中,到底使用何種擴(kuò)展在可變長度的指令系統(tǒng)的設(shè)計中,到底使用何種擴(kuò)展方法還有一個重要原則方法還有一個重要原則-指令指令使用頻率使用頻率 (1)使用頻率使用頻率高高的指令應(yīng)分配較的指令應(yīng)分配較短短的操作碼的操作碼 (2)使用頻率)使用頻率低低的指令應(yīng)分配較的指令應(yīng)分配較長長的操作碼的操作碼 這樣可有效地縮短操作碼在程序中的平均長度,節(jié)省這樣可有效地縮短操作碼在程序中的平均長度,節(jié)省存儲空間,縮短經(jīng)常使用的指令的譯碼時間,可提高存儲空間,縮短經(jīng)常使用的指令的譯碼時間,可提高程序的運行速度。程序的運行速度。 操作碼擴(kuò)展技術(shù)是一種重要的操作碼擴(kuò)展技術(shù)是一種重要的指令優(yōu)化
27、技術(shù)指令優(yōu)化技術(shù),它可以,它可以縮短指令的平均長度,減少程序的總位數(shù)以及增加指縮短指令的平均長度,減少程序的總位數(shù)以及增加指令字所能表示的操作信息。令字所能表示的操作信息。 擴(kuò)展操作碼比固定操作碼譯碼擴(kuò)展操作碼比固定操作碼譯碼復(fù)雜復(fù)雜,使控制器的設(shè)計,使控制器的設(shè)計難度增大,且需更多的硬件來支持難度增大,且需更多的硬件來支持 11/10/2021244.1 指令格式指令格式比較:比較: 定長操作碼定長操作碼 - 操作碼長度固定操作碼長度固定 優(yōu)點:便于控制;優(yōu)點:便于控制; 缺點:會限制指令系統(tǒng)規(guī)模;缺點:會限制指令系統(tǒng)規(guī)模; 擴(kuò)展操作碼擴(kuò)展操作碼 -操作碼長度不固定操作碼長度不固定 優(yōu)點:合
28、理利用存儲空間;優(yōu)點:合理利用存儲空間; 缺點:缺點:增加指令譯碼和分析難度,使控制器設(shè)計復(fù)雜化;增加指令譯碼和分析難度,使控制器設(shè)計復(fù)雜化;11/10/2021254.2 指令的尋址方式指令的尋址方式 組成程序的組成程序的指令代碼指令代碼:一般在存儲器中:一般在存儲器中 程序執(zhí)行程序執(zhí)行過程中的過程中的操作數(shù)操作數(shù):可能在運算部件的某個寄存器:可能在運算部件的某個寄存器中或存儲器中,也可能就在指令中中或存儲器中,也可能就在指令中 尋址方式尋址方式(addressing mode):確定本條指令的數(shù)據(jù)地址以:確定本條指令的數(shù)據(jù)地址以及下一條將要執(zhí)行的指令地址的方法,它與硬件結(jié)構(gòu)緊密及下一條將要
29、執(zhí)行的指令地址的方法,它與硬件結(jié)構(gòu)緊密相關(guān),而且直接影響指令格式和指令功能相關(guān),而且直接影響指令格式和指令功能 。 從程序員角度看從程序員角度看,尋址方式與匯編程序設(shè)計的關(guān)系極為密,尋址方式與匯編程序設(shè)計的關(guān)系極為密切,與高級語言的編譯程序設(shè)計也同樣密切。切,與高級語言的編譯程序設(shè)計也同樣密切。11/10/2021264.2 指令的尋址方式指令的尋址方式4.2.1 有效地址有效地址 通常把指令中地址碼字段給出的地址稱作通常把指令中地址碼字段給出的地址稱作形式地址形式地址(用字(用字母母a表示),這個地址一般不能直接用來訪問存儲器。表示),這個地址一般不能直接用來訪問存儲器。 形式地址經(jīng)過某種運
30、算而得到的可用來訪問存儲器的地址形式地址經(jīng)過某種運算而得到的可用來訪問存儲器的地址稱作有稱作有效地址效地址(用(用ea表示),有效地址實際上是操作數(shù)所表示),有效地址實際上是操作數(shù)所在單元位置到段地址的距離,由在單元位置到段地址的距離,由段地址段地址和和有效地址有效地址可以直可以直接得出操作數(shù)在存儲器中的接得出操作數(shù)在存儲器中的物理地址物理地址 不同的尋址方式,從不同的尋址方式,從形式地址形式地址a計算得到計算得到有效地址有效地址ea的方的方法也不一樣法也不一樣 11/10/2021274.2 指令的尋址方式指令的尋址方式4.2.2 數(shù)據(jù)尋址和指令尋址數(shù)據(jù)尋址和指令尋址 尋址方式分為數(shù)據(jù)尋址和
31、指令尋址兩大類。尋址方式分為數(shù)據(jù)尋址和指令尋址兩大類。 指令尋址方式指令尋址方式實際上是程序執(zhí)行的過程,即計算機在執(zhí)行實際上是程序執(zhí)行的過程,即計算機在執(zhí)行程序的過程中如何在主存中找到將要執(zhí)行的指令的地址程序的過程中如何在主存中找到將要執(zhí)行的指令的地址 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式是指操作數(shù)的有效地址的尋址方式是指操作數(shù)的有效地址的尋址方式 11/10/2021284.2 指令的尋址方式指令的尋址方式4.2.2 數(shù)據(jù)尋址和指令尋址數(shù)據(jù)尋址和指令尋址1. 數(shù)據(jù)尋址數(shù)據(jù)尋址 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式通過指令中的地址碼字段計算操作數(shù)的通過指令中的地址碼字段計算操作數(shù)的有效有效地址地址,地址碼字段由,地址
32、碼字段由形式地址形式地址和尋址方式特征位組合而成,和尋址方式特征位組合而成,因此,通常指令中給出的地址碼并不是操作數(shù)的有效地址因此,通常指令中給出的地址碼并不是操作數(shù)的有效地址 。 數(shù)據(jù)尋址過程就是把地址碼字段中的操作數(shù)數(shù)據(jù)尋址過程就是把地址碼字段中的操作數(shù)形式地址形式地址轉(zhuǎn)換轉(zhuǎn)換為操作數(shù)的為操作數(shù)的有效地址有效地址的過程的過程 數(shù)據(jù)尋址方式種類較多,將在數(shù)據(jù)尋址方式種類較多,將在4.2.3節(jié)中詳細(xì)介紹節(jié)中詳細(xì)介紹 11/10/2021294.2 指令的尋址方式指令的尋址方式4.2.2 數(shù)據(jù)尋址和指令尋址數(shù)據(jù)尋址和指令尋址2. 指令尋址指令尋址指令尋址方式有兩種指令尋址方式有兩種(1)順序?qū)ぶ?/p>
33、)順序?qū)ぶ?指令地址在內(nèi)存中按指令地址在內(nèi)存中按順序順序安排,當(dāng)執(zhí)行一段程序時,通常安排,當(dāng)執(zhí)行一段程序時,通常是一條指令接一條指令的順序執(zhí)行是一條指令接一條指令的順序執(zhí)行 指令在執(zhí)行過程中,根據(jù)指令在執(zhí)行過程中,根據(jù)程序計數(shù)器程序計數(shù)器pc的值去尋址存儲器,的值去尋址存儲器,在指定的存儲器中取出指令后,在指定的存儲器中取出指令后,pc自動加自動加1,從而指向下一,從而指向下一條指令所在的地址條指令所在的地址 主要用在程序執(zhí)行過程中,從存儲器中取出第一條指令,主要用在程序執(zhí)行過程中,從存儲器中取出第一條指令,然后執(zhí)行這條指令;接著從存儲器取出第二條指令,再執(zhí)然后執(zhí)行這條指令;接著從存儲器取出第
34、二條指令,再執(zhí)行第二條指令;接著再取出第三條指令行第二條指令;接著再取出第三條指令11/10/2021304.2 指令的尋址方式指令的尋址方式4.2.2 數(shù)據(jù)尋址和指令尋址數(shù)據(jù)尋址和指令尋址2. 指令尋址指令尋址(2)跳轉(zhuǎn)尋址)跳轉(zhuǎn)尋址 當(dāng)程序遇到當(dāng)程序遇到非順序非順序執(zhí)行時,指令尋址就采用跳轉(zhuǎn)尋址方式。執(zhí)行時,指令尋址就采用跳轉(zhuǎn)尋址方式。跳轉(zhuǎn)是指下一條指令的地址跳轉(zhuǎn)是指下一條指令的地址不是由程序計數(shù)器不是由程序計數(shù)器pc給出,而給出,而是由是由本條指令本條指令給出。給出。 跳轉(zhuǎn)指令就是程序中的跳轉(zhuǎn)指令就是程序中的轉(zhuǎn)移指令轉(zhuǎn)移指令,當(dāng)程序執(zhí)行至轉(zhuǎn)移指令,當(dāng)程序執(zhí)行至轉(zhuǎn)移指令時,下一條將要執(zhí)行的
35、指令可能就不是程序中的下一行時,下一條將要執(zhí)行的指令可能就不是程序中的下一行 采用跳轉(zhuǎn)尋址方式,可實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,縮采用跳轉(zhuǎn)尋址方式,可實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,縮短程序長度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞?。指令系統(tǒng)短程序長度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞?。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令的跳轉(zhuǎn)尋址而設(shè)置的的跳轉(zhuǎn)尋址而設(shè)置的 11/10/2021314.2.3 常見尋址方式常見尋址方式 不同的計算機有不同的尋址方式,但其基本原理是相同的不同的計算機有不同的尋址方式,但其基本原理是相同的 尋址方式一般可歸結(jié)為
36、尋址方式一般可歸結(jié)為立即尋址立即尋址、直接尋址直接尋址、寄存器尋址寄存器尋址、基址尋址基址尋址、變址尋址變址尋址、間接尋址間接尋址以及以及相對尋址相對尋址等幾種尋址等幾種尋址方式,或者這幾種方式的組合與變形方式,或者這幾種方式的組合與變形 。 尋址過程尋址過程:從:從“形式地址形式地址”到到“有效地址有效地址”的轉(zhuǎn)換的轉(zhuǎn)換 對對尋址方式的評價尋址方式的評價包括:尋址能力;地址計算的復(fù)雜性包括:尋址能力;地址計算的復(fù)雜性 約定約定:a形式地址,指令地址字段中的內(nèi)容形式地址,指令地址字段中的內(nèi)容 ea有效地址,包含被訪問操作數(shù)的實際單元有效地址,包含被訪問操作數(shù)的實際單元 (x)表示單元表示單元x
37、中的內(nèi)容中的內(nèi)容 r寄存器寄存器11/10/2021321. 立即尋址立即尋址 指令的地址字段指出的不是操作數(shù)的地址,而是操指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身,又稱之為立即數(shù)作數(shù)本身,又稱之為立即數(shù) 這種方式的特點是指令執(zhí)行時間很短,只要取出指這種方式的特點是指令執(zhí)行時間很短,只要取出指令便可獲得操作數(shù),不需要訪問存儲器取數(shù)?,F(xiàn)在令便可獲得操作數(shù),不需要訪問存儲器取數(shù)?,F(xiàn)在地址字段地址字段a的位數(shù)限制了這類指令所能表示的立即的位數(shù)限制了這類指令所能表示的立即數(shù)的范圍數(shù)的范圍 例:例: mov ax,1234hop a 立即數(shù)立即數(shù)指令字指令字11/10/2021332. 直接
38、尋址直接尋址 指令的地址碼部分給出操作數(shù)在存儲器中的地址。指令的地址碼部分給出操作數(shù)在存儲器中的地址。 優(yōu)點是簡單直觀,不需專門計算機操作數(shù)地址,指優(yōu)點是簡單直觀,不需專門計算機操作數(shù)地址,指令執(zhí)行階段對主存只訪問一次,便于硬件實現(xiàn)令執(zhí)行階段對主存只訪問一次,便于硬件實現(xiàn) 地址字段地址字段a的位數(shù)限制了操作數(shù)的尋址范圍,而且的位數(shù)限制了操作數(shù)的尋址范圍,而且必須修改必須修改a的值,才能修改操作數(shù)的地址的值,才能修改操作數(shù)的地址 例:例: mov ax,1234h存儲器存儲器op a 操作數(shù)操作數(shù) 1234h11/10/2021342. 直接尋址直接尋址 有些指令中增加一個有些指令中增加一個m字
39、段字段,例如例如3位位,可表示可表示8種尋種尋址方式址方式存儲器存儲器 m a 操作數(shù)操作數(shù) 0110hop11/10/2021353. 寄存器尋址寄存器尋址 指令地址碼部分給出某一通用寄存器地址,所需的操指令地址碼部分給出某一通用寄存器地址,所需的操作數(shù)就在這一寄存器(作數(shù)就在這一寄存器(r)中)中 地址碼短地址碼短,從寄存器中存取數(shù)據(jù)比從存儲器中存取快,從寄存器中存取數(shù)據(jù)比從存儲器中存取快得多;得多;速度快速度快,是提高性能的常用手段,是提高性能的常用手段 寄存器尋址方式可以寄存器尋址方式可以縮短指令長度、節(jié)省存儲空間,縮短指令長度、節(jié)省存儲空間,提高指令的執(zhí)行速度提高指令的執(zhí)行速度,在計
40、算機中得到廣泛應(yīng)用。,在計算機中得到廣泛應(yīng)用。 缺點:尋址空間受寄存器數(shù)量限制缺點:尋址空間受寄存器數(shù)量限制 ea=r 例:例:mov ax,bx bx為源操作數(shù)地址,為源操作數(shù)地址,ax為目的操作數(shù)地址,操作的為目的操作數(shù)地址,操作的結(jié)果為將結(jié)果為將bx中的數(shù)據(jù)傳送(拷貝)到中的數(shù)據(jù)傳送(拷貝)到ax中。中。11/10/2021364. 基址尋址基址尋址 在計算機中設(shè)置或由指令指定一個通用寄存器為在計算機中設(shè)置或由指令指定一個通用寄存器為基基址寄存器址寄存器(br)。操作數(shù)的地址由基址寄存器的)。操作數(shù)的地址由基址寄存器的內(nèi)容和指令的地址碼內(nèi)容和指令的地址碼a相加得到,地址碼相加得到,地址碼
41、a通常被通常被稱為稱為位移量位移量(disp) ea=(br)+a 例:例:mov ax,bx+50h 程序員可以不用考慮程序加載到內(nèi)存中的位置,編程序員可以不用考慮程序加載到內(nèi)存中的位置,編程只需使用程只需使用邏輯地址邏輯地址即可(程序轉(zhuǎn)換到即可(程序轉(zhuǎn)換到物理地址物理地址) 當(dāng)存儲器容量較大,由指令的地址碼部分直接給出當(dāng)存儲器容量較大,由指令的地址碼部分直接給出的地址不能直接訪問到存儲器所有單元時,通常把的地址不能直接訪問到存儲器所有單元時,通常把整個存儲空間分成若干段,段首地址放于基址寄存整個存儲空間分成若干段,段首地址放于基址寄存器或段寄存器中,段內(nèi)位移量由指令給出。器或段寄存器中,段
42、內(nèi)位移量由指令給出。11/10/202137opa操作數(shù)存儲器. . . . . . .加法器(b)通用寄存器作為基礎(chǔ)寄存器指令字opa操作數(shù)存儲器. . . . . . .加法器(a)專用寄存器尋址基址寄存器b通用寄存器. . . . . . . .圖圖4.7 基址尋址過程基址尋址過程11/10/2021385. 變址尋址變址尋址 指令地址碼部分給出的指令地址碼部分給出的地址地址a和指定的和指定的變址寄存器變址寄存器x的的內(nèi)容內(nèi)容通過加法器相加,所得的和作為地址從存儲器中通過加法器相加,所得的和作為地址從存儲器中讀出所需的操作數(shù)。讀出所需的操作數(shù)。 當(dāng)計算機中還有基址寄存器時,計算有效地址時
43、還需當(dāng)計算機中還有基址寄存器時,計算有效地址時還需加上基址寄存器內(nèi)容加上基址寄存器內(nèi)容 ea=(x)+a 例:例:mov ax,si+50h 變址操作支持一維數(shù)組,結(jié)合變址操作支持一維數(shù)組,結(jié)合循環(huán)循環(huán)方法進(jìn)行,逐次改方法進(jìn)行,逐次改變變址寄存器的值,變變址寄存器的值,來訪問來訪問一片主存地址一片主存地址 變址寄存器的自動增量和自動減量功能,每存取一個變址寄存器的自動增量和自動減量功能,每存取一個數(shù)據(jù),自動增減,指向下一單元,為存取下一數(shù)據(jù)作數(shù)據(jù),自動增減,指向下一單元,為存取下一數(shù)據(jù)作準(zhǔn)備準(zhǔn)備11/10/202139opa操作數(shù)存儲器.加法器圖4-8 變址尋址方式指令字x通用寄存器.11/1
44、0/202140 基址尋址基址尋址面向系統(tǒng)面向系統(tǒng),主要解決程序的存儲定位問題,主要解決程序的存儲定位問題,即解決程序邏輯空間與物理空間的無關(guān)性;即解決程序邏輯空間與物理空間的無關(guān)性; 變址尋址變址尋址面向用戶面向用戶,主要是為了可以編寫出高效的,主要是為了可以編寫出高效的訪問一片存儲空間的程序,用以訪問字串和數(shù)組訪問一片存儲空間的程序,用以訪問字串和數(shù)組11/10/2021416. 間接尋址間接尋址 地址碼中給出的不是操作數(shù)地址,而是存放操作數(shù)地址碼中給出的不是操作數(shù)地址,而是存放操作數(shù)地址的地址,這種方式稱為間接尋址或間址。地址的地址,這種方式稱為間接尋址或間址。 根據(jù)地址碼指的是寄存器地
45、址還是存儲器地址,間根據(jù)地址碼指的是寄存器地址還是存儲器地址,間接尋址又可分為接尋址又可分為寄存器間接尋址寄存器間接尋址和和存儲器間接尋址存儲器間接尋址兩種方式。兩種方式。 間接尋址有一次間址和多次間址兩種情況。間接尋址有一次間址和多次間址兩種情況。 存儲器間接尋址存儲器間接尋址:ea=(a),尋址空間大,執(zhí)行速,尋址空間大,執(zhí)行速度慢;至少需要兩次訪存才能獲得操作數(shù),如一次度慢;至少需要兩次訪存才能獲得操作數(shù),如一次間址情況,第一次從存儲器讀出操作數(shù)地址,第二間址情況,第一次從存儲器讀出操作數(shù)地址,第二次讀出操作數(shù)次讀出操作數(shù) 寄存器間接尋址寄存器間接尋址:ea=(r) ,需要一次訪存,需要
46、一次訪存 例:例:mov ax,bx11/10/202142opa存儲器.(b)存儲器間址圖4-9 間接尋址方式指令字opr操作數(shù)存儲器.(a)寄存器間址指令字通用寄存器.a1操作數(shù).a1a11/10/202143 以轉(zhuǎn)移指令以轉(zhuǎn)移指令jump為例,來說明在直接尋址和間為例,來說明在直接尋址和間接尋址方式下如何確定下一條要執(zhí)行的指令的接尋址方式下如何確定下一條要執(zhí)行的指令的地址。地址。 11/10/2021447. 相對尋址相對尋址 把把程序計數(shù)器程序計數(shù)器pc的內(nèi)容的內(nèi)容(即當(dāng)前執(zhí)行指令的地址即當(dāng)前執(zhí)行指令的地址)與與指令的地址碼部分給出的指令的地址碼部分給出的位移量位移量(disp)之之和
47、和作為操作為操作數(shù)的地址或轉(zhuǎn)移地址,稱為相對尋址。主要用于作數(shù)的地址或轉(zhuǎn)移地址,稱為相對尋址。主要用于轉(zhuǎn)移指令。轉(zhuǎn)移指令。 ea=(pc)+disp 相對尋址有兩個特點:相對尋址有兩個特點: (1) 轉(zhuǎn)移地址不是固定的,但是無論程序裝入存儲轉(zhuǎn)移地址不是固定的,但是無論程序裝入存儲器的任何地方,只要指令間的相對位置不變,均能器的任何地方,只要指令間的相對位置不變,均能正確運行,對浮動程序很適用。正確運行,對浮動程序很適用。 (2) 位移量可正、可負(fù),通常用補碼表示。位移量可正、可負(fù),通常用補碼表示。11/10/202145 計算機的程序和數(shù)據(jù)一般是分開存放的,計算機的程序和數(shù)據(jù)一般是分開存放的,
48、程序區(qū)程序區(qū)在在程序執(zhí)行過程中不允許修改,否則數(shù)據(jù)區(qū)的程序執(zhí)行過程中不允許修改,否則數(shù)據(jù)區(qū)的 相對相對地址會發(fā)生變化。地址會發(fā)生變化。 在程序與數(shù)據(jù)分區(qū)存放的情況下,不用相對尋址方在程序與數(shù)據(jù)分區(qū)存放的情況下,不用相對尋址方式來確定操作數(shù)地址式來確定操作數(shù)地址 三種偏移尋址:基址尋址、變址尋址、相對尋址三種偏移尋址:基址尋址、變址尋址、相對尋址11/10/202146補充:補充: 堆棧尋址堆棧尋址 堆棧堆棧(stack)是由若干個連續(xù)存儲單元組成的是由若干個連續(xù)存儲單元組成的先進(jìn)后先進(jìn)后出出(first in last out,簡稱簡稱filo)存儲區(qū)存儲區(qū) 棧底棧底是固定不變的,而是固定不變
49、的,而棧頂棧頂卻是隨著數(shù)據(jù)的入棧和卻是隨著數(shù)據(jù)的入棧和出棧在不斷變化。任何堆棧操作只能在棧頂進(jìn)行。出棧在不斷變化。任何堆棧操作只能在棧頂進(jìn)行。 堆棧指針堆棧指針(stack pointer,簡稱,簡稱sp)是一個專用寄存器,是一個專用寄存器,用來指明棧頂?shù)奈恢?。用來指明棧頂?shù)奈恢谩?在在一般計算機一般計算機中,堆棧主要用來暫存中斷和子程序中,堆棧主要用來暫存中斷和子程序調(diào)用時現(xiàn)場數(shù)據(jù)及返回地址。調(diào)用時現(xiàn)場數(shù)據(jù)及返回地址。 壓入指令壓入指令(push)是把指定的操作數(shù)送入堆棧的棧頂,是把指定的操作數(shù)送入堆棧的棧頂,而而彈出指令彈出指令(pop)的操作剛好相反,是把棧頂?shù)臄?shù)據(jù)的操作剛好相反,是把棧
50、頂?shù)臄?shù)據(jù)取出,送到指令所指定的目的地。取出,送到指令所指定的目的地。11/10/202147 設(shè)設(shè)棧底的地址大于或等于棧頂?shù)牡刂窏5椎牡刂反笥诨虻扔跅m數(shù)牡刂?壓棧操作的過程壓棧操作的過程:首先把堆棧指針:首先把堆棧指針(sp)減量減量(減量減量的多少取決于壓入數(shù)據(jù)的字節(jié)數(shù)的多少取決于壓入數(shù)據(jù)的字節(jié)數(shù)),然后把數(shù)據(jù)送,然后把數(shù)據(jù)送入入sp所指定的單元所指定的單元 出棧操作的過程出棧操作的過程:首先把:首先把sp所指定的單元所指定的單元(即棧頂即棧頂)的數(shù)據(jù)取出,然后根據(jù)數(shù)據(jù)的大小的數(shù)據(jù)取出,然后根據(jù)數(shù)據(jù)的大小(即所占的字節(jié)即所占的字節(jié)數(shù)數(shù))對對sp增量。增量。 由于堆棧具有先進(jìn)后出的性質(zhì),因而
51、在中斷、子程由于堆棧具有先進(jìn)后出的性質(zhì),因而在中斷、子程序調(diào)用過程中廣泛用于保存返回地址、狀態(tài)標(biāo)志及序調(diào)用過程中廣泛用于保存返回地址、狀態(tài)標(biāo)志及現(xiàn)場信息?,F(xiàn)場信息。 例如,假設(shè)有一主程序m和兩個子程序 a,b,它們的調(diào)用關(guān)系是m調(diào)用a,a又調(diào)用b,如圖所示。11/10/202148 當(dāng)主程序當(dāng)主程序m執(zhí)行到子程序調(diào)執(zhí)行到子程序調(diào)用指令用指令call a時,先把該指時,先把該指令的下條指令地址令的下條指令地址m1及其及其他信息壓入堆棧中保存,然他信息壓入堆棧中保存,然后轉(zhuǎn)入子程序后轉(zhuǎn)入子程序a執(zhí)行。執(zhí)行。 當(dāng)子程序當(dāng)子程序a執(zhí)行到指令執(zhí)行到指令call b時,又把其下條指令的地時,又把其下條指令
52、的地址址a1壓入堆棧,并轉(zhuǎn)入子壓入堆棧,并轉(zhuǎn)入子程序程序b執(zhí)行。執(zhí)行。 子程序子程序b執(zhí)行完畢,從堆棧執(zhí)行完畢,從堆棧中彈出中彈出a1(此時此時a1在棧頂在棧頂)作為返回地址,返回到作為返回地址,返回到a子子程序繼續(xù)執(zhí)行。程序繼續(xù)執(zhí)行。 a子程序執(zhí)行完畢,又從堆子程序執(zhí)行完畢,又從堆棧中彈出棧中彈出m1(此時此時m1在棧在棧頂頂),返回主程序,返回主程序m繼續(xù)執(zhí)繼續(xù)執(zhí)行。行。11/10/202149 以上這些尋址方式,在計算機中可以組合使用,如以上這些尋址方式,在計算機中可以組合使用,如在一條指令中可以同時實現(xiàn)基址尋址與變址尋址,在一條指令中可以同時實現(xiàn)基址尋址與變址尋址,其有效地址為:其有效
53、地址為: 基址寄存器內(nèi)容基址寄存器內(nèi)容+變址寄存器內(nèi)容變址寄存器內(nèi)容+指令地址碼指令地址碼a 例:例:mov ax,bx+si+50h 如果用戶用如果用戶用高級語言編程高級語言編程,根本不用考慮尋址方式,根本不用考慮尋址方式,因為這是編譯程序的事但若用因為這是編譯程序的事但若用匯編語言編程匯編語言編程,則,則應(yīng)對它有確切的了解,才能編出正確而又高效率的應(yīng)對它有確切的了解,才能編出正確而又高效率的程序。程序。 不同計算機采用的尋址方式是不同的,即使是同一不同計算機采用的尋址方式是不同的,即使是同一種尋址方式,在不同的計算機中也有不同的表達(dá)方種尋址方式,在不同的計算機中也有不同的表達(dá)方式或含義式或
54、含義11/10/2021504.3 指令系統(tǒng)設(shè)計舉例指令系統(tǒng)設(shè)計舉例 【例【例4-2】某機器字長為】某機器字長為16位,采用一地址格式的指令系統(tǒng),位,采用一地址格式的指令系統(tǒng),允許直接、間接、變址、基址尋址,變址寄存器和基址寄存允許直接、間接、變址、基址尋址,變址寄存器和基址寄存器均為器均為16位,則位,則 (1)若采用單字指令,共能完成)若采用單字指令,共能完成108中操作,畫出指令格式,中操作,畫出指令格式,直接尋址和一次間接尋址的尋址范圍是多少?直接尋址和一次間接尋址的尋址范圍是多少? (2)若采用雙字指令,操作碼位數(shù)和尋址方式不變,畫出指)若采用雙字指令,操作碼位數(shù)和尋址方式不變,畫出
55、指令格式,指令可直接尋址的范圍是多少?令格式,指令可直接尋址的范圍是多少? 【解】(【解】(1)采用單字指令的指令格式如圖)采用單字指令的指令格式如圖4-11(a)所示。由于所示。由于指令集有指令集有108條指令,則操作碼位數(shù)為條指令,則操作碼位數(shù)為7位,允許位,允許4種不同的尋種不同的尋址方式,尋址方式字段需要址方式,尋址方式字段需要2位。地址碼位數(shù)為位。地址碼位數(shù)為7位,可直接位,可直接尋址范圍為尋址范圍為27個地址單元;采用一次間接尋址時,由于地址碼個地址單元;采用一次間接尋址時,由于地址碼字段中是操作數(shù)地址的地址,操作數(shù)的有效地址在存儲器內(nèi),字段中是操作數(shù)地址的地址,操作數(shù)的有效地址在
56、存儲器內(nèi),該地址該地址16位,因此一次間接尋址范圍為位,因此一次間接尋址范圍為216個地址單元。個地址單元。(2)采用雙字指令的指令格式如圖)采用雙字指令的指令格式如圖4-11(b)所示。地址碼位數(shù)為所示。地址碼位數(shù)為16+7=23位。則可直接尋址的范圍為位。則可直接尋址的范圍為223個地址單元。個地址單元。11/10/2021514.3 指令系統(tǒng)設(shè)計舉例指令系統(tǒng)設(shè)計舉例 【例【例4-2】某機器字長為】某機器字長為16位,采用一地址格式的指令系統(tǒng),位,采用一地址格式的指令系統(tǒng),允許直接、間接、變址、基址尋址,變址寄存器和基址寄存允許直接、間接、變址、基址尋址,變址寄存器和基址寄存器均為器均為1
57、6位,則位,則 (1)若采用單字指令,共能完成)若采用單字指令,共能完成108中操作,畫出指令格式,中操作,畫出指令格式,直接尋址和一次間接尋址的尋址范圍是多少?直接尋址和一次間接尋址的尋址范圍是多少? (2)若采用雙字指令,操作碼位數(shù)和尋址方式不變,畫出指)若采用雙字指令,操作碼位數(shù)和尋址方式不變,畫出指令格式,指令可直接尋址的范圍是多少?令格式,指令可直接尋址的范圍是多少? 圖4-11某機指令格式7 2 7opmoda(a)單字指令格式 (a)雙字指令格式 7 2 23opmoda11/10/2021524.3 指令系統(tǒng)設(shè)計舉例指令系統(tǒng)設(shè)計舉例 【例【例4-3】某模型機字長為】某模型機字長
58、為16位,共有位,共有64種操作,操作碼位數(shù)種操作,操作碼位數(shù)固定,且具有如下特點:(固定,且具有如下特點:(1)采用一地址或二地址格式;()采用一地址或二地址格式;(2)有寄存器尋址、直接尋址和相對尋址(位移量為有寄存器尋址、直接尋址和相對尋址(位移量為-128+127)三種尋址方式;(三種尋址方式;(3)有)有16個通用寄存器,算術(shù)運算和邏輯運個通用寄存器,算術(shù)運算和邏輯運算指令的操作數(shù)、結(jié)果均在寄存器中;(算指令的操作數(shù)、結(jié)果均在寄存器中;(4)取數(shù))取數(shù)/存數(shù)指令在存數(shù)指令在通用寄存器和存儲器之間傳送數(shù)據(jù);(通用寄存器和存儲器之間傳送數(shù)據(jù);(5)存儲器容量為)存儲器容量為1mb,按字節(jié)
59、編址。試設(shè)計算術(shù)運算和邏輯運算指令、取數(shù)按字節(jié)編址。試設(shè)計算術(shù)運算和邏輯運算指令、取數(shù)/存數(shù)指存數(shù)指令和相對轉(zhuǎn)移指令的格式。令和相對轉(zhuǎn)移指令的格式。 【解】(【解】(1)算術(shù)運算和邏輯運算指令格式為寄存器)算術(shù)運算和邏輯運算指令格式為寄存器-寄存器型,寄存器型,取單字長取單字長16位,指令格式如圖位,指令格式如圖4.12。其中,。其中,op為操作碼,為操作碼,6位,位,可實現(xiàn)可實現(xiàn)64種操作;種操作;m為尋址方式,為尋址方式,2位,可反映寄存器尋址、位,可反映寄存器尋址、直接尋址、相對尋址;直接尋址、相對尋址;r1和和r2各取各取4位,指出源操作數(shù)和目的位,指出源操作數(shù)和目的操作數(shù)的寄存器(共
60、操作數(shù)的寄存器(共16個)編號。個)編號。 opm6 2 4 4 r1r211/10/2021534.3 指令系統(tǒng)設(shè)計舉例指令系統(tǒng)設(shè)計舉例 【例【例4-3】某模型機字長為】某模型機字長為16位,共有位,共有64種操作,操作碼位數(shù)種操作,操作碼位數(shù)固定,且具有如下特點:(固定,且具有如下特點:(1)采用一地址或二地址格式;()采用一地址或二地址格式;(2)有寄存器尋址、直接尋址和相對尋址(位移量為有寄存器尋址、直接尋址和相對尋址(位移量為-128+127)三種尋址方式;(三種尋址方式;(3)有)有16個通用寄存器,算術(shù)運算和邏輯運個通用寄存器,算術(shù)運算和邏輯運算指令的操作數(shù)、結(jié)果均在寄存器中;(
溫馨提示
- 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年度木材行業(yè)市場調(diào)研與營銷策劃合同4篇
- 2025年企業(yè)投資貸款合同
- 2025年家具家電購買合同
- 2025年分期付款汽車銷售合同
- 2025年天然氣輸氣管道合作協(xié)議
- 2025版住宅小區(qū)水電暖消防系統(tǒng)改造與節(jié)能評估服務(wù)合同3篇
- 2025年健身健康檢測合同
- 2025年二手房合同樣本
- 二零二五至二零二五年度通信設(shè)備采購合同2篇
- 2025版屋面防水勞務(wù)分包合同(含防水檢測服務(wù))3篇
- 獅子王影視鑒賞
- 一年級數(shù)學(xué)加減法口算題每日一練(25套打印版)
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫附答案
- 【可行性報告】2023年電動自行車相關(guān)項目可行性研究報告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測與維修專業(yè)課程體系
評論
0/150
提交評論