《理學組成原理》由會員分享,可在線閱讀,更多相關《理學組成原理(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,#,一、機器指令,從計算機的層次結構來說,計算機指令有,微指令,、,機器指令,和,宏指令,之分。一臺計算機中所有機器指令的集合稱為這臺計算機的,指令系統(tǒng),。,指令系統(tǒng),是計算機硬件的語言系統(tǒng),因此也叫做,機器語言,。指令系統(tǒng)是,軟件和硬件的主要交界面,,指令系統(tǒng)表征了計算機的,基本功能,,決定了機器,硬件,所具有的,能力,,也決定機器的,硬件結構,。,對指令系統(tǒng)的要求,完備性,:,指令齊全,編程方便,高效性:,占內(nèi)存少,運行省時,規(guī)整性:,指令與運算規(guī)則統(tǒng)一,兼容性:,新舊機指令軟件兼容,當前的計算機指令系統(tǒng),
2、從其構成的復雜和完備程度,或者說設計中追求的不同的目標區(qū)分,可分為,CISC,和,RISC,兩類:,RISC,(,Reduced Instruction Set Computer,),通常稱為精簡指令系統(tǒng)的計算機,只有數(shù)目較少、格式與功能簡單、運行高效的指令,追求的是計算機控制器實現(xiàn)簡單,運行高速,更容易在單塊超大規(guī)模集成電路中芯片內(nèi)制做出來。,CISC,(,Complex Instruction Set Computer,),通常稱為復雜指令系統(tǒng)的計算機,是相對于,RISC,一詞而提出來的一種說法。其特點是:指令條數(shù)多,格式多樣,尋址方式復雜,每條指令的功能強,優(yōu)點是匯編程序設計容易些,但計
3、算機控制器的實現(xiàn)困難多,很多指令被使用的機會并不多。,返回,指令字長,指一條,指令中包含的二進制碼位數(shù),。,指令字長選取原則:,(1),長度盡可能短,以節(jié)省存儲空間和提高 處理速度;,(2),指令中各信息位利用率盡可能高。,常見結構:,(1),等長指令字結構:,指令系統(tǒng)的所有指令長度相等。特點:結構簡單,通常取:指令字長,=,機器字長。,(2),變長指令字結構:,各種指令長度不等,如半字長、單字長、雙字長等等。特點:結構靈活,能充分利用指令信息位,但指令的分析復雜。,指令字長,操作碼字段 地址碼字段,返回,指令的一般格式:,機器指令格式,操作碼:,表示指令的操作性質,即指令要,完成的功能。,地
4、址碼:,指出操作數(shù)的地址,即指令操,作對象所在的位置。,指令地址碼字段的格式,通常按所能給出的,操作數(shù)地址的個數(shù),進行安排。常用的有以下格式。,1,、三地址指令,操作碼,A1 A2 A3,(A1)OP(A2),A3,指令中的三個地址,,既可以是內(nèi)存地址,也可以是通用寄存器號,,根據(jù)操作數(shù)所處位置有:,存儲器,存儲器型(,SS,型)指令,寄存器,寄存器型(,RR,型)指令,存儲器,寄存器型(,SR,型)指令,地 址 碼 字 段,3,、一地址指令,操作碼,A,(AC)OP(A),AC,4,、零地址指令,操作碼,適用于控制類指令或堆棧結構計算機,,(SP)OP(SP-1),SP-1,2,、二地址指令
5、,操作碼,A1 A2,(A1)OP(A2),A1,為了表示不同功能的指令,指令格式中為每一條指令都要安排一個,唯一,的操作碼。,操作碼字段位數(shù)選取,原則,:應能表示指令系統(tǒng)中的,全部指令,。,常用操作碼格式:,1,、定長操作碼,指令系統(tǒng)中所有指令的操作碼位數(shù)一致。,特點:,譯碼結構簡單,譯碼時間短。,常用于字長較長的大、中型機。,操 作 碼 字 段,2,、可變長操作碼,指令系統(tǒng)中各種指令的操作碼位數(shù)不一致。,特點:,可充分利用指令信息位,有效地壓縮操,作碼的平均長度。廣泛用于字長較短的,小、微型機。,操作碼的擴展方法,思想:,當指令總長度不變,且多種地址碼結構混合使用時,可使用地址碼個數(shù)較少的
6、指令空出的地址碼部分,來增加操作碼的位數(shù)。,指令操作碼擴展方法舉例,15 12 11 6 5 0,OP,A1,A2,1111 000000,A,1111 000001,A,1111 111110,A,10,位操作碼,2,6,-1=63,條,一地址指令,1111 111111,000000,1111 111111,000001,1111 111111,111111,16,位操作碼,2,6,=64,條,零地址指令,0000,A1 A2,0001,A1 A2,1110,A1 A2,4,位操作碼,2,4,-1=15,條,二地址指令,操作數(shù)類型:,地 址:,在指令中出現(xiàn)為了獲得操作數(shù),可看,作無符號整數(shù)
7、。,數(shù) 字:,包括定點數(shù)、浮點數(shù)和十進制數(shù)。,字 符:,包括單字符、字符串和文本。,邏輯數(shù):,邏輯數(shù)形式上與數(shù)值數(shù)據(jù)無區(qū)別,但,邏輯數(shù),n,位間無數(shù)值和位權關系,運,算時按位進行。,二、操作數(shù)類型和操作類型,機器字長,指,CPU,一次能處理數(shù)據(jù)的最長位數(shù)。為了支持各種不同數(shù)據(jù)類型,每臺處理器能處理多種不同字長數(shù)據(jù)。例如,Pentium,可處理數(shù)據(jù)字長有:,8,(字節(jié))、,16,(字)、,32,(雙字)、,64,(四字);,PowerPC,可處理,8,(字節(jié))、,16,(半字)、,32,(字)、,64,(雙字)。不同字長的數(shù)據(jù)在內(nèi)存存放有兩種方式,即,邊界對準,和,邊界不對準,。,數(shù)據(jù)在存儲器中
8、的存放方式:,機器字長和存儲字長均為,32,位,若,CPU,可處理字節(jié)、半字、字和雙字,采用,“,邊界對準,”,方式時,不同字長數(shù)據(jù)在內(nèi)存存放形式如下:,雙字,字(地址,8,),字(地址,0,),字節(jié)(地址,7,),字節(jié)(地址,5,),字節(jié)(地址,6,),字節(jié)(地址,4,),半字(地址,14,),半字(地址,12,),0,雙字(地址,16,),8,12,16,20,4,字節(jié)存放次序可按,低位字節(jié)低地址或低位字節(jié)高地址兩種方式存放,。當所存儲數(shù)據(jù)不能滿足此要求時,可填充一至多個空白字節(jié)。,字(地址,8,),字(地址,0,),字節(jié)(地址,5,),字節(jié)(地址,4,),半字(地址,14,),半字(地址
9、,12,),0,8,12,4,12,字(地址,0,),字節(jié)(地址,5,),字節(jié)(地址,4,),半字(地址,14,),半字(地址,12,),0,8,4,字(地址,6,),字(地址,8,),半字(地址,10,),按邊界對準方式,且低位字節(jié)放在低地址。,按邊界不對準方式,且低位字節(jié)放在低地址。,特點:存儲空間利用率高,但存取速度受到影響。,1,、數(shù)據(jù)傳送,包括寄存器與寄存器、寄存器與存儲單元、存儲單元與存儲單元。,操作類型(指令類型),2,、算術邏輯運算,包括定點算術運算、浮點算術運算、邏輯運算和位操作。,3,、移位操作,包括算術移位、邏輯移位和循環(huán)移位。,4,、程序轉移,無條件轉移,條件轉移,子程
10、序調用與返回,中斷及中斷指令,5,、輸入輸出,對于,I/O,獨立編址的計算機,通常設有專門的,I/O,指令,完成,CPU,和,I/O,間的數(shù)據(jù)傳送。,6,、其它,包括停機指令、空操作指令、開,/,關中斷指令和置條件碼指令等。,尋址方式,(又稱編址方式)指的是確定本條指令的數(shù)據(jù)地址(,數(shù)據(jù)尋址,)及下一條要執(zhí)行的指令地址(,指令尋址,)的方法。,不同的計算機系統(tǒng),使用數(shù)目和功能不同的尋址方式,其實現(xiàn)的復雜程度和運行性能各不相同。通常需要在指令中為每一個操作數(shù)專設一個地址字段,用來表示數(shù)據(jù)的來源或去向的地址。在指令中給出的操作數(shù)的地址被稱為,形式地址,,使用形式地址信息并按一定的規(guī)則計算出來的一個
11、數(shù)值才是數(shù)據(jù)(或指令)的,實際地址(或有效地址)。,返回,三、尋址方式,指令的尋址方式反映了程序的運行軌跡。,1,、順序尋址,通過程序計數(shù)器,PC,加,1,,自動形成下一條指令的地址。,2,、跳躍尋址,對應于程序轉移執(zhí)行的方式,下一條指令的地址由轉移類指令直接指出,而不是由,PC,順序計數(shù)提供。,PC,內(nèi)容按轉移地址重新設置。,指令的尋址方式,在指令的操作數(shù)地址字段,可能要指出:,運算器中的累加器的編號或專用寄存器名稱(編號),輸入,/,輸出指令中用到的,I/O,設備的入出端口地址,內(nèi)存儲器的一個存儲單元(或一,I/O,設備)的地址,數(shù)據(jù)的尋址方式,現(xiàn)在的計算機中,尋址方式較多,為了正確、有效
12、地獲得操作數(shù),通常在指令中安排幾位標志位表示所用的尋址方式,稱為,“,尋址方式碼,”,或,“,尋址特征碼,”,。指令格式如下:,有多種,基本尋址方式,和某些,符合尋址方式,簡介如下,:,操作碼,尋址特征,1,D1,尋址特征,2,D2,1,、立即數(shù)尋址,所需的一個,操作數(shù),在指令的地址碼部分直接給出。,適用于操作數(shù)固定的情況,提高了指令的執(zhí)行速度。,返回,OP,Des,Imme,.,Data,Mod,源操作數(shù),說明,立即尋址只能作為雙操作數(shù)指令的源操作數(shù)。,Operand=Imme.Data,例:,MOV AX,1000H,2,、,存儲器直接尋址,返回,操作數(shù)在存儲器中,,指令地址字段直接給出操
13、作數(shù)在存,儲器中的地址。,OP,Des,A,Mod,Data,說明,EA=A,Operand=(A),例:,MOV AX,1000H,存儲器,A,3,、寄存,器直接尋址,返回,指令地址碼字段給出某一通用寄存器的編號(地址),,且,所需的操作數(shù)就在這一寄存器中。,OP,Des,R,i,Mod,說明,EA=R,i,Operand=(R,i,),例:,MOV AX,1000H,Data,寄存器,R,i,指令的地址碼字段給出的內(nèi)容既不是操作數(shù),也不是操作數(shù)的地址,而是,操作數(shù)地址的地址,。,分為一次間接或多次間接尋址。,4,、存儲器間接尋址,返回,OP,Des,A1,Mod,說明,EA=(A1),Op
14、erand=(A1),例:,MOV R1,(1000H),(,PDP-11,的指令),Data,A2,存儲器,A2,A1,指令地址碼字段給出某一通用寄存器的編號(地址),,該寄存器中存放的是操作數(shù)在內(nèi)存儲器中所在單元的地址,。,5,、寄存器間接尋址,返回,OP,Des,R,i,Mod,A,寄存器,R,i,Data,存儲器,A,說明,EA=(R,i,),Operand=(R,i,),例:,MOV AX,BX,操作數(shù)在存儲器中,指令地址字段給出一基址寄存器和一形式地址,基變址寄存器的內(nèi)容與形式地址之和是操作數(shù)的內(nèi)存地址。,6,、基址尋址,返回,OP,Des,A,Mod,Rb,N,寄存器,Rb,+,
15、Data,A+N,存儲器,A,A+1,說明,EA=(Rb)+A,Operand=(Rb)+A),例:,MOV AX,1000HBX,主要用于為程序或數(shù)據(jù)分配存儲區(qū),對多道程序或浮動程序很有用,解決了程序在存儲器中的定位和擴大尋址空間等問題,。,7,、變址尋址,返回,操作數(shù)在存儲器中,指令地址字段給出一變址寄存器和一形式地址,變址寄存器的內(nèi)容與形式地址之和是操作數(shù)的內(nèi)存地址。,OP,Des,A,Mod,Rx,N,寄存器,Rx,+,Data,A+N,存儲器,A,A+1,說明,EA=(Rx)+A,Operand=(Rx)+A),有的系統(tǒng)中,變址尋址完成后,變址寄存器的內(nèi)容將自動進行調整。,Rx,(R
16、x)+,(操作數(shù),Data,的字節(jié)數(shù)),例:,MOV AX,1000HDI,主要用于對數(shù)組操作和串操作,P316,表,7.1,操作數(shù)(或指令)的地址由程序計數(shù)器,PC,的內(nèi)容(即當前執(zhí)行指令的地址)和指令的地址碼相加得到。,8,、相對尋址,返回,OP,Des,A,Mod,N,PC,+,說明,EA=(PC)+A,Operand=(PC)+A),例:,JNE A,主要用于轉移指令,對浮動程序很有用。,Data,A+N,存儲器,A,A+1,P317,例子,堆棧是一種存儲裝置,它依據(jù),“,后進先出,(LIFO),”,的原則存儲數(shù)據(jù),有寄存器堆棧和存儲器堆棧,目前通常使用存儲器堆棧。存儲器堆棧是在主存中開辟一塊區(qū)域,該區(qū)域一端固定,稱為,棧底,;一端是浮動的,稱為,棧頂,,棧頂是數(shù)據(jù)唯一的出入口。,堆棧指針始終指向棧頂,。,9,、堆棧尋址,返回,主要有兩種堆棧的結構:,空棧情況,非空棧情況,xx.x,堆棧指示器,SP,xx.x,棧長,棧底,/,棧頂,存儲器,A,c,-1,堆棧指示器,SP,棧底,存儲器,A,a,A,b,A,c,a,c,b,棧頂,壓棧操作,(PUSH),:,SP SP-1,。,(S