計算機組成基礎5教程資料_第1頁
計算機組成基礎5教程資料_第2頁
計算機組成基礎5教程資料_第3頁
計算機組成基礎5教程資料_第4頁
計算機組成基礎5教程資料_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

計算機組成基礎

第二版

FundamentalsofComputerOrganization

孫德文章鳴嬛

2016年9月

面向CS2013專業(yè)規(guī)范教材2023/3/26上海交通大學2

第5章

指令系統(tǒng)3教學建議指令系統(tǒng)是計算機全部指令的集合,是CPU的一個重要特性。指令系統(tǒng)同硬件電路的工作密切相關。本章主要內(nèi)容論述指令與指令系統(tǒng)介紹兩類指令系統(tǒng)——80x86系列指令系統(tǒng)和MIPS機指令系統(tǒng)兩種典型的CPU結構指令流程——指令執(zhí)行過程要求重點講解指令的尋址方式和機器指令的組成及解釋兩種典型的CPU結構的組成及特點正確分析基本指令的指令流程。4指令系統(tǒng)5.1指令與指令系統(tǒng)5.2介紹兩類指令系統(tǒng)5.3指令流程55.1指令與指令系統(tǒng)5.1.1指令格式5.1.2尋址方式65.1.1指令格式指令指令是指示計算機執(zhí)行某種基本操作的命令,CPU能執(zhí)行的指令是用二進制代碼表示的機器指令機器指令由操作碼(opcode)和操作數(shù)(operand)兩部分——稱為“字段”組成。機器指令操作碼字段指出該指令的功能——執(zhí)行何種操作。若操作碼字段有n位,則可表示2n條指令——有2n種不同的基本操作。操作數(shù)字段指出該指令的操作對象,通常為一個立即數(shù)(在指令代碼中直接給出)、寄存器中內(nèi)容、存儲單元的內(nèi)容或I/O端口的內(nèi)容:

8機器指令1.若為立即數(shù),則操作數(shù)字段即該立即數(shù)的二進制表示;2.若為寄存器內(nèi)容,則操作數(shù)字段即該寄存器的地址,以寄存器地址的二進制編碼表示例如CPU有8個寄存器,則這8個寄存器地址可用3位二進制碼“000”~“111”表示之;3.若為存儲器內(nèi)容,則操作數(shù)字段即該存儲器地址的二進制表示。通常把操作數(shù)字段稱為“地址碼”

9機器指令按指令執(zhí)行過程,操作數(shù)有源操作數(shù)和目的操作數(shù)之分,源操作數(shù)——參予操作的原始數(shù)椐,目的操作數(shù)——指令執(zhí)行后的結果數(shù)據(jù)。102.指令格式按指令操作的不同,源操作數(shù)可以是1個,也可以是2個,而有的指令無操作數(shù),據(jù)此,按指令中地址碼個數(shù)的不同,指令格式可分為:零地址指令一地址指令二地址指令三地址指令111.零地址指令指令格式如下指令中只有操作碼字段(op),而無操作數(shù)——地址碼字段。這類指令在如下兩種情況下出現(xiàn)。12零地址指令一種是該條指令運行時不需要操作數(shù),例如80x86系列中的空操作指令NOP(機器碼格式為90H)和暫定指令HLT(機器碼格式為F4H);另一種是指令有操作對象——操作數(shù)的,但該操作數(shù)是指令操作碼已指定的,通常是指定對累加器進行操作,稱為“隱地址”——操作數(shù)由指令操作碼隱含約定。13零地址指令例如80x86系列中的BCD修正指令DAA(機器碼格式為27H),該指令是在進行BCD碼加法操作后,對AL寄存器中的內(nèi)容進行修正操作,顯然操作數(shù)為AL,但該指令的機器碼中27H為操作碼,無表示操作數(shù)AL的代碼,但操作碼27H中己隱含約定操作數(shù)為AL。采用隱地址指令減少了指令的長度,簡化了指令的結構。142.一地址指令指令格式如下該類指令的功能是:op(A)或(AC)op(A)AC15一地址指令其中op為表示該指令的功能;

A為一個操作數(shù)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址;

AC為累加器(在一地址指令中為“隱地址”,指令中無表示AC的地址碼);(A)為地址碼等于A的寄存器、內(nèi)存或I/O端口的中的內(nèi)容(AC)為累加器AC中的內(nèi)容16采用一地址指令的兩種情況一種是單操作數(shù)指令,源與目的為同一操作數(shù),由指令中地址碼A指定。例如80x86系列中的增量指令INCCL的機器碼格式為:EDC1H即1110110111000001f1f21f22f23f1字段EDH和f22字段表示這是8位增量指令,f21字段11說明是寄存器操作數(shù)、f23字段指出寄存器為CL。17采用一地址指令的兩種情況另一種是雙操作數(shù)——一個操作數(shù)由指令的地址碼A給出,另一個操作數(shù)是隱含的,一般為累加器AC。例如80x86系列中的乘法指令MULCL的機器碼格式為F6E1H即1111011011100001f1f21f22f23f1字段的11110110和f22的100表示該指令為兩個8位數(shù)相乘,f21的11表示是兩個寄存器相乘,f23的001表示乘數(shù)為CL,執(zhí)行AL×CL,結果送AX的操作,其中被乘數(shù)AL和乘積AX在機器碼格式中無操作數(shù)字段表示。183.二地址指令指令格式如下該類指令的功能是:(A1)op(A2)A119二地址指令其中op為表示該指令的功能;A1為一個源操作數(shù)和目的操作數(shù)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址;A2為另一個操作數(shù)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址,也可以是立即數(shù);(A1)為地址碼等于A1的寄存器、內(nèi)存或I/O端口的中的內(nèi)容(A2)為地址碼等于A2的寄存器、內(nèi)存或I/O端口的中的內(nèi)容20指令的特點上述零地址、一地址和二地址指令的特點是:指令代碼短、硬件實現(xiàn)簡單以及執(zhí)行速度快。一般用于小型機和微型機中,因為這兩類機器的結構較簡單而且字長較短。21三地址指令指令格式如下該類指令的功能是:(A2)op(A3)A122三地址指令其中op為表示該指令的功能;A2為第一個源操作數(shù)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址,也可以是立即數(shù);A3為第二個源操作數(shù)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址,也可以是立即數(shù);A1為目的操作數(shù)(操作結果)的地址碼——寄存器名(寄存器的編號)、內(nèi)存或I/O端口的地址;(A2)為地址碼等于A2的寄存器、內(nèi)存或I/O端口的中的內(nèi)容(A3)為地址碼等于A3的寄存器、內(nèi)存或I/O端口的中的內(nèi)容23指令的特點三地址指令的特點是:指令代碼長、指令功能強、便于編程。一般用于大型機中,因為這類機器的結構較復雜而且字長較長。243.匯編語言指令匯編語言是一種符號語言,其特點是用符號形式表示計算機指令,用指令助記符代替機器指令的操作碼、用標識符代替地址碼。這是一種面向具體計算機的語言。匯編語言與機器語言相比、除保留了機器語言的優(yōu)點外,還具有易懂、易寫、易記、易調(diào)試和易修改等優(yōu)點。與高級語言相比,具有執(zhí)行速度快、節(jié)省內(nèi)存和控制精確等優(yōu)點。不同的CPU有不同的匯編語言。2580x86系列CPU的匯編語言指令1)部分指令助記符(以8086指令為例)見表5-1:268086指令278086指令288086指令2980X86匯編語言指令中所用到的寄存器

(以8086為例)30存儲器操作數(shù)3)80X86匯編語言指令中所用到的存儲器操作數(shù)表示為:[DISP]/[REG]/[REG+DISP]其中DISP為16位或32位立即數(shù)(對8086只能是16位立即數(shù));REG為16位或32位寄存器(對8086只能是16位寄存器),可形成寄存器間接尋址、基址尋址和變址尋址,也可以用二個寄存器形成基址變址尋址(見下一小節(jié))。315.1.2尋址方式指令的尋址方式是指“指令中操作數(shù)的表示形式”。指令中的操作數(shù)——操作對象通常來源于:立即數(shù)——操作數(shù)即指令代碼中的地址碼部分;寄存器——操作數(shù)在寄存器中(即指令代碼中的地址碼部分所指出的寄存器中的內(nèi)容);32

尋址方式內(nèi)存單元——操作數(shù)在內(nèi)存單元中(即指令代碼中的地址碼部分所指出的內(nèi)存單元中的內(nèi)容);I/O端口(I/O接口中存放信息的寄存器)——操作數(shù)在I/O端口中(即指令代碼中的地址碼部分所指出的I/O端口中的內(nèi)容);33尋址方式前兩種操作數(shù)的表示比較簡單,立即數(shù)操作數(shù)即指令中的地址碼部分;寄存器操作數(shù)由代表寄存器編號的二進制值表示地址碼。分別稱為“立即尋址”和“寄存器尋址”。存儲器操作數(shù)的地址碼即內(nèi)存單元的地址,稱為“存儲器(內(nèi)存)尋址”。由于內(nèi)存單元的地址一般較長,通常以其有效地址表示。而且有效地址又有多種表示,因此“存儲器尋址”又有多種表示形式。I/O端口操作數(shù)的地址較短,比“存儲器尋址”簡單些。34尋址方式計算機指令的尋址方式可歸納為如下幾種:立即尋址隱含尋址寄存器尋址直接尋址寄存器間接尋址存儲器間接尋址變址尋址、基址尋址相對尋址基址變址尋址等。351.立即尋址(圖5-1)立即尋址(immediatesddressing)操作數(shù)直接由指令中的地址碼給出,該操作數(shù)的尋址方式稱為“立即尋址”。如圖5-1所示。36立即尋址該指令是一個3地址的“邏輯與”指令,指令中的op1為操作碼,表示邏輯與操作;Rd為存放目的操作數(shù)的寄存器的編號、Rs1為存放一個源操作數(shù)的寄存器的編號、imm為一個立即數(shù),是另一個源操作數(shù)該指令功能是:37立即尋址即把編號為Rs1的寄存器中的內(nèi)容和指令中的立即數(shù)imm相“與”后的結果送另一個編號為Rd的寄存器中。這里的一個源操作數(shù)imm即為立即尋址。通常立即尋址的操作數(shù)用于對寄存器賦值,進行初始化,也用于要求有立即數(shù)參予的一些數(shù)據(jù)運算(算術和邏輯運算)的指令中。38立即尋址注意:立即數(shù)只能作為源操作數(shù),不能作為目的操作數(shù)。在匯編語言指令中,通常直接用數(shù)字表示操作數(shù),例如,ADDAL,20H,有的計算機中,在常數(shù)前加上#以表示立即數(shù),例如,ADDAL,#20H。392.寄存器尋址寄存器尋址(registeradressing)操作數(shù)是一個寄存器中存放的數(shù)據(jù),寄存器的編號由指令中對應的地址碼給出。圖5-1中的地址碼字段Rs1和Rd都是寄存器尋址的操作數(shù)。把指令中的地址碼——寄存器號Rs1和Rd作為指針,直接指向對應寄存器中的操作數(shù)。若寄存器號Rs1和Rd字段各為n位二進制代碼,可以有2n個寄存器作為操怍數(shù)。403.直接尋址(圖5-2)直接尋址(directaddressing)操作數(shù)存儲器中,存儲器的地址在指令中由代碼直接給出稱為“直接尋址”。如圖5-2所示。41直接尋址圖5-2指令中的X字段即內(nèi)存操作數(shù)的地址,據(jù)此代碼,從對應內(nèi)存中取出內(nèi)存操作數(shù)參予運算。操作數(shù)的地址是指令代碼的組成部分,適用于訪問固定的存儲單元。當內(nèi)存容量很大時,地址碼會很長。在匯編語言指令中,直接尋址中的內(nèi)存地址可直接在指令中用數(shù)字給出,有的計算機中在數(shù)字前后加上一個符號[]。42直接尋址例如,指令JUMP2000;ANDAL,[2000H]。以指令ANDAL,BL,[2000H]為例,指令功能為43直接尋址(圖5-3)該指令的機器碼如圖5-3所示。該指令也是一個3地址指令,指令中的op1為操作碼,表示邏輯“與”操作;Rd為存放目的操作數(shù)AL的寄存器的編號、Rs1為存放一個源操作數(shù)BL的寄存器的編號、addr為一個以立即數(shù)——直接地址表示的內(nèi)存單元地址碼,是另一個源操作數(shù)。44直接尋址該指令功能是:即把編號為Rs1的寄存器BL中的內(nèi)容和指令中以addr—2000H為地址的內(nèi)存單元中的內(nèi)容相“與”后的結果送另一個編號為Rd的寄存器AL中。這里的一個源操作數(shù)addr(地址碼2000H)即為直接尋址,由addr—2000H求得內(nèi)存操作數(shù)mem(2000H)——地址為2000H的內(nèi)存單元的內(nèi)容454.寄存器間接尋址(圖5-4)寄存器間接尋址(registerindirectadressing)

操作數(shù)在內(nèi)存中,內(nèi)存地址在寄存器中,指令中給出寄存器的編號,稱為”寄存器間接尋址”,如圖5-4所示。46寄存器間接尋址圖5-4指令中的R字段為寄存器編號,由此字段可找到對應的寄存器,從該寄存器中取出內(nèi)容(R)——X,即內(nèi)存操作數(shù)的地址,據(jù)此地址可從對應內(nèi)存中取出操作數(shù)。由于寄存器的內(nèi)容可以攺變,所以這種尋址方式具有很強的尋址能力。在匯編語言指令中,表示寄存器間接尋址中的寄存器通常用寄存器名,并在其前后加上符號()或[]。

47寄存器間接尋址例如,

ANDR1,(R2),R3;

MOVAX,[BX]。以指令ANDR1,(R2),R3;為例,指令功能為48寄存器間接尋址(圖5-5)該指令的機器碼如圖5-5所示。圖5-5指令中,Op1為操作碼,表示邏輯“與”操作,Rs1字段為寄存器R2的編號,由此字段可找到對應的寄存器R2,從該寄存器中取出內(nèi)容X即內(nèi)存操作數(shù)的地址,據(jù)此地址可從對應內(nèi)存中取出操作數(shù)。Rs2字段為寄存器R3的編號,由此字段可找到對應的寄存器R3,從該寄存器中取出內(nèi)容(R3),Rd為存放目的操作數(shù)寄存器R1的編號。49寄存器間接尋址該指令功能是:

即把編號為Rs1的寄存器R2中的內(nèi)容(Rs1)為地址尋址內(nèi)存,取出該地址對應的內(nèi)存單元中的內(nèi)容[(Rs1)]和指令中以編號為Rs2的寄存器R3中的內(nèi)容(Rs2)相“與”,將“與”后的結果送另一個編號為Rd的寄存器R1中。這里的一個源操作數(shù)Rs1——R2即為寄存器間接尋址,由Rs1——R2求得內(nèi)存操作數(shù)[mem(Rs1)]505.存儲器間接尋址存儲器間接尋址(memoryindirectadressing)操作數(shù)在存儲器的內(nèi)存單元1中,內(nèi)存單元1的地址X在另一個內(nèi)存單元2中,而內(nèi)存單元2的地址A在指令代碼中,這種尋址稱為“存儲器間接尋址”,又稱“間接尋址”,如圖5-6所示。51存儲器間接尋址(圖5-6)52存儲器間接尋址(A—Rs1,X—mem(Rs1),操作數(shù)—mem[mem(Rs1)])圖5-6的指令中,字段A給出內(nèi)存地址,由A找到內(nèi)存單元2,取出其內(nèi)容X,再以X為地址找到內(nèi)存單元1,該內(nèi)存單元1中存放的數(shù)即參予操作的操作數(shù)。這種尋址方式的尋址能力也很強,但執(zhí)行過程中需多次訪問存儲器,影響指令執(zhí)行的速度。在匯編語言指令中,內(nèi)存地址A用數(shù)字加上符號()或@()表示。例如:指令ADDR2,(2000)、ANDR1,@(R2),R353存儲器間接尋址(圖5-7)以指令ANDR1,@R2,R3為例,指令功能為該指令的機器碼如圖5-7所示。54存儲器間接尋址圖5-7指令中的Rs1字段為寄存器R2的編號,由此字段可找到對應的寄存器R2,從該寄存器中取出內(nèi)容(R2)——X即一級內(nèi)存操作數(shù)的地址,據(jù)此地址X可從對應內(nèi)存中((R2))——(X)中取出操作數(shù)((R2))——(X)。Rs2字段為寄存器R3的編號,由此字段可找到對應的寄存器R3,從該寄存器中取出內(nèi)容(R3),Rd為存放目的操作數(shù)寄存器R1的編號。55指令ANDR1,@R2,R3的功能即把編號為Rs2的寄存器R2中的內(nèi)容(Rs1)為一級地址的內(nèi)存單元中的內(nèi)容mem[mem(Rs1)]和指令中以編號為Rs2的寄存器R2中的內(nèi)容(Rs2)相“與”后的結果送另一個編號為Rd的寄存器R1中。這里的一個源操作數(shù)Rs1——R2即為存儲器間接尋址,由Rs1——R2二次尋址求得內(nèi)存操作數(shù)mem[mem(Rs1)]566.變址尋址(圖5-8)變址尋址(indexed(indexing)adressing)

操作數(shù)在內(nèi)存中,操作數(shù)的地址由兩部分組成,一個是寄存器中的數(shù)據(jù),另一個是指令中給出的一個地址碼,兩者相加之和即內(nèi)存操作數(shù)的地址。稱為“變址尋址”。如圖5-8所示。57變址尋址圖5-8的指令中,R字段為寄存器號,A為一個立即數(shù)的代碼,操作數(shù)的地址為(R)+A,(R)為寄存器號R對應的寄存器中的內(nèi)容。當寄存器中的內(nèi)容進行加1或減1操作后尋址時,可以用來對一個內(nèi)存數(shù)組進行訪問。在匯編語言指令中,變址尋址操作數(shù)的表示通常為A(R)。例如,指令ADDR2,100(R1)。

ADDR2,[R1+100]587.基址尋址基址尋址(baseadressing)操作數(shù)在內(nèi)存中,操作數(shù)的地址由兩部分組成,一個是寄存器中的數(shù)據(jù),另一個是指令中給出的一個地址碼,兩者相加之和即內(nèi)存操作數(shù)的地址。若寄存器中的數(shù)值是固定的,而地址碼的值是可變化的,這種尋址方式稱為”基址尋址“?;穼ぶ放c變址尋址的指令在形式上相似,其區(qū)別是變址尋址中,R中的值是變化的;而基址尋址中,R中的值是固定的。598.相對尋址(圖5-9)相對尋址(relativeadressing)操作數(shù)在內(nèi)存中,操作數(shù)的地址是程序計數(shù)器PC值加上一個偏移量A,而該偏移量在指令代碼中,稱為”相對尋址”。如圖5-9所示。60相對尋址由圖可見,操作數(shù)的地址為PC+A,A可以為正值,也可以為負值。通常A值小于內(nèi)存地址值,所以相對尋址能以較短的地址碼來訪問內(nèi)存。在匯編語言指令中,一般用A(PC)表示操作數(shù)的地址。例如,

ADDA,2000H(PC)619.隱含尋址隱含尋址(implicitadressing)指令中不給出操作數(shù),根據(jù)指令中操作碼即可確定操作數(shù)的存儲位置,操作數(shù)隱含在操作碼中,稱為”隱含尋址”,例如,指令PUSHAX中的源操作數(shù)是AX,目的操作數(shù)為堆棧指針SP指出的內(nèi)存單元,是隱含的。在大多數(shù)計算機中,累加器A、AL與AX常用作隱含尋址中的操作數(shù),例如,ADD#3,該指令中源操作數(shù)為立即數(shù)3,目的操作數(shù)為A是隱含的。又例如MULBL,乘數(shù)為BL,被乘數(shù)為AL,也是隱含的。625.2介紹兩類指令系統(tǒng)5.2.180x86系列指令系統(tǒng)5.2.2MIPS處理器的指令系統(tǒng)635.2.180x86系列指令系統(tǒng)在通用微機系統(tǒng)中,80x86及其兼容芯片是應用最多的處理器芯片,屬于CISC型的指令系統(tǒng)。為便于分析,以8086芯片為例說明CISC芯片指令編碼的特點。8086指令是變字長指令,不同指令的操作碼和尋址方式不同,指令長度也不一致,每條指令由1~6個字節(jié)組成。6480x86系列指令系統(tǒng)最常用的兩操作數(shù)的傳送、加、減、與、或指令的編碼格式如圖5-10所示。6580x86系列指令系統(tǒng)圖中:OPCODE(操作碼)——反映該指今的功能;TYPE(類型)——反映操作數(shù)的類型(字長等):ADDRESSMODE(尋址方式)——反映操作數(shù)的尋址方式,寄存器操作數(shù)的編碼也在其間;OPERAND(操作數(shù))——操作數(shù)中的立即數(shù)、內(nèi)存操作數(shù)中的位移量部分。對于實現(xiàn)“寄存器與寄存器,寄存器與存儲器之間”的上述操作的指令而言,圖5-118086指令編碼格式-1可細化為如圖5-11。6680x86系列指令系統(tǒng)第一字節(jié)中6位OPCODE可表示64個不同的操作,D位表示數(shù)據(jù)傳送的方向:D=0,寄存器為源操作數(shù),D=1,寄存器為目的操作數(shù),W位表示操作數(shù)是字還是字節(jié):W=1,為字操作,W=0,

為字節(jié)操作6780x86系列指令系統(tǒng)第二字節(jié)中3位REG字段的編碼如表5-3兩個操作數(shù)中有一個是寄存器,其編碼如表6-A所示。另一個是寄存器或是存儲器,其指令代碼由第二個字節(jié)中的MOD字段和R/M字段決定,如表5-4所示。表5-33位REG字段的編碼REGW-1(字操作)W-0(字節(jié)操作)000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBH68REGW-1(字操作)W-0(字節(jié)操作)000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBH表5-4MOD字段和R/M字段MODR/M00011011W=0W=1000[BX]+[SI][BX]+[SI]+D8[BX]+[SI]+D16ALAX001[BX]+[DI][BX]+[DI]+D8[BX]+[DI]+D16CLCX010[BP]+[SI][BX]+[SI]+D8[BP]+[SI]+D16DLDX011[BP]+[DI][BX]+[DI]+D8[BP]+[DI]+D16BLBX100[SI][SI]+D8[SI]+D16AHSP101[DI][DI]+D8[DI]+D16CHBP110D16直接地址[BP]+D8[BP]+D16DHSI111[BX][BX]+D8[BX]+D16一BHDI697080x86系列指令系統(tǒng)MOD=00、01和10時,另一操作數(shù)為存儲器操作數(shù)MOD=00R/M=000~011:為不帶位移量的基址變址尋址R/M=100、101和111:為不帶位移量的寄存器間接尋址

=110:為直接尋址MOD=01R/M=000~011:為帶8位位移量的基址變址尋址

R/M=100~111:為帶8位移量的寄存器間接尋址MOD=10R/M=000~011:為帶16位位移量的基址變址尋址

R/M=100~111:為帶16位移量的寄存器間接尋址MOD=11時,另一操作數(shù)為寄存器操作數(shù):

8位寄存器為AL、BL、CL、DL、AH、BH、CH和DH16位寄存器為AX、BB、CX、DX、SP、BP、SI和DI7180x86系列指令系統(tǒng)例5-1查表寫出指令MOV[BX+2340H],AX的機器指令(OPCODE為100010)解:源操作數(shù)AX為寄存器,目的操作數(shù)[BX+2340H]為存儲器。該指令為16位操作。則機器指令共4字節(jié),各字段的取值分別為:第1字節(jié)中OPCODE為100010D=0、W=1第2字節(jié)中MOD=10,REG=000,R/M=1117280x86系列指令系統(tǒng)則該指令的機器碼如下:7380x86系列指令系統(tǒng)例5-2查表寫出指令ADD[BX+2340H],AX的機器指令(給出OPCODE為000000)解:只需改變操作碼即可,該指令的操作碼為000000,其余字段不變。則該指令的機器碼如下:7480x86系列指令系統(tǒng)7580x86系列指令系統(tǒng)例5-3查表寫出指令AND[BX+2340H],AX的機器指令(給出OPCODE為001000)解:只需改變操作碼即可,該指令的操作碼為001000,其余字段不變。則該指令的機器碼如下:7680x86系列指令系統(tǒng)7780x86系列指令系統(tǒng)例5-4查表寫出指令SUB[BX+2340H],AX的機器指令(給出OPCODE為001010)解:只需改變操作碼即可,該指令的操作碼為001010,其余字段不變。則該指令的機器碼如下:7880x86系列指令系統(tǒng)7980x86系列指令系統(tǒng)例5-5查表寫出指令MOV[BX+2340H],1234H的機器指令(給出OPCODE為1100011)解:該指令是將16位數(shù)送內(nèi)存[BX+2340H]源操作數(shù)為16位立即數(shù)1234H,機器碼增加了第5第6字節(jié)——DATAH和DATAL,本例中為1234H,指令的機器碼依次為34H,12H由于源操作數(shù)為16位立即數(shù),操作碼為7位——1100011則該指令的機器碼如下:8080x86系列指令系統(tǒng)8180x86系列指令系統(tǒng)對于同一組操作數(shù)的“加”、“誠”、“與”及“傳送”等操作的指令,其機器編碼僅操作碼字段不同。而例5-5是8086CPU中最長的指令——6字節(jié)長。825.2.2MIPS處理器的指令系統(tǒng)1.MIPS處理器2.MIPS系列微處理器的指令系統(tǒng)831.MIPS處理器MIPS處理器是MIPS技術公司推出的一種RISC芯片,MIPS技術公司是一家設計制造高性能、高檔次及嵌入式32位和64位處理器的公司,在RISC處理器方面占有重要地位。1984年,MIPS計算機公司成立。1998年,命名為MIPS技術公司。84MIPS處理器MIPS公司設計RISC處理器始于二十世紀八十年代初,1986年推出R2000處理器,1988年推R3000處理器,1991年推出第一款64位商用微處器R4000。之后又陸續(xù)推出R8000、、R10000、和R12000等型號。85

MIPS處理器的主要特征

1)指令系統(tǒng)簡單;

2)采用流水技術,依靠優(yōu)化編譯器進行指令序列的重新安排,以防止流水線中出現(xiàn)的相互沖突;

3)使用較多寄存器,32個通用寄存器、一對存儲64位數(shù)據(jù)的寄存器Hi,Lo以及異常PC寄存器epc。32個通用寄存器分別表示為$0到$31,其中$0固定為0。Hi,Lo寄存器用于存放定點乘法的結果。86MIPS處理器的主要特征

4)采用“比較與轉移”指令,比較和轉移這兩個動作在一條指令內(nèi)便可完成,如

beq$1,$2,1000。

5)沒有狀態(tài)寄存器。872.MIPS系列微處理器的指令系統(tǒng)MIPS處理器指令系統(tǒng)的主要特征:MIPS處理器的指令指令系統(tǒng)簡單。是等字長指令——32位字長。指令格式有三種——寄存器型(R型)、立即數(shù)型(I型)和轉移型(J型),如圖5-12所示。88MIPS系列微處理器的指令系統(tǒng)1.R(register)類型的指令。該類型指令從寄存器堆(registerfile)中讀取兩個源操作數(shù),計算結果寫回寄存器堆。

2.I(immediate)類型的指令。該類型指令使用一個16位的立即數(shù)作為一個源操作數(shù)。

3.J(jump)類型的指令。該類型指令使用一個26位的立即數(shù)作為跳轉的目標地址(targetaddress)。

89MIPS系列微處理器的指令系統(tǒng)90MIPS系列微處理器的指令系統(tǒng)

從操作功能分,MIPS的指令種類有:算術運算指令邏輯運算指令數(shù)據(jù)傳送指令條件轉移指令無條件跳轉指令特殊指令例外指令協(xié)處理器指令等91表5-5MIPS處理器算術運算指令92表5-6,表5-79394表5-10MIPS處理器指令操作碼定義95表5-11MIPS處理器指令擴展操作碼定義965.3指令流程5.3.1指令執(zhí)行過程5.3.2三種周期5.3.3二種典型的CPU結構類型

5.3.4

指令流程舉例1——單總線結構CPU5.3.5指令流程舉例2——專用通路結構CPU97

5.3.1指令執(zhí)行過程

計算機的所有工作都可歸納為執(zhí)行程序,而組成計算機程序的指令序列存放在主存儲器中。執(zhí)行程序的過程就是按序從主存儲器取出指令然后執(zhí)行指令的過程。CPU執(zhí)行指令的過程如下:CPU中的PC寄存器存放待取出的指令在主存中的地址。CPU按PC中的地址從主存中取出指令,除遇到轉移類指令外,程序中的指令是按順序執(zhí)行的,當取出一條指令后,PC中內(nèi)容更新為下一條指令的地址(實際過程是CPU每從主存中取出一個指令字節(jié),PC中的內(nèi)容就自動加1,若一條指令為4個字節(jié),則取出該指令后,PC+4,指向下一條指令地址)。

98指令執(zhí)行過程這是CPU能執(zhí)行順序程序的硬件支持。(若取出的指令為轉移類指令——轉移指令、調(diào)用指令和返回指令,則執(zhí)行該類指令時,將轉移的目標地址送PC,以使CPU能取出并執(zhí)行目標地址的指令)。上述過程稱為指令執(zhí)行的取指階段。取指后是分析指令,對指令進行譯碼,識別指令所需進行的操作,產(chǎn)生執(zhí)行該指令所需的操作控制信號。完成指令所指定的操作。然后再從主存儲器讀取下一條指令,并分析和執(zhí)行,如此重復循環(huán),直至程序中的指令執(zhí)行完。99指令執(zhí)行過程產(chǎn)生操作控制信號的過程是:取指階段從主存儲器中取出的指令,經(jīng)數(shù)據(jù)寄存儲器DR,存入指令寄存器IR,再送指令譯碼器ID譯碼、分析、識別,產(chǎn)生同該指令相對應的指令信號,經(jīng)操作控制器(協(xié)同時序產(chǎn)生器),產(chǎn)生執(zhí)行該指令所需要的滿足一定時序關系的一組操作控制信號。

1005.3.2三種周期在指令執(zhí)行過程中,涉及到三種周期——時間概念。指令周期機器周期時鐘周期1011.指令周期指令周期(InstructionCycle)是指從一條指令的啟動到下一條指令的啟動的間隔時間。亦即CPU執(zhí)行一條指令所需要的全部時間,包括取指令、譯碼和執(zhí)行指令所需的時間。指令周期的長短取決于指令的功能。不同指令的指令周期的長短不一樣,例如一條訪問內(nèi)存的指令(訪內(nèi)指令)在執(zhí)行過程中還要作一次訪問內(nèi)存的操作,顯然該指令的指令周期會大于非訪內(nèi)指令。1022.機器周期機器周期(MachineCycle)一條指令的執(zhí)行需要經(jīng)過若干個操作階段。機器周期是指令執(zhí)行中每一步操作所需的時間。指令周期可以用若干個機器周期來表示。一般用CPU完成一個運算操作所需時間作為機器周期的基本時間,代表大多數(shù)指令操作步驟的時間。通常以從主存中讀取一個指令字的最短時間規(guī)定為機器周期。機器周期又稱CPU周期。1033.時鐘周期時鐘周期(ClockCycle)時鐘周期是CPU主頻的周期(通常稱為節(jié)拍脈沖或T周期),它是CPU處理操作的最基本單位。104三種周期的關系三種周期的關系通常可表示為:一個指令周期由若干個機器周期組成,機器周期的個數(shù)隨指令不同而不同;一個機器周期又包含若干個時鐘周期。這是對早期的CPU而言。近代的新型計算機的CPU采用了并行處理技術,使CPU的平均指令周期可以小于一個時鐘周期。1055.3.3二種典型的CPU結構類型指令執(zhí)行過程取決于CPU的類型和具體指令的類型。介紹二種典型的CPU結構類型單總線結構的CPU專用通路結構的CPU1061.單總線結構的CPU(圖5-13)一種單總線結構的CPU結構示意圖如圖5-13所示。107

單總線結構的CPU圖中R0~Rn-1為n個通用寄存器GR(GeneralRegister),是一種多累加器結構。R0~Rn-1中任一個都可作為源操作數(shù)和目的(結果)操作數(shù)。ALU為算術邏輯部件,有兩個輸入端A、B,A由寄存器Y輸入,B直接來自內(nèi)部總線,可由其它送入總線的寄存器提供。108單總線結構的CPU送入ALU進行運算的二個操作數(shù)中必須有一個來自寄存器Y。ALU的輸出送寄存器Z,再通過內(nèi)部總線BUS送目的寄存器(由指令指定)。狀態(tài)寄存器SR(StatusRegister)保存運算結果的有關標志位。MAR為主存地址寄存器。存放被訪問信息在主存中的地址;109單總線結構的CPUMDR為主存數(shù)據(jù)寄存器,存放從主存取出的信息以及欲寫入主存的信息。ABUS和DBUS為CPU同主存之間的總線即芯片總線(片總線)。從主存取出的指令代碼經(jīng)MDR,IR送指令譯碼器ID譯碼后送入操作控制器,操作控制器根據(jù)ID送來的指令信號和時序產(chǎn)生器輸出的時序信號,產(chǎn)生指令執(zhí)行時所需要的操作控制信號C0~Ci-1。C0~Ci-1共i個操作控制信號,按指定時序送CPU和主存及I/O接口中的相關部件,以完成指定的數(shù)據(jù)處理任務。110單總線結構的CPU圖5-13中的總線BUS是寄存器與寄存器、寄存器與ALU之間傳送信息的公共通路,這一通路在CPU中稱為“數(shù)據(jù)通路”,這是一種稱為單總線的數(shù)據(jù)通路。在任一時刻總線上可以有多個部件同時接收數(shù)據(jù),但只能有一個部件向同一條總線發(fā)送數(shù)據(jù),否則會在總線上產(chǎn)生總線沖突,因此必須對連接到總線上的各部件(寄存器等)進行輸出端控制。111單總線結構的CPUCPU中各部件信息的輸入和輸出都需要有相應的控制信號,因此圖5-13中連接到總線上的各部件除輸入輸出的數(shù)據(jù)信號外,還有輸入控制信號和輸出控制信號,這些控制信號包括:

112單總線結構的CPURnout:Rn寄存器的輸出控制,當Rnout有效時,Rn中的數(shù)據(jù)輸出到總線;(n=0,1,2,…)Rnin:Rn寄存器的輸入控制,當Rnin有效時,總線上的數(shù)據(jù)輸入Rn;IRout:IR的輸出控制,當IRout有效時,IR上數(shù)據(jù)輸出到總線;IRin:IR的輸入控制,當IRin有效時,總線上數(shù)據(jù)輸入IR;,

113單總線結構的CPUPCout:PC的輸出控制,當PCout有效時,PC上數(shù)據(jù)輸出到總線;PCin:PC的輸入控制,當PCin有效時,總線上數(shù)據(jù)輸入PC;Yin:Y寄存器的輸入控制,當Yin有效時,總線上數(shù)據(jù)輸入Y;PC+1:PC寄存器更新控制,當PC+1有效時,PC值增量;MARin:MAR輸入控制,當MARin有效時,總線上地址信息送入MAR;114單總線結構的CPUMDRout:MDR輸出控制,當MDRout有效時,MDR上數(shù)據(jù)輸出到總線;MDRin:MDR輸入控制,當MDRin有效時,總線上數(shù)據(jù)送入MDR;Zout:Z寄存器的輸出控制,當Zout有效時,Z上數(shù)據(jù)輸出到總線;ADD:ALU加法操作控制,ADD有效時ALU對A、B兩端輸入數(shù)據(jù)進行加法運算;Read:讀主存信號,當Read有效時,CPU讀主存;Write:寫主存信號,當Write有效時,CPU寫主存;1152.專用通路結構的CPU

CPU中數(shù)據(jù)通路建立的另一種方法是采用專用通路,圖5-14是在MIPS機中采用的專用通路結構CPU的結構示意圖。MIPS機是一種RISC處理機。116圖5-14通路結構的CPU

117專用通路結構的CPU在專用通路結構的CPU中,在寄存器之間、寄存器同ALU之間建立專用的數(shù)據(jù)傳輸?shù)耐罚鲗S猛返臄?shù)據(jù)傳輸互不相關,控制較簡單,各寄存器之間的數(shù)據(jù)傳輸可以并行進行。由于數(shù)據(jù)通路的數(shù)量很多,必須合理安排數(shù)據(jù)通路的連接結構。MIPS機的指令是等字長指令,32位字長。指令格式三種——寄存器型(R型)、立即數(shù)型(I型)和轉移型(J型),如圖5-15所示。118專用通路結構的CPU

119專用通路結構的CPU圖5-15中op:操作碼,指定指令基本功能;

rs:源操作數(shù)1的寄存器編號;

rt:源操作數(shù)2的寄存器編號;

rd:目的操作數(shù)的寄存器編號;

shamt:移位次數(shù)(移位指令);

funct:功能碼,操作碼的擴展,指定操作類型;

immediate:立即數(shù);

target:目標地址。120專用通路結構的CPU指令存儲器中存放CPU欲執(zhí)行的程序;數(shù)據(jù)存儲器中存放程序執(zhí)行中所需的數(shù)據(jù),Di為數(shù)據(jù)輸入端口,D0為數(shù)據(jù)輸出端口,Addr為地址輸入端口。數(shù)據(jù)寄存器是一個寄存器組(或稱寄存器堆)的通用寄存器,是一個高速存儲部件,其中某個寄存器的內(nèi)容可以通過相應的寄存器號進行訪問。該寄存器組是一個具有多個地址端口和多個數(shù)據(jù)端口的高速存儲器件,在MIPS機中有三個寄存器端口。

121專用通路結構的CPU其中兩個是讀數(shù)據(jù)端口,一個是寫數(shù)據(jù)端口(這里的“讀”是指數(shù)據(jù)從寄存器輸出,“寫”是指數(shù)據(jù)寫入寄存器)。RX端和RY端為讀數(shù)據(jù)端的寄存器號端口。RZ端為寫數(shù)據(jù)端的寄存器號端口。DX端和DY端是數(shù)據(jù)讀出端口,DZ端是數(shù)據(jù)寫入端口,讀數(shù)據(jù)端口是將相應的寄存器號所指定的寄存器中存放的內(nèi)容輸出;寫數(shù)據(jù)端口是把數(shù)據(jù)輸入相應寄存器號所指定的寄存器中。讀/寫操作是在讀/寫控制信號的控制下進行的,由控制器發(fā)出,被讀/寫的寄存器接收。

122專用通路結構的CPU以R型指令為例:I31~26

為指令的操作碼OP(操作碼)字段送控制器譯碼分析,I25~21

為rs(源操作數(shù)1的寄存器號)送Rx端口,I20~16

為rt(源操作數(shù)2的寄存器號)送RY端口,I15~11

為rd(目的操作數(shù)的寄存器號)送RZ(經(jīng)選擇器1后);數(shù)據(jù)寄存器中取出rs和rd(即RX,RY端口內(nèi)容)找到對應的2個寄存器,取出其中數(shù)據(jù)從DX,DY端口輸出到ALU的兩個輸入端,運算后由ALU輸出,經(jīng)選擇器5后送數(shù)據(jù)寄存器的DZ端。

123專用通路結構的CPU以I型指令為例;同樣I31~26

為指令的op字段,rs+address為內(nèi)存地址。rs送RX從DX輸出rs對應寄存器中的內(nèi)容,I15~0為address(內(nèi)存地址位移量),經(jīng)“符號擴展”部件擴展為32位值,通過選擇器2送ALU,同rs對應的寄存器內(nèi)容相加后得內(nèi)存地址,送數(shù)據(jù)存儲器地址端口Addr,找到對應內(nèi)存單元內(nèi)容,從數(shù)據(jù)輸出口D0輸出到數(shù)據(jù)寄存器的DZ,DZ的地址由指令的I20~6

即rt字段經(jīng)選擇器1輸入到RZ。

124專用通路結構的CPUALU是一個多功能的運算部件,可完成多種運算(算術運算和邏輯運算)。ALU由若干個控制信號控制運算操作的類型,它有兩個32位的數(shù)據(jù)輸入端,一個32位的數(shù)據(jù)輸出端,輸入端與數(shù)據(jù)寄存器連接。125專用通路結構的CPU二個加法器∑1和∑2,∑1用于PC+4操作,以產(chǎn)生下一條指令地址,∑2用于產(chǎn)生相對轉移時的目標地址,即(PC+4)+地址位移量×4(即左移2位),因為是字地址末二位為“0”。五個選擇器用來選擇參加運算的操作數(shù)

126控制信號圖中各部件的操作由相應的控制信號控制,這些控制信號是:ALUopALU的運算操作控制,控制ALU操作類型;ALUsourceALU運算數(shù)據(jù)選擇,控制選擇器源數(shù)據(jù):①數(shù)據(jù)寄存器的DY,②經(jīng)符號擴展后的I15~0 (寄存器間接尋址中的位移量)。MEMread數(shù)據(jù)存儲器讀控制信號,MEMread有效,DO輸出;MEMwrite數(shù)據(jù)存儲器寫控制信號,MEMwrite有效,DI輸入;REGwrite數(shù)據(jù)寄存器寫控制信號,REGwrite有效,DZ輸入;MEMtoreg寫數(shù)據(jù)選擇控制信號,MEMtoreg有效,數(shù)據(jù)從DO→DZ。127控制信號PCwritePC寫控制信號;PC值寫入控制;PCsourcePC輸入選擇控制信號,PCsource作用于選擇器3,用來控制PC輸入的數(shù)據(jù)——下條指令的地址源。REGdst數(shù)據(jù)寄存器寫入信號RZ(DZ地址值)的選擇信號,用來選擇I15~11與I20~16;IRwrite指令寄存器IR寫控制信號;JUMP轉移選擇控制信號,控制選擇器4的輸入源1285.3.4指令流程舉例1

——單總線結構CPU本節(jié)所介紹的指令流程都是基于圖5-13所示的單總線結構CPU1291.運算指令的執(zhí)行過程ADDR3,R1,R2;R1+R2→R3①送指令地址指令地址在PC寄存器中,首先把PC值送存儲地址寄存器MAR,并從此地址讀內(nèi)存。

PC→MAR讀存儲器(read)130單總線結構CPU的指令流程②計算下一條指令的地址下一條指令地址=當前PC值+當前指令字節(jié)數(shù)若取單字節(jié)指令(下面的指令都是單字節(jié)指令),則PC+1→PC

③.讀入指令內(nèi)存儲器中指令代碼讀出,通過DBUS送CPU進行譯碼以決定該指令的操作。

DBUS→MDR→IR131單總線結構CPU的指令流程④源操作數(shù)寄存器R2送ALU的輸入寄存器Y。

R1→Y通過單總線⑤源操作數(shù)寄存器R2送ALU的輸入,同Y相加輸出到ALU寄存器ZR2+Y→Z⑥結果送指定寄存器R3Z→R3132單總線結構CPU的指令流程若有一個源操作數(shù)是內(nèi)存操作數(shù),則在第④步中還需進行一次訪存——該內(nèi)存操作;同樣,若運算結果要求存放在某一內(nèi)存單元,則在第⑥步也需有一次訪存——寫內(nèi)存操作。1332.訪問存儲器指令的執(zhí)行過程1).讀存儲器指令LOADR1,mem;(mem)→R1,mem為內(nèi)存地址值,以mem為地址的內(nèi)存單元中的數(shù)據(jù)送寄存器R1。①取指令PC→MAR讀存儲器(read)PC+1→PC②指令譯碼DBUS→MDR→IR譯碼134單總線結構CPU的指令流程③計算地址,讀內(nèi)存IR(地址段)→MAR讀存儲器(read),IR(地址段)為IR中地址部分。DBUS→MDR④寫回,存結果MDR→R1135單總線結構CPU的指令流程2)寫存儲器指令STORER1,mem;R1→(mem),R1內(nèi)容存入以mem為地址的內(nèi)存單元。①取指令PC→MAR讀存儲器(read)PC+1→PC

136單總線結構CPU的指令流程②指令譯碼DBUS→MDR→IR譯碼③計算地址寫內(nèi)存IR(地址段)→MARR1→MDR寫存儲器(write)在寫存儲器時,CPU通過IR(地址段)→MAR提供內(nèi)存地址,通過R1→MDR提供寫入的數(shù)據(jù)。1373.控制指令的執(zhí)行過程BRoffs;offs為相對轉移地址。PC+offs→PC①取指令PC→MAR讀存儲器(read),PC+1→PC②.指令譯碼DBUS→MDR→IR譯碼138控制指令的執(zhí)行過程計算地址PC→Y,Y+IR(地址段offs)→Z④轉移Z→PC上述各指令執(zhí)行時所需的控制信號如表5-12所示。139單總線結構CPU的指令流程1405.3.5指令流程舉例2

——專用通路結構CPU本小節(jié)以MIPS機器為例介紹專用通路CPU的指令執(zhí)行過程。141專用通路結構CPU的指令流程1.運算指令指令add$3,$1,$2;$3=$1+$2$1,$2,$3為三個通用寄存器①送指令地址PC內(nèi)容作為地址訪問內(nèi)存,首先把PC內(nèi)容送指令寄存器IR,PC+n→PC,n為該指令的字節(jié)數(shù),對MIPS機而言n=4.142專用通路結構CPU的指令流程則:IR=Memory[PC]

PC=PC+4Memory[PC]把內(nèi)存看作數(shù)組,PC為數(shù)組的下標。這里的存儲器是具有Cache的內(nèi)存系統(tǒng),若Cache被命中,取指令可在一個時鐘周期內(nèi)完成。143專用通路結構CPU的指令流程②指令譯碼,讀取操作數(shù)對指令寄存器IR中的操作碼OP(IR[31:26])進行譯碼,識別指令的操作類型是add(加法),再根據(jù)IR中的地址碼從相應的寄存器中讀取操作數(shù),由數(shù)據(jù)寄存器的2個輸出端A和B輸出到ALU。

A=R[IR[25:21]]

B=R[IR[20:16]]IR[25:21]表示IR寄存器的第25~21位構成的字段值,該值作為通用寄存器號。R[n],表示第n個通用寄存器的內(nèi)容。144專用通路結構CPU的指令流程③執(zhí)行控制器向算術邏輯單元ALU發(fā)送操作指令,由指令操作碼決定運算操作為加法操作。ALU進行加法操作,結果由ALU輸出端輸出ALUoutput=A+B145專用通路結構CPU的指令流程④寫回將運算結果寫回到結果寄存器、累加器或存儲器中,由指令中的I15~11指定結果寄存器rd寫回操作表示為

R[IR[15:11]]=ALUoutput在本例中2、3、4操作每個操作都只需1個時鐘周期TCLK,因為是寄存器的讀和寫,以及簡單的加法操作。如果是對內(nèi)存的讀和寫,或者復雜的運算,往往需要多個時鐘周期TCLK。146專用通路結構CPU的指令流程2.訪問存儲器指令1)讀存儲器指令lw$1,offs($2);$1=M[$2+offs]以$2+offs為地址的內(nèi)存內(nèi)容送$1寄存器。147專用通路結構CPU的指令流程①.取指令PC內(nèi)容作為地址訪問指令存儲器,[PC]→IR,PC內(nèi)容加上指令字節(jié)數(shù)→PC本指令的指令操作為:

IR=Memory[PC]PC=PC+4148專用通路結構CPU的指令流程②指令譯碼對指令中操作碼OP(IR[31:26])進行譯碼,識別指令操作類型為讀內(nèi)存,內(nèi)存地址為寄存器間接尋址offs($2)需要根據(jù)rs(即$2)同address(即offs)給出,兩者由ALU運算(加操作)得內(nèi)存地址。rs即R[IR[25:21]從數(shù)據(jù)寄存器A端(DX)讀出。A=R[IR[25:21]]149專用通路結構CPU的指令流程③地址計算根據(jù)內(nèi)存數(shù)據(jù)的尋址方式計算數(shù)據(jù)地址,內(nèi)存數(shù)據(jù)的地址為指令中給出的地址寄存器rs的內(nèi)容與指令中給出的偏移量offs之和,由ALU實現(xiàn)相加運算,計算結果從ALU輸出端輸出。注意,指令中給出的16位偏移量必須經(jīng)符號擴展部件作符號擴展為32位帶符號數(shù)。ALUoutput=A+Sign-extend(IR[15:0])150專用通路結構CPU的指令流程④訪存(讀)將計算所得到的地址送存儲器,從數(shù)據(jù)存儲器指定的地址單元中讀取數(shù)據(jù)。存儲器表示為一個數(shù)組Memory-dadt是操作結束后出現(xiàn)在存儲器數(shù)據(jù)端口Do的信息內(nèi)容。Memory-dadt=Memory[ALUoutput]Memory[ALUoutput]為以ALUoutput為地址的內(nèi)存單元內(nèi)容

151專用通路結構CPU的指令流程⑤寫回將讀取的數(shù)據(jù)寫入結果寄存器,或累加器中,本指令中的寄存器號在指令的[20:16]字段。R[IR[20:16]]=Memory–data152專用通路結構CPU的指令流程2)寫存儲器指令

SW$1,

溫馨提示

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

評論

0/150

提交評論