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

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原任課教師:葉曉霞廣東海洋大學(xué)信息學(xué)院計(jì)算機(jī)系

信計(jì)1091-1092E-mail:xiaoxia7761@4.1指令系統(tǒng)的發(fā)展和性能要求4.2指令格式4.3操作數(shù)類型4.4指令和數(shù)據(jù)的尋址方式4.5典型指令第4章指令系統(tǒng)一、基本概念

⒈指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令。

⒉指令的分類:微指令、機(jī)器指令、宏指令4.1

指令系統(tǒng)的發(fā)展和性能要求微指令:微程序級(jí)的命令,它屬于硬件。機(jī)器指令:介于微指令與宏指令之間,每條指令可以完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算。宏指令

:由若干條機(jī)器指令組成的軟件指令,它屬于軟件。⒊指令系統(tǒng):指一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合,指令系統(tǒng)的性能決定了計(jì)算機(jī)的基本功能,指令的格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu),也直接影響到系統(tǒng)軟件,據(jù)指令系統(tǒng)的不同可將計(jì)算機(jī)分為

CISC和RISC。CISC:指復(fù)雜指令系統(tǒng)計(jì)算機(jī)。其特點(diǎn)為:指令功能強(qiáng),指令條數(shù)多,計(jì)算機(jī)硬件結(jié)構(gòu)復(fù)雜和設(shè)計(jì)周期加長(zhǎng)。RISC:指精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)。其特點(diǎn)為:指令系統(tǒng)中只包含使用頻率很高的指令和一些必要的指令,指令功能簡(jiǎn)單。二、指令系統(tǒng)的性能要求完善的計(jì)算機(jī)的指令系統(tǒng)應(yīng)具備:1、完備性:一臺(tái)計(jì)算機(jī)中最基本的、必不可少的指令構(gòu)成了指令系統(tǒng)的完備性。2、有效性:指利用該指令系統(tǒng)所提供的指令編制的程序能夠產(chǎn)生高效率。即占用存儲(chǔ)空間小、執(zhí)行速度快。3、規(guī)整性:指令操作的對(duì)稱性和勻齊性,指令格式與數(shù)據(jù)格式的一致性。(1)對(duì)稱性:在指令系統(tǒng)中,所有寄存器和存儲(chǔ)單元都可同等對(duì)待,這對(duì)簡(jiǎn)化程序設(shè)計(jì),提高程序的可讀性非常有用。(2)勻齊性:是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型。(3)一致性:指令長(zhǎng)度與數(shù)據(jù)長(zhǎng)度有一定關(guān)系,以方便存取處理。程序、指令、指令系統(tǒng)4、兼容性:兼容性一般是指計(jì)算機(jī)的體系結(jié)構(gòu)設(shè)計(jì)基本相同,機(jī)器之間具有相同的基本結(jié)構(gòu)、數(shù)據(jù)表示和共同的基本指令集合。必須做到“向上兼容”三、低級(jí)語言與硬件結(jié)構(gòu)的關(guān)系機(jī)器語言是計(jì)算機(jī)唯一能夠直接識(shí)別和執(zhí)行的語言匯編語言是機(jī)器語言的助記符,與機(jī)器指令一一對(duì)應(yīng),依賴于計(jì)算機(jī)的硬件結(jié)構(gòu)和指令系統(tǒng)。高級(jí)語言與計(jì)算機(jī)的硬件結(jié)構(gòu)及指令系統(tǒng)無關(guān)。4.2

指令格式計(jì)算機(jī)的指令格式與機(jī)器的字長(zhǎng)、存儲(chǔ)器的容量及指令的功能密切相關(guān)。指令格式是用二進(jìn)制代碼表示的指令形式,由操作碼字段和地址碼字段組成操作碼:表示指令進(jìn)行什么性質(zhì)的操作,它提供指令操作控制信息。(1)每條指令都要求它的操作碼必須是獨(dú)一無二的位組合。(2)指令系統(tǒng)中指令的個(gè)數(shù)N與操作碼的位數(shù)n,必須滿足關(guān)系式:

N≤2n–地址碼:指定參與操作的操作數(shù)地址指令字長(zhǎng)=操作碼的位數(shù)+(操作數(shù)地址個(gè)數(shù))*(操作數(shù)地址碼位數(shù))地址碼字段AC操作碼字段OC指令分類----按地址碼的個(gè)數(shù)操作碼A1A2A3操作碼A1A2操作碼A操作碼三地址指令

二地址指令

單地址指令

零地址指令

這種指令有兩種可能:(1)無需任何操作數(shù)。如空操作指令,停機(jī)指令等。(2)所需的操作數(shù)是默認(rèn)的:堆棧。指令中只有一個(gè)地址碼提供一個(gè)操作數(shù),另一個(gè)操作數(shù)是隱含的。如加1、減1、乘除等單操作數(shù)指令。例如,雙操作數(shù)加法指令:ADDR0,R1表示將R0寄存器的內(nèi)容和R1寄存器的內(nèi)容相加以后,將結(jié)果存入R1寄存器中。例如,ADDXYZ含義為(X)+(Y)Z即X單元內(nèi)容加上Y單元內(nèi)容,結(jié)果送Z單元中。

指令字長(zhǎng)指令格式設(shè)計(jì)準(zhǔn)則

1、指令字長(zhǎng)要短,以得到時(shí)間和空間上的優(yōu)勢(shì)。

2、指令字長(zhǎng)必須有足夠的長(zhǎng)度。

3、指令字長(zhǎng)一般應(yīng)是機(jī)器字長(zhǎng)的整數(shù)倍以便存儲(chǔ)系統(tǒng)的管理。機(jī)器字長(zhǎng)通常與貯存單元的位數(shù)一致。

4、指令格式的設(shè)計(jì)還與如何選定指令中操作數(shù)地址的位數(shù)有關(guān)。例如,對(duì)同一容量(如64KB)的存儲(chǔ)器(1)若取存儲(chǔ)單元為一字節(jié)長(zhǎng),則需要16位地址碼,(2)若存儲(chǔ)單元長(zhǎng)度為32位,則只需14位地址碼。 方案(1)對(duì)字符操作方便,但地址碼位數(shù)多 方案(2)地址碼位數(shù)少,很有利,但字符操作困難,分辯率低。對(duì)于一個(gè)機(jī)器的指令系統(tǒng),在指令字中操作碼字段和地址碼字段長(zhǎng)度通常是固定的。稱為等長(zhǎng)指令字結(jié)構(gòu)

在單片機(jī)中,由于指令字較短,為了充分利用指令字長(zhǎng)度,指令字的操作碼字段和地址碼字段是不固定的。稱為變長(zhǎng)指令字結(jié)構(gòu)指令字長(zhǎng)與擴(kuò)展方法擴(kuò)展操作碼

1、要點(diǎn):(1)操作碼位數(shù)隨地址碼個(gè)數(shù)變化采取可變長(zhǎng)度的類型;(2)指令間指令碼一定不重復(fù);(3)根據(jù)需要靈活變通。2、比較 假設(shè)一臺(tái)計(jì)算機(jī)指令字長(zhǎng)16位,操作碼與地址碼都為4位,如圖所示。AC1操作碼OCAC3AC2指令字長(zhǎng)與擴(kuò)展方法(1)方法一:固定格式,則最多可以設(shè)計(jì)16條三地址指令(2)方法二:擴(kuò)展操作碼,具體方法如下:

A、4位OC中用0000-1110定義15條三地址指令,留編碼1111作為擴(kuò)展標(biāo)志與下一個(gè)4位組成一個(gè)8位操作碼,引出二地址指令,則:

B、(a)若將AC1全部用作2地址指令的OC,能再定義16條2地址指令; (b)8位OC中用11110000-11111110定義15條二地址指令,剩下的一個(gè)編碼11111111與下一個(gè)4位組成一個(gè)12位的操作碼,引出一地址指令;指令字長(zhǎng)與擴(kuò)展方法 (c)選11110000—11111101共14條2地址指令,留11111110,11111111為擴(kuò)展標(biāo)志,再與AC2組合,以此類推。

C、若選B(c),則可定義31條1地址指令,留一個(gè)編碼111111111111為擴(kuò)展標(biāo)志,與下一個(gè)4位組成16位操作碼,引出16條零地址指令;3、擴(kuò)展操作碼的另一個(gè)演變是用操作碼中的某一位或幾位來說明指令的格式與長(zhǎng)度,或是說明操作數(shù)的特征。 例如:小型機(jī)PDP-11是用操作碼最左邊一位(最高位15位)來指明指令操作處理的數(shù)據(jù)字長(zhǎng)度,當(dāng)?shù)?5位=0,是字指令,操作數(shù)是16位長(zhǎng)的字;當(dāng)15位=1,是字節(jié)指令,操作數(shù)是8位長(zhǎng)的字節(jié)。指令的分類-------按操作數(shù)的位置分存儲(chǔ)器-存儲(chǔ)器型(SS型)參與操作的數(shù)及其結(jié)果都放在內(nèi)存里。寄存器-存儲(chǔ)器型(RS型)一個(gè)操作數(shù)在寄存器,另一個(gè)在主存例如Intel80x86整數(shù)處理器結(jié)構(gòu)寄存器-寄存器型(RR型)讀取存儲(chǔ)器操作數(shù)只有LOAD指令,存儲(chǔ)存儲(chǔ)器操作數(shù)只有STORE指令,算術(shù)運(yùn)算ALU等操作均在寄存器之間進(jìn)行。具有簡(jiǎn)單、定長(zhǎng)的指令編碼例如大多數(shù)RISC處理器Pentium指令格式Pentium機(jī)的指令字長(zhǎng)度可變:從1字節(jié)到12字節(jié),還可以帶前綴非固定長(zhǎng)度的指令格式是典型的CISC結(jié)構(gòu)特征為了與它的前身80486保持兼容希望能給編譯程序的編制以更多靈活的編程支持前綴操作碼Mod-R/MSIB位移量立即數(shù)0~4B1~2B0~1B0~1B0~4B0~4B[例1]分析指令格式的特點(diǎn)單字長(zhǎng)二地址指令操作碼字段OP長(zhǎng)度為7位,可指定128條指令源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè))。兩個(gè)操作數(shù)均在寄存器中,所以是寄存器-寄存器型(RR)指令這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令1597430OP

--------源寄存器目標(biāo)寄存器[例2]分析指令格式的特點(diǎn)雙字長(zhǎng)二地址指令,用于訪問存儲(chǔ)器操作碼字段OP為6位,可以指定64種操作一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定),所以是寄存器-存儲(chǔ)器型(RS)指令15107430OP

--------源寄存器變址寄存器位移量(16位)

4.3操作數(shù)類型地址數(shù)據(jù)數(shù)值數(shù)據(jù)字符數(shù)據(jù)邏輯數(shù)據(jù)CPU可直接訪問的位置:寄存器、內(nèi)存、外設(shè)端口4.3指令和數(shù)據(jù)的尋址方式某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí),其存儲(chǔ)單元的編號(hào),就是該操作數(shù)或指令在存儲(chǔ)器中的地址尋址方式:形成指令或操作數(shù)的內(nèi)存地址的方式,或者說查找指令或數(shù)據(jù)的方式[尋址方式的類別]指令尋址方式:用于形成指令在內(nèi)存中的地址數(shù)據(jù)(操作數(shù))尋址方式:用于形成操作數(shù)在內(nèi)存中的地址,一般也包括數(shù)據(jù)在寄存器的情況順序?qū)ぶ罚褐噶畹刂吩趦?nèi)存中按順序安排,當(dāng)執(zhí)行一段程序時(shí),通常是一條指令接一條指令的順序執(zhí)行。跳躍尋址:是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令給出??梢詫?shí)現(xiàn)程序轉(zhuǎn)移。指令的順序?qū)ぶ贩绞街噶畹奶S尋址方式(程序的控制轉(zhuǎn)移)4.3.2操作數(shù)尋址方式指令中操作數(shù)字段的地址碼,是由形式地址(偏移量)和變址、間址等組合形成操作數(shù)的尋址:把操作數(shù)的形式地址,根據(jù)間址和變址等組合變換為操作數(shù)有效地址的過程形式地址D變址X

間址I

操作碼OP

操作碼字段操作數(shù)字段常用數(shù)據(jù)尋址方式隱含尋址:在指令中不明顯地給出操作數(shù)的地址立即尋址:指令的地址字段指出的不是操作數(shù)的地址,而直接是操作數(shù)本身直接尋址:在指令格式的地址字段中,直接給出操作數(shù)在內(nèi)存的地址寄存器尋址:指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號(hào),而是通用寄存器的編號(hào)。即操作數(shù)不放在內(nèi)存中,而是放在通用寄存器中(寄存器按名尋址)寄存器間接尋址:指令中指定的寄存器中的內(nèi)容不是操作數(shù),而是操作數(shù)的地址基址(寄存器相對(duì))尋址:基址寄存器的內(nèi)容加上指令中給定的形式地址(偏移量),形成操作數(shù)的有效地址例如,MOVAX,1234H;(AX)=1234H

立即尋址方式用來表示常數(shù),它常用于給寄存器或內(nèi)存單元賦初值。需要強(qiáng)調(diào)的是,立即尋址只能用于源操作數(shù),不能用于目的操作數(shù)。例如,MOVAX,1234H;(AX)=1234H

立即尋址方式用來表示常數(shù),它常用于給寄存器或內(nèi)存單元賦初值。需要強(qiáng)調(diào)的是,立即尋址只能用于源操作數(shù),不能用于目的操作數(shù)。直接尋址基址(寄存器相對(duì))尋址相對(duì)基址加變址尋址方式與其它尋址方式之間的變形關(guān)系源操作數(shù)指令的變形源操作數(shù)的尋址方式只有一個(gè)偏移量MOVAX,[100H]直接尋址方式只有一個(gè)寄存器MOVAX,[BX]

或MOVAX,[SI]寄存器間接尋址方式有一個(gè)寄存器和偏移量MOVAX,[BX+100H]

或MOVAX,[SI+100H]寄存器相對(duì)尋址方式有二個(gè)寄存器MOVAX,[BX+SI]基址加變址尋址方式有二個(gè)寄存器和常數(shù)項(xiàng)MOVAX,[BX+SI+100H]相對(duì)基址變址尋址方式尋址方式總結(jié)立即(數(shù))尋址存儲(chǔ)器直接尋址間接尋址變址尋址基址尋址基址加變址尋址在指令中在寄存器中在主存中在I/O端口中直接尋址寄存器間接尋址寄存器尋址寄存器間接尋址存儲(chǔ)器間接尋址堆棧尋址方式堆棧:一個(gè)“先進(jìn)后出FILO”或“后進(jìn)先出LIFO”存取的存儲(chǔ)區(qū)域,只有一個(gè)數(shù)據(jù)出入口,即當(dāng)前棧頂(不斷變化)兩種基本操作寫入:數(shù)據(jù)壓進(jìn)堆棧PUSH讀出:數(shù)據(jù)彈出堆棧操作POP存儲(chǔ)器堆棧使用主存部分空間作為堆棧區(qū)域寄存器堆棧(串聯(lián)堆棧)CPU內(nèi)部以堆棧方式存取數(shù)據(jù)的一組寄存器Word1Word2Word3Word4Word5StackPUSHPOP4.5典型指令系統(tǒng)一個(gè)完整的指令系統(tǒng),應(yīng)包含:數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算類指令、轉(zhuǎn)移指令、字符串指令和系統(tǒng)控制類指令。4.5.3精簡(jiǎn)指令系統(tǒng)為了增強(qiáng)處理器的功能,強(qiáng)化指令系統(tǒng):指令多、尋址方式復(fù)雜、格式變化,形成復(fù)雜指令集計(jì)算機(jī)CISC(ComplexInstructionSetComputer)研究標(biāo)明,CISC中最常用、最簡(jiǎn)單、最基本的指令僅占指令

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論