




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
指令格式從二進制位串上講,一條指令中包含兩部分:操作碼(OperationCode)和地址碼(AddressCode)。其中操作碼表明了指令的操作性質及功能,地址碼則給出了操作數的地址(即操作數的存儲位置)。指令是指示計算機執行某些操作的命令。一臺計算機的所有指令的集合構成該機的指令系統,也稱指令集。指令系統是計算機的主要屬性,位于硬件和軟件的交界面上1指令系統(1)地址碼結構計算機執行一條指令所需要的全部信息都必須包含在指令中。對于一般的雙操作數運算類指令來說,除去操作碼之外,指令還應包含以下信息:第一操作數地址,用A1表示。第二操作數地址,用A2表示。操作結果存放地址,用A3表示。下條將要執行指令的地址,用A4表示。這樣,一條指令的格式可以細分為(OP表示具體的操作,Ai表示地址):OPA1A2A3A4指令的含義:(A1)OP(A2)→A3
下條將要執行指令存儲在地址為A4開始的存儲單元優點:四地址指令格式的具有直觀,下條指令的地址明顯缺點:指令長度較長,占用的存儲空間較大。如果將指令按順序依次存儲在存儲器中,用一個程序計數器(ProgramCounter,PC)來存放指令地址。通常每執行一條指令,PC就自動加1(設每條指令只占一個主存單元),直接得到將要執行的下一條指令的地址。OPA1A2A3指令的含義:(A1)OP(A2)→A3(PC)+1→PC(隱含)執行一條三地址的雙操作數運算指令,至少需要訪問4次主存。第一次取指令本身,第二次取第一操作數,第三次取第二操作數,第四次保存運算結果。這種格式省去了一個地址,但指令長度仍比較長,所以在微型計算機中很少使用。三地址指令執行完后,主存中的兩個操作數均不會被破壞。然而,通常并不一定需要完整的保留兩個操作數。如果讓第一操作數地址同時兼作存放結果的地址(目的地址),這樣即得到了二地址指令,其格式為:OPA1A2指令的含義:(A1)OP(A2)→A1(PC)+1→PC(隱含)通常把A1稱為目的操作數地址,A2稱為源操作數地址。執行一條二地址的雙操作數運算指令,同樣至少需要訪問4次主存。只有一個地址的指令為一地址指令。那么另一個操作數來自何方呢?指令中雖未明顯給出,但隱含著放在CPU內部的一個特殊存儲器(專門寄存器)中的操作數。因為這個寄存器在連續性運算時,保存著多條指令連續操作的累計結果,故稱為累加寄存器(Accumulator,Acc)。它的指令格式為:OPA1指令的含義:(Acc)OP(A1)→Acc(PC)+1→PC(隱含)執行一條一地址的雙操作數運算指令,只需要訪問兩次主存。第一次取指令本身,第二次取第二操作數。第一操作數和運算結果都放在累加寄存器中,所以讀取和存入都不需要訪問存儲器。(2)操作碼指令系統中的每一條指令都有一個唯一確定的操作碼,指令不同,其操作碼的編碼也不同。通常,希望用盡可能短的操作碼字段來表達全部的指令。指令操作碼的編碼可以分為定長編碼和變長編碼兩類。定長編碼是一種最簡單的編碼方法,操作碼字段的位數和位置是固定的。為了能表示整個指令系統中的全部指令,指令的操作碼字段應當具有足夠的位數。定長編碼對于簡化硬件設計、減少指令譯碼的時間是非常有利的,在字長較長的大、中型計算機及超級小型計算機上廣泛采用。變長編碼的操作碼字段的位數不固定,且分散地放在指令字的不同位置上。這種方式能夠有效地壓縮指令中操作碼字段的平均長度,在字長較短的微型計算機上廣泛采用。最常用的非規整型編碼方式是擴展操作碼法。因為如果指令長度一定,則地址碼與操作碼字段的長度是相互制約的。為了解決這一矛盾,讓操作數地址個數多的指令(三地址指令)的操作碼字段短些,操作數地址個數少的指令(一或零地址指令)的操作碼字段長些,這樣既能充分地利用指令的各個字段,又能在不增加指令長度的情況下擴展操作碼的位數,使它能表示更多的指令。例如:設某計算機的指令長度為16位,操作碼字段為4位,有3個4位的地址碼字段,其格式為:如果按照定長編碼的方法,4位操作碼最多只能表示16條不同的三地址指令。假設指令系統中不僅有三地址指令,還有二地址指令、一地址指令和零地址指令,利用擴展操作碼法可以使在指令長度不變的情況下,指令的總數遠遠大于16條。4位操作碼的編碼0000~1110定義了15條三地址指令,留下1111作為擴展窗口,與下一個4位(A1)組成一個8位的操作碼字段。8位操作碼的編碼11110000~11111110定義了15條二地址指令,留下11111111作為擴展窗口,與下一個4位(A2)組成一個12位的操作碼字段。12位操作碼的編碼111111110000~111111111110定義了15條一地址指令,擴展窗口為111111111111,與A3組成16位的操作碼字段。最后,16條零地址指令由16位操作碼的編碼給出。指令系統中要求有15條三地址指令、15條二地址指令、15條一地址指令和16條零地址指令,共61條指令。顯然,只有4位操作碼是不夠的,解決的方法就是向地址碼字段擴展操作碼的位數。擴展的方法是:CPU指令集分類復雜指令集,ComplexInstructionSetComputer--CISC)精簡指令集(ReducedInstructionSetComputing-RISC)早期的CPU全部是CISC架構,它的設計目的是要用最少的機器語言指令來完成所需的計算任務。比如對于乘法運算,在CISC架構的CPU上,需要這樣一條指令:
MULADDRA,ADDRB
就可以將ADDRA和ADDRB中的數相乘并將結果儲存在ADDRA中。將ADDRA,ADDRB中的數據讀入寄存器,相乘和將結果寫回內存的操作全部依賴于CPU中設計的邏輯來實現。這種架構會增加CPU結構的復雜性和對CPU工藝的要求,但對于編譯器的開發十分有利。比如上面的例子,C程序中的a*=b就可以直接編譯為一條乘法指令。在CISC微處理器中,程序的各條指令是按順序串行執行的,每條指令中的各個操作也是按順序串行執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。今天只有Intel及其兼容CPU還在使用CISC架構。后續章節中所講述的8086CPU和MSC-51單片機的指令集都屬于復雜指令集。RISC架構要求軟件來指定各個操作步驟。上面的例子如果要在RISC架構上實現,將ADDRA,ADDRB中的數據讀入寄存器,相乘和將結果寫回內存的操作都必須由軟件來實現,程序:
MOVA,ADDRA;MOVB,ADDRB;MULA,B;STRADDRA,A。這種架構可以降低CPU的復雜性以及允許在同樣的工藝水平下生產出功能更強大的CPU,但對于編譯器的設計有更高的要求與傳統的CISC相比,RISC的指令格式統一,種類比較少,尋址方式也比復雜指令集少。當然處理速度就提高很多了。目前在中高檔服務器中普遍采用這一指令系統的CPU,特別是高檔服務器全都采用RISC指令系統的CPU:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。目前一些嵌入式的CPU也采用RISC指令集。2尋址技術所謂尋址,指的是尋找操作數的地址或下一條將要執行的指令地址,尋址技術是計算機設計中硬件對軟件最早提供支持的技術之一。
尋址技術包括編址方式和尋址方式。編址方式編址方式是指對各種存儲設備進行編碼的方式。在計算機中需要編址的設備主要有CPU中的通用寄存器、主存儲器和輸入輸出設備3種。如果存儲設備是CPU中的通用寄存器,在指令字中應給出寄存器編號;如果是主存的一個存儲單元,在指令字中應給出該主存單元的地址;如果是輸入輸出設備(接口)中的一個寄存器,指令字中應給出設備編號或設備端口地址或設備映像地址(與主存地址統一編址時)。目前使用最普遍的編址方式是字節編址,這是為了適應非數值應用的需要。字節編址方式使編址單位與信息的基本單位(一個字節)相一致,這是它的最大優點。然而,如果主存的訪問單位也是一個字節的話,那么主存的帶寬就太窄了,所以編址單位和主存的訪問單位是不相同的。通常主存的訪問單位是編址單位的若干倍。在采用字節編址的機器中,如果指令長度是32位。那么每執行完一條指令,程序計數器要加4。如果數據字長是32位,當連續訪問存儲器時,每讀寫完一個數據字,地址寄存器要加4。由此可見,字節編址方式存在著地址信息的浪費。指令中地址碼的位數指令格式中每個地址碼的位數是與主存容量和最小尋址單位(即編址單位)有關聯的。常用的編址單位有字編址、字節編址和位編址。指令尋址和數據尋址尋址可以分為指令尋址和數據尋址。指令尋址—尋找下一條將要執行的指令地址數據尋址—尋找操作數的地址指令尋址比較簡單,它又可以細分為順序尋址和跳躍尋址。而數據尋址方式種類較多,其最終目的都是尋找所需要的操作數。順序尋址可通過程序計數器加1,自動形成下一條指令的地址;跳躍尋址則需要通過程序轉移類指令實現。跳躍尋址的轉移地址形成方式有3種:直接(絕對)、相對和間接尋址,它與下面介紹的數據尋址方式中的直接、相對和間接尋址是相同的,只不過尋找到的不是操作數的有效地址而是轉移的有效地址而已。基本數據尋址方式數據尋址方式是根據指令中給出的地址碼字段尋找真實操作數地址的方式。立即尋址指令中的地址碼不是操作數的地址,而是操作數本身寄存器尋址直接尋址指定的寄存器中存放著操作數指令中地址碼給出的地址A就是操作數的有效地址,即:EA=A間接尋址間接尋址意味著指令中給出的地址A不是操作數的地址,而是存放操作數地址的主存單元的地址,簡稱操作數地址的地址。(a)一級間接尋址(b)多級間接尋址寄存器間接尋址指令中的地址碼給出某一通用寄存器的編號,在被指定的寄存器中存放操作數的有效地址,而操作數則存放在主存單元中變址尋址變址尋址就是把變址寄存器Rx的內容與指令中給出的形式地址A相加,形成操作數有效地址,即EA=(Rx)+A。Rx的內容稱為變址值基址尋址基址尋址是將基址寄存器Rb的內容與指令中給出的位移量D相加,形成操作數有效地址,即EA=(Rb)+D。基址寄存器的內容稱為基址值。指令的地址碼字段是一個位移量,位移量可正、可負相對尋址相對尋址是基址尋址的一種變通,由程序計數器(PC)提供基準地址,指令中的地址碼字段作為位移量D,兩者相加后得到操作數的有效地址,即EA=(PC)+D3CPU結構和功能1)指令控制程序的順序控制,稱為指令控制。由于程序是一個指令序列,這些指令的相互順序不能任意顛倒,必須嚴格按程序規定的順序進行,因此,保證機器按順序執行程序是CPU的首要任務。2)操作控制一條指令的功能往往是由若干個操作信號的組合來實現的。因此,CPU管理并產生由內存取出的每條指令的操作信號。把各種操作信號送往相應的部件,從而控制這些部件按指令的要求進行動作。3)時間控制對各種操作實施時間上的控制,稱為時間控制。因為在計算機中,各種指令的操作信號均受到時間的嚴格控制。另一方面,一條指令的整個執行過程也受到時間的嚴格控制。只有這樣,計算機才能有條不紊地自動工作。4)數據加工所謂數據加工,就是對數據進行算術運算和邏輯運算處理。完成數據的加工處理,這是CPU的根本任務。因為,原始信息只有經過加工處理后才能對人們有用。數據加工過程是由復雜數字電路構成的運算器完成的。CPU的寄存器4參數與型號CPU的主要參數時鐘頻率/主頻地址總線寬度數據總線寬度3)數據總線寬度數據總線寬度指的是數據總線的條數。數據總
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑業安全責任協議書
- 租房交換協議書
- 造假就業協議書
- 道路修補協議書
- 聯防互助協議書
- 租賃模具協議書
- 房管所合同解除協議書
- 砂仁管理協議書
- 珠海市政府合作協議書
- 紙箱調價協議書
- 2025+CSCO非小細胞肺癌診療指南解讀課件
- 醫院后勤考試試題及答案
- 紡織設備電氣控制技術考核試卷
- 互聯網運營思維
- T∕CACM 1085-2018 中醫治未病技術操作規范 調神益智針法預防血管性認知障礙
- -小學英語人稱代詞與物主代詞講解課件(共58張課件).課件
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- 七年級英語下冊閱讀理解專項練習題100篇含答案
- 腦損傷病情觀察意識狀態的分級
- 請假通用員工請假單模板
- 八年級音樂下冊 第7單元《當兵的人》好男兒就是要當兵課件1 湘教版
評論
0/150
提交評論