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