




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章指令系統(tǒng)指令系統(tǒng)概述計(jì)算機(jī)系統(tǒng)中運(yùn)行的軟件有系統(tǒng)軟件和應(yīng)用軟件兩種。系統(tǒng)軟件對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)進(jìn)行調(diào)度、管理、監(jiān)視、服務(wù),為用戶(hù)提供使用方便,擴(kuò)大機(jī)器功能,提高機(jī)器使用效率
應(yīng)用軟件是用戶(hù)針對(duì)某種領(lǐng)域?qū)嶋H應(yīng)用需求而開(kāi)發(fā)的軟件。許多通用商品化的應(yīng)用軟件現(xiàn)已成為系統(tǒng)軟件,如Word等前述所有各種軟件的設(shè)計(jì)基礎(chǔ)就是計(jì)算機(jī)的指令系統(tǒng)。名詞解釋?zhuān)褐噶睿好钣?jì)算機(jī)直接進(jìn)行某種基本操作的二進(jìn)制代碼串,也叫機(jī)器語(yǔ)言代碼。每條指令可以完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。從計(jì)算機(jī)組成的層次結(jié)構(gòu)來(lái)說(shuō),計(jì)算機(jī)的指令有微指令、機(jī)器指令和宏指令。微指令是微程序級(jí)的命令,它屬于硬件;宏指令是由若干條機(jī)器指令組成的軟件指令,它屬于軟件;機(jī)器指令則介于微指令與宏指令之間,通常簡(jiǎn)稱(chēng)為指令。每一條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。本章所討論的指令是機(jī)器指令。
指令系統(tǒng):一臺(tái)計(jì)算機(jī)能直接理解與執(zhí)行的全部指令的集合稱(chēng)為該機(jī)的指令系統(tǒng),也叫機(jī)器語(yǔ)言。指令系統(tǒng)是進(jìn)行計(jì)算機(jī)邏輯設(shè)計(jì)和編制程序的基本依據(jù)。它直接說(shuō)明了這臺(tái)計(jì)算機(jī)的功能.不同類(lèi)型CPU的指令系統(tǒng)是不能混用與兼容的,但同一系列的CPU一般升級(jí)后指令都有擴(kuò)充,并可兼容。復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)和精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)。 指令格式指令的結(jié)構(gòu)指令字:代表指令的一組二進(jìn)制代碼信息,通常簡(jiǎn)稱(chēng)指令;一條完整的指令稱(chēng)為一個(gè)指令字。指令長(zhǎng)度:指令字中二進(jìn)制代碼的位數(shù);指令格式:是指令字用二進(jìn)制代碼表示的結(jié)構(gòu)形式。一條指令的結(jié)構(gòu)可用如下形式來(lái)表示:操作碼字段地址碼字段n位操作碼能描述的操作最多有2n指令字長(zhǎng)度計(jì)算機(jī)中CPU能直接處理的二進(jìn)制的位數(shù)稱(chēng)為機(jī)器字長(zhǎng);指令字長(zhǎng)度:一個(gè)指令字包含的所有二進(jìn)制代碼的位數(shù)。有等長(zhǎng)指令字結(jié)構(gòu)和變長(zhǎng)指令字結(jié)構(gòu)。
指令字長(zhǎng)度選取原則
指令長(zhǎng)度應(yīng)為存儲(chǔ)器基本字長(zhǎng)的整數(shù)倍指令字長(zhǎng)應(yīng)盡量短指令短,可減少所需存儲(chǔ)量和加快運(yùn)行速度,但不能為了使指令短而影響指令系統(tǒng)的完備性和規(guī)整性。根據(jù)一條指令中有幾個(gè)操作數(shù)地址,可將該指令稱(chēng)為幾操作數(shù)指令或幾地址指令。單地址二地址三地址零地址目前二地址和單地址指令格式用的得最多。指令格式的五種類(lèi)型
——根據(jù)操作對(duì)象地址長(zhǎng)度的不同而劃分。零地址指令
也叫無(wú)操作數(shù)指令,這種指令有兩種可能:(1)無(wú)需任何操作數(shù)。例如:NOP(空操作指令)、HLT(停機(jī)指令)等。(2)所需的操作數(shù)是默認(rèn)的。OP零地址指令的指令中只有操作碼,而沒(méi)有地址碼。一地址指令
例如:遞增,移位,取反(NOTBX),加1指令(INCAX)
OPA一地址指令常稱(chēng)為單操作數(shù)指令。通常這種指令以運(yùn)算器中累加寄存器AC中的數(shù)據(jù)為被操作數(shù),指令字的地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄存器AC中。(AC)OP(A)→ACOP表示操作性質(zhì);(AC)表示累加寄存器AC中的數(shù);(A)表示內(nèi)存中地址為A的存儲(chǔ)單元中的數(shù)或運(yùn)算器中地址為A的通用寄存器中的數(shù);→表示把操作(運(yùn)算)結(jié)果傳送到指定的地方。二地址指令
OPA1A2二地址指令常稱(chēng)為雙操作數(shù)指令,它的兩個(gè)地址碼字段分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中或運(yùn)算器中通用寄存器的地址,A1作存放操作結(jié)果的地址。(A1)OP(A2)→A1例如:ADDOPD,OPS ANDOPD,OPS三地址指令
OPA1A2A3三地址指令字中有三個(gè)操作數(shù)地址。(A1)OP(A2)→A3A1為被操作數(shù)地址,也稱(chēng)源操作數(shù)地址;A2為操作數(shù)地址,也稱(chēng)終點(diǎn)操作數(shù)地址;A3為存放結(jié)果的地址。同樣,A1、A2、A3可以是內(nèi)存中的單元地址,也可以是運(yùn)算器中通用寄存器的地址。操作后源地址內(nèi)容不變僅被拷貝。多地址指令:用于實(shí)現(xiàn)成批數(shù)據(jù)處理。例如:ADDR1,R2,R3 (R3)=(R1)+(R2)從操作數(shù)的物理位置來(lái)說(shuō),又可歸結(jié)為三種類(lèi)型:1、訪問(wèn)內(nèi)存的指令格式,我們稱(chēng)這類(lèi)指令為存儲(chǔ)器-存儲(chǔ)器(SS)型指令;數(shù)據(jù)多2、訪問(wèn)寄存器的指令格式,我們稱(chēng)這類(lèi)指令為寄存器-寄存器(RR)型指令;速度快3、第三種類(lèi)型為寄存器-存儲(chǔ)器(RS)型指令。3、指令操作碼的編碼格式指令操作碼的位數(shù)限制指令系統(tǒng)中完成操作的指令條數(shù)。固定格式操作碼操作碼長(zhǎng)度固定,一般集中于指令字的一個(gè)字段中。在字長(zhǎng)較大的大中型以及超級(jí)小型機(jī)上廣泛使用。優(yōu)點(diǎn):有利于簡(jiǎn)化硬件設(shè)計(jì),減少譯碼時(shí)間可變格式操作碼通常在指令字中用一個(gè)固定長(zhǎng)度的字段來(lái)表示基本的操作碼,而對(duì)于一部分少地址指令則把它們的操作碼擴(kuò)充到該指令的地址字段,即操作碼長(zhǎng)度可以改變。這種方法在不增加指令字長(zhǎng)度的情況下可表示更多的指令,但增加了譯碼和分析難度,需更多硬件支持。微機(jī)中常使用此方式。指令操作碼的擴(kuò)展技術(shù)假設(shè)某機(jī)器的指令長(zhǎng)度為16位,包括4位基本操作碼和三個(gè)4位地址碼段。
15…1211……87……43…..04位基本操作碼可表示16個(gè)狀態(tài),因此如用4位操作碼則能表示16條三地址指令,而用8位操作碼則可表示256條二地址指令。而用12位操作碼則可表示4096條一地址指令。
OPA1A2A3可變格式操作碼的指令示例1同樣情況下,如果需要三地址、二地址、一地址指令各15條、零地址指令16條,則一樣能夠采用可變格式操作碼實(shí)現(xiàn)。例如可以這樣規(guī)定:15條三地址指令的操作碼為:0000~111015條二地址指令的操作碼為:前4位1111,即11110000~1111111015條一地址指令的操作碼為:前8位均為1,即111111110000~11111111111016條零地址指令的操作碼為:前12位均為1,即1111111111110000~1111111111111111可變格式操作碼的指令示例2再如:同樣情況下用可變格式操作碼分別形成三地址指令、二地址指令、一地址指令和零地址指令15、14、31、16條。按要求得到結(jié)果之一如下
15條三地址為: 0000~1110 14條二地址為:
11110000~11111101 31條一地址為:
111111100000~111111111110 16條零地址為:
1111111111110000~1111111111111111
可變格式操作碼的指令示例3
指令長(zhǎng)度與機(jī)器字長(zhǎng)的關(guān)系機(jī)器字長(zhǎng)是指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它與計(jì)算機(jī)的功能和用途有很大的關(guān)系,是計(jì)算機(jī)的一個(gè)重要技術(shù)指標(biāo)。字長(zhǎng)決定了計(jì)算機(jī)的運(yùn)算精度,字長(zhǎng)越長(zhǎng)計(jì)算機(jī)的運(yùn)算精度越高,因此高性能的計(jì)算機(jī)字長(zhǎng)較長(zhǎng)。地址碼長(zhǎng)度決定了指令直接尋址能力。擴(kuò)大尋址能力的方法,一是通過(guò)增加機(jī)器字長(zhǎng)來(lái)增加地址碼的長(zhǎng)度;二是采用地址擴(kuò)展技術(shù),把存儲(chǔ)空間分成若干個(gè)段,用基地址加位移量的方法來(lái)增加地址碼的長(zhǎng)度。指令字長(zhǎng)度是指一個(gè)指令字中包含二進(jìn)制代碼的位數(shù)。指令的長(zhǎng)度主要取決于操作碼的長(zhǎng)度、操作數(shù)地址的長(zhǎng)度和操作數(shù)地址的個(gè)數(shù)。指令的長(zhǎng)度通常為字節(jié)的整數(shù)倍。指令的長(zhǎng)度與機(jī)器的字長(zhǎng)沒(méi)有固定的關(guān)系,它既可以小于或等于機(jī)器的字長(zhǎng),也可以大于機(jī)器的字長(zhǎng)。前者稱(chēng)為短格式指令,后者稱(chēng)為長(zhǎng)格式指令。在Pentium系列機(jī)中,指令格式也是可變的:由8位、16位、32位、64位不等。指令字長(zhǎng)度等于機(jī)器字長(zhǎng)度的指令,稱(chēng)為單字長(zhǎng)指令;指令字長(zhǎng)度等于半個(gè)機(jī)器字長(zhǎng)度的指令,稱(chēng)為半字長(zhǎng)指令;指令字長(zhǎng)度等于兩個(gè)機(jī)器字長(zhǎng)度的指令,稱(chēng)為雙字長(zhǎng)指令。數(shù)據(jù)在內(nèi)存中的存放格式計(jì)算機(jī)中基本數(shù)據(jù)有邏輯數(shù)、定點(diǎn)數(shù)、無(wú)符號(hào)數(shù)、浮點(diǎn)數(shù)、字符數(shù)及數(shù)組等。目前微機(jī)所用的數(shù)據(jù)(字)長(zhǎng)度一般為32位,4個(gè)字節(jié)。內(nèi)存地址按字節(jié)編址。計(jì)算機(jī)指令系統(tǒng)可支持對(duì)字節(jié)、半字、字、雙字的運(yùn)算,有的還支持位操作。為便于硬件的實(shí)現(xiàn),一般要求多字節(jié)數(shù)據(jù)采用對(duì)準(zhǔn)數(shù)據(jù)邊界的方式儲(chǔ)存。不合要求則填充空白字節(jié)(無(wú)操作)代替。4字節(jié)32位存儲(chǔ)器字地址0字地址4半字地址8半字地址10半字地址12字節(jié)地址15半字地址22對(duì)準(zhǔn)邊界(下圖所示)格式存儲(chǔ)數(shù)據(jù):字節(jié)地址14字節(jié)地址19字節(jié)地址18字節(jié)地址16字節(jié)地址17字節(jié)地址20字節(jié)地址21地址048121620在數(shù)據(jù)對(duì)準(zhǔn)邊界存儲(chǔ)的計(jì)算機(jī)中,對(duì)于以二進(jìn)制表示的存儲(chǔ)地址來(lái)說(shuō),半字地址的最低位、字地址的最低兩位和雙字地址的最低三位恒為零。32位、4個(gè)字節(jié)地址048字節(jié)半字的一半一字的3/4半字有的計(jì)算機(jī)不要求對(duì)準(zhǔn)邊界存儲(chǔ)數(shù)據(jù),如下圖所示,但這種方式增加硬件的復(fù)雜程度,并且有可能導(dǎo)致訪問(wèn)次數(shù)增加。半字另一半一字的1/4半字
指令的尋址方式(編碼方式)尋址方式:指令中如何提供操作數(shù)或操作數(shù)地址。換句話(huà)說(shuō)就是規(guī)定如何對(duì)地址字段作出解釋以找到操作數(shù)。不同類(lèi)型計(jì)算機(jī)的尋址方式亦有差別,但大多可以歸結(jié)為立即尋址、直接尋址、間接尋址、變址尋址以及相對(duì)尋址等幾種尋址方式,或者這幾種方式的組合與變形。在這種方式中,指令的地址碼部分就是指令的操作數(shù),而不是操作數(shù)的地址。優(yōu)點(diǎn):取指同時(shí)取得操作數(shù),提高指令的運(yùn)行速度。缺點(diǎn):操作數(shù)的長(zhǎng)度受指令長(zhǎng)度的影響,且不便修改。適合操作數(shù)固定的情況。例:MOVAX,1AH的結(jié)果:(AX)←1AH一、立即數(shù)址方式二、直接尋址方式指令的地址碼部分給出的就是操作數(shù)在存儲(chǔ)器中的地址。特點(diǎn)是簡(jiǎn)單直觀, 便于硬件實(shí)現(xiàn),但 操作數(shù)地址是指令 的一部分,只能用 于訪問(wèn)固定的存儲(chǔ) 器單元。例:MOVAX,[0110H]存儲(chǔ)器OP……A操作數(shù)0110H三、寄存器尋址方式在指令的地址碼部分給出某一寄存器的名稱(chēng),而所需的操作數(shù)就在這個(gè)寄存器中。這種方式數(shù)據(jù)傳送快,計(jì)算機(jī)中多用。例:MOVAX,BX 其中BX為源操作數(shù)地址 AX為目的操作數(shù)地址操作的結(jié)果為將BX中的數(shù)據(jù)傳送(拷貝)到AX中。四、寄存器間接尋址方式在指令的地址碼部分直接給出的既不是操作數(shù)也不是操作數(shù)的地址,而是操作數(shù)地址的地址。優(yōu)點(diǎn):改變寄存器Rn中的內(nèi)容就可訪問(wèn)內(nèi)存的不同地址。修改十分方便。缺點(diǎn):二次尋址速度慢。例:MOVAX,[BX]存儲(chǔ)器OP……RnA:操作數(shù)Rn:A五、變址尋址方式變址尋址:把CPU中變址寄存器的內(nèi)容和指令地址部分給出的地址之和作為操作數(shù)的地址來(lái)獲得操作數(shù)。這種方式多用于字串處理、矩陣運(yùn)算和成批數(shù)據(jù)處理。OP…………..RxAKRx:加法器存儲(chǔ)器操作數(shù)A+K:A:使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律變化。六、基址尋址方式將整個(gè)存儲(chǔ)空間分成若干個(gè)段,段的首地址存放在基址寄存器中,操作數(shù)的存儲(chǔ)地址與段的首地址的距離即段內(nèi)偏移量由指令直接給出。操作數(shù)存儲(chǔ)單元的實(shí)際有效地址就等與基址寄存器的內(nèi)容與段內(nèi)偏移量之和。改變基址寄存器的內(nèi)容(基準(zhǔn)量)并由指令提供位移量就可以訪問(wèn)存儲(chǔ)器的任一單元。基址寄存器用于程序裝配可為浮動(dòng)程序分配存儲(chǔ)單元?;穼ぶ访嫦蛳到y(tǒng),解決程序的存儲(chǔ)定位問(wèn)題;變址尋址面向用戶(hù),用以訪問(wèn)字串和數(shù)組。優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。
七、相對(duì)尋址方式也稱(chēng)程序計(jì)數(shù)器尋址,其有效地址是指令中地址碼部分給出的形式地址(偏移量Disp)與程序計(jì)數(shù)器PC的內(nèi)容之和。即有效地址是以當(dāng)前PC的內(nèi)容為基準(zhǔn)浮動(dòng)的,浮動(dòng)的距離就是偏移量。偏移量可正可負(fù),通常用補(bǔ)碼表示。相對(duì)尋址方式主要應(yīng)用于相對(duì)轉(zhuǎn)移指令。由于目的地址隨PC變化不固定,所以非常適用于浮動(dòng)程序的裝配與運(yùn)行??偨Y(jié)操作數(shù)尋址有多種方式,它由指令中尋址方式字段給定。設(shè)指令格式如下:OP尋址特征MOD形式地址D常用的尋址方式有以下幾種:立即尋址操作數(shù)在指令中,即Data=D直接尋址操作數(shù)地址在指令中,即EA=D存儲(chǔ)器間接尋址操作數(shù)在內(nèi)存中,即EA=(D)寄存器尋址操作數(shù)在寄存器中,即Data=(R)寄存器間接尋址操作數(shù)在寄存器中,即EA=(D)隱含尋址操作數(shù)的地址隱含在指令的操作碼中變址尋址操作數(shù)的地址為變址寄存器中的內(nèi)容與位移量D之和,即EA=(R)變址+D基址尋址操作數(shù)的地址為基址寄存器中的內(nèi)容與位移量D之和,即EA=(R)基址+D相對(duì)尋址操作數(shù)的地址為程序計(jì)數(shù)器中的內(nèi)容與位移量D之和,即EA=(PC)+D復(fù)合型尋址方式相對(duì)間接尋址操作數(shù)的有效地址EA=((PC)+D)間接相對(duì)尋址EA=(PC)+(D)變址間接尋址EA=((R)+D)相對(duì)變址尋址EA=
(R)+(D)基址+變址尋址EA=(R)基址+(R)變址+D
例:一種兩地址RS型指令的結(jié)構(gòu)如下所示,其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過(guò)I,X,D的組合,可構(gòu)成下表所式的尋址方式。請(qǐng)寫(xiě)出六種尋址方式的名稱(chēng)。6位4位1位2位16位尋址方式表OP----通用寄存器IX偏移量D尋址方式I
X有效地址E算法說(shuō)明(1)(2)(3)(4)(5)(6)000110000110110011E=DE=(PC)±DE=(R2)±DE=(R3)E=(D)E=(R1)±DR2為變址寄存器R1為基址寄存器
解:1、直接尋址2、相對(duì)尋址3、變址尋址4、寄存器間接尋址5、間接尋址6、基址尋址尋址方式I
X有效地址E算法說(shuō)明(1)(2)(3)(4)(5)(6)000110000110110011E=DE=(PC)±DE=(R2)±DE=(R3)E=(D)E=(R1)±DR2為變址寄存器R1為基址寄存器寄存器間接尋址寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址EA,操作數(shù)在存儲(chǔ)器中。匯編格式:[R]功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址EA。偏移地址EA計(jì)算方法如下:EA=[SI] SI作間址寄存器。[DI] DI作間址寄存器。[BX] BX作間址寄存器。[BP] BP作間址寄存器。AX∶Accumulator,通用寄存器,算術(shù)運(yùn)算的主要寄存器。另外,所有的I/O指令都使用這一寄存器與外部設(shè)備傳送信息。其中AH是高8位,AL是低8位。BP∶BasePointer,基址指針寄存器??梢耘cSS寄存器聯(lián)用來(lái)確定堆棧中任一存儲(chǔ)單元的地址。它指示堆棧中任一單元的偏移量。非堆棧進(jìn)出指令要訪問(wèn)堆棧,只能通過(guò)BP進(jìn)行。BX∶Base,通用寄存器。在計(jì)算存儲(chǔ)器地址時(shí),經(jīng)常用作基址寄存器。其中BH是高8位,BL是低8位。CX∶Count,通用寄存器。在循環(huán)和串處理指令中用作隱含的計(jì)數(shù)器。其中CH是高8位,CL是低8位。DX∶Data,通用寄存器。在作雙字長(zhǎng)運(yùn)算時(shí),把DX和AX組合在一起存放一個(gè)雙字?jǐn)?shù),DX用來(lái)存放高位字。此外,對(duì)某些I/O操作,DX可用來(lái)存放I/O的端口地址。其中DH是高8位,DL是低8位。DS∶DataSegment,數(shù)據(jù)段寄存器。存放數(shù)據(jù)段的起始地址(高16位)。數(shù)據(jù)段存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù),如果程序中使用了串處理指令,則其源操作數(shù)也存放在數(shù)據(jù)段中。DI∶DestinationIndex,目的變址寄存器。與ES聯(lián)用,用來(lái)確定數(shù)據(jù)段中某一存儲(chǔ)單元的偏移地址。在串處理指令中,DI指出目的操作數(shù)的地址,隱含段為當(dāng)前的附加段。ES∶ExtraSegment,附加段寄存器。用于存放附加段的起始地址(高16位)。附加段是一個(gè)輔助的數(shù)據(jù)區(qū),也是串處理指令的目的操作數(shù)據(jù)存放區(qū)。SI∶SourceIndex,源變址寄存器。與DS聯(lián)用,用來(lái)確定數(shù)據(jù)段中某一存儲(chǔ)單元的偏移地址。在串處理指令中,SI指出源操作數(shù)的地址,隱含段為當(dāng)前的數(shù)據(jù)段。SS∶StackSegment,堆棧段寄存器。用來(lái)存放堆棧段的起始地址(高16位)。變址尋址變址尋址方式操作數(shù)的偏移地址EA為寄存器的內(nèi)容加位移量,操作數(shù)在存儲(chǔ)器中。匯編格式:X[R](X表示位移量,是8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,寄存器R的內(nèi)容加位移量X為操作數(shù)的偏移地址EA。圖形表示如下:偏移地址EA計(jì)算方法如下:執(zhí)行:(20036H)+(AX)→20036H執(zhí)行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。立即尋址立即尋址方式中,指令操作碼和操作數(shù)都在存儲(chǔ)器代碼段中。匯編格式:n(n為立即操作數(shù),是用8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,指令下一單元的內(nèi)容為立即操作數(shù)n。圖形表示:
直接尋址匯編格式:①含有變量的地址表達(dá)式。②段寄存器名:[EA]。功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址EA。圖形表示:指令的類(lèi)型一個(gè)指令系統(tǒng)常有幾十、幾百條指令(Intel8086具有133條指令),但按功能可以劃分為如下幾大類(lèi):1、數(shù)據(jù)傳送指令用以實(shí)現(xiàn)寄存器與寄存器之間(MOVAX,BX)、寄存器與內(nèi)存單元之間(MOV[0001H],AX)以及內(nèi)存單元相互之間的數(shù)據(jù)傳送。數(shù)據(jù)能夠被從源地址傳送到目的地址,而源地址中數(shù)據(jù)不變,——拷貝。包括:立即數(shù)送寄存器(MOVAX,1)、將數(shù)據(jù)送到不同字長(zhǎng)的寄存器中(MOVAL,78H、MOVAX,A0A0HMOVEAX,12345678H)以及寄存器組數(shù)據(jù)交換等操作指令。2、算術(shù)與邏輯運(yùn)算指令算術(shù)運(yùn)算指令:一般包括定點(diǎn)、浮點(diǎn)的加、減、乘、除運(yùn)算。根據(jù)運(yùn)算結(jié)果改變標(biāo)志寄存器的狀態(tài)位。
ADD,ADC(帶進(jìn)位加法),SUB,SBB(帶借位減法),INC,DEC,DIV,MUL邏輯運(yùn)算:一般包括邏輯與,邏輯或,邏輯非,邏輯異或等運(yùn)算,是以二進(jìn)制為單位按位進(jìn)行運(yùn)算。
OR,AND,XOR,NOT3、移位指令算術(shù)移位:左移時(shí)空位補(bǔ)0而符號(hào)位進(jìn)標(biāo)志位,右移時(shí)空位復(fù)制符號(hào)位而溢出位進(jìn)標(biāo)志位。邏輯移位:整體移位,空位補(bǔ)0,溢出進(jìn)標(biāo)志位。循環(huán)移位:有不帶進(jìn)位循環(huán)和帶進(jìn)位循環(huán)。前者循環(huán)后的溢出位進(jìn)標(biāo)志位,后者與標(biāo)志位一起循環(huán)。4、比較指令比較指令:CMPAX,BX作用:根據(jù)參加比較的兩個(gè)數(shù)相減后的結(jié)果,區(qū)分大于等于小于等情況對(duì)標(biāo)志位進(jìn)行置位操作。比較指令只影響標(biāo)志位,而不影響參加比較的操作數(shù)。5、轉(zhuǎn)移指令作用:根據(jù)邏輯判斷結(jié)果,改變程序的執(zhí)行順序無(wú)條件轉(zhuǎn)移指令強(qiáng)迫CPU運(yùn)行程序地址轉(zhuǎn)移至新地址開(kāi)始執(zhí)行程序。有條件轉(zhuǎn)移指令根據(jù)當(dāng)前運(yùn)算的結(jié)果進(jìn)行邏輯判斷,符合判斷條件則轉(zhuǎn)移到指令表明的新地址處執(zhí)行程序,否則繼續(xù)按原順序執(zhí)行原來(lái)的程序。根據(jù)實(shí)際需要,有條件轉(zhuǎn)移指令分為許多種類(lèi),其中包括單一條件轉(zhuǎn)移指令、復(fù)合條件轉(zhuǎn)移指令、適用于無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移指令、適用于有符號(hào)數(shù)的條件轉(zhuǎn)移指令以及某些特殊的條件轉(zhuǎn)移指令等等。6、調(diào)用指令和返回指令調(diào)用指令實(shí)現(xiàn)從一個(gè)程序轉(zhuǎn)去執(zhí)行子程序的操作;返回指令則使CPU結(jié)束執(zhí)行子程序而返回執(zhí)行原程序。7、輸入、輸出指令完成在中央處理器和外設(shè)之間進(jìn)行數(shù)據(jù)交換。輸入指令使數(shù)據(jù)由外設(shè)傳送到處理機(jī)輸出指令使數(shù)據(jù)由處理機(jī)傳送到外設(shè)
8、堆棧及堆棧操作指令
堆棧(stack}是由若干個(gè)連續(xù)存儲(chǔ)單元組成的先進(jìn)后出(firstinlastout,簡(jiǎn)稱(chēng)FILO)存儲(chǔ)區(qū)。第一個(gè)送入堆棧中的數(shù)據(jù)存放在棧底,最后送人堆棧中的數(shù)據(jù)存放在棧頂。棧底是固定不變的,而棧頂卻是隨著數(shù)據(jù)的人棧和出棧在不斷變化。為了表示棧頂?shù)奈恢?,有一個(gè)寄存器或存儲(chǔ)器單元用于指出棧頂?shù)牡刂?,這個(gè)寄存器或存儲(chǔ)器單元就稱(chēng)為堆棧指針(stackpointer簡(jiǎn)稱(chēng)SP),任何堆棧操作只能在棧頂進(jìn)行。
在一般計(jì)算機(jī)中堆棧主要用來(lái)暫存中斷和子程序調(diào)用時(shí)現(xiàn)場(chǎng)數(shù)據(jù)及返回地址,用于訪問(wèn)堆棧的指令只有壓人(即進(jìn)棧)和彈出(即退棧)兩種,它們實(shí)際上是一種特殊的數(shù)據(jù)傳送指令。壓人指令(PUSH)是把指定的操作數(shù)送人堆棧的棧頂,而彈出指令(POP)的操作剛好相反,是把棧頂?shù)臄?shù)據(jù)取出,送到指令所指定的目的地。在一般的計(jì)算機(jī)中,堆棧從高地址向低地址擴(kuò)展,即棧底的地址總是大于或等于棧頂?shù)牡刂罚ㄒ灿猩贁?shù)計(jì)算機(jī)剛好相反)。當(dāng)執(zhí)行壓人操作時(shí),首先把堆棧指針(SP)減量(減量的多少取決于壓人數(shù)據(jù)的字節(jié)數(shù),若壓人一個(gè)字節(jié),則減1;若壓人兩個(gè)字節(jié),則減2,以此類(lèi)推),然后把數(shù)據(jù)送人SP所指定的單元。當(dāng)執(zhí)行彈出操作時(shí),首先把SP所指定的單元(即棧頂)的數(shù)據(jù)取出,然后根據(jù)數(shù)據(jù)的大小(即所占的字節(jié)數(shù))對(duì)SP增量。9、字符串處理指令用于各種文字編輯與排版處理包括:字符串的傳送、比較、查找、匹配以及字符串的抽取和字符串的替換等操作指令。10、其它特殊指令專(zhuān)用指令用來(lái)完成特殊的專(zhuān)門(mén)操作。如:暫停、等待、空操作、位操作、以及開(kāi)中斷、關(guān)中斷等等。特權(quán)指令分配和管理系統(tǒng)資源,防止非法用戶(hù)對(duì)系統(tǒng)資源及其他用戶(hù)程序的修改、打印以及刪除等。需要說(shuō)明的是:計(jì)算機(jī)種類(lèi)不同其指令系統(tǒng)包括數(shù)量與功能亦有所不同,用其編程時(shí)務(wù)必參照相應(yīng)的指令系統(tǒng)手冊(cè)。指令系統(tǒng)的兼容性
采用不同指令系統(tǒng)編寫(xiě)的程序不能相互使用,同一系列兼容機(jī)采用具有向前兼容的特點(diǎn)。計(jì)算機(jī)的操作過(guò)程:加電開(kāi)外設(shè)開(kāi)主機(jī)產(chǎn)生RESET信號(hào)執(zhí)行程序停主機(jī)停外設(shè)停電計(jì)算機(jī)工作過(guò)程本身就是根據(jù)存儲(chǔ)執(zhí)行原理,按一定順序自動(dòng)執(zhí)行程序指令。指令執(zhí)行五階段:取指譯碼取操作數(shù)操作結(jié)果處理精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)簡(jiǎn)介一、RISC由來(lái)
計(jì)算機(jī)的不斷升級(jí)擴(kuò)充,同時(shí)又兼容過(guò)去產(chǎn)品使指令系統(tǒng)日趨復(fù)雜,形成了“復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)”。如VAXII/780由303條指令,18種尋址方式。Pentium機(jī)有191條,9種尋址方式。復(fù)雜指令系統(tǒng)增加硬件復(fù)雜性,降低機(jī)器運(yùn)行速度。經(jīng)實(shí)際分析發(fā)現(xiàn):1、各種指令使用頻率相差懸殊。80%指令使用很少。2、指令系統(tǒng)的復(fù)雜性帶來(lái)系統(tǒng)結(jié)構(gòu)的復(fù)雜性,增加了設(shè)計(jì)時(shí)間和售價(jià),也增加了VLSI設(shè)計(jì)負(fù)擔(dān),不利于微機(jī)向高檔機(jī)器發(fā)展。3、復(fù)雜指令操作復(fù)雜、運(yùn)行速度慢。由此提出“精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)”的概念。
RISC不是簡(jiǎn)單地簡(jiǎn)化指令系統(tǒng),而是通過(guò)簡(jiǎn)化指令使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理,從而提高運(yùn)算速度。1、僅選使用頻率高的一些簡(jiǎn)單指令和很有用但不復(fù)雜指令,指令條數(shù)少。2、指令長(zhǎng)度固定,指令格式少,尋址方式少3、只有取數(shù)/存數(shù)指令訪問(wèn)存儲(chǔ)器,其余指令都在寄存器中進(jìn)行,即限制內(nèi)存訪問(wèn)4、CPU中通用寄存器數(shù)量相當(dāng)多;大部分指令都在一個(gè)機(jī)器周期內(nèi)完成。5、以硬布線邏輯為主,不用或少用微程序控制6、特別重視編譯工作,以簡(jiǎn)單有效的方式支持高級(jí)語(yǔ)言,減少程序執(zhí)行時(shí)間二、RISC的特點(diǎn)
Pentium微處理器指令系統(tǒng)簡(jiǎn)介
Pentium處理器包括4個(gè)32位數(shù)據(jù)寄存器EAX,EBX,ECX和EDX、其低16位稱(chēng)為AX,BX,CX和DX,低16位還可分為兩個(gè)8位例如AX的低8位為AL,高8位為AH。寄存器名字中的E表示擴(kuò)展,所以EAX表示將16位AX擴(kuò)充到32位。還有5個(gè)32位寄存器用作指針或變址寄存器,它們是堆棧指針ESP基指針EBP,源變址寄存器ESI,目的變址寄存器EDI,指令指針EIP(即程序計(jì)數(shù)器PC)。
EAX,EBX,ECX,EDX,EBP,ESI和EDI可用作通用寄存器、AX,BX,CX,DX,BP。SI和DI可被程序員作為多種用途而應(yīng)用于實(shí)模式,但也可被指定為專(zhuān)用。例如,AX用于乘法和除法操作中或者在指令中用于訪問(wèn)I/O)端口;CX在循環(huán)操作中作為指針,CX的低8位CL寄存器還可作為移位操作的計(jì)數(shù)器;DX用于乘法和除法操作,還可作為訪問(wèn)I/O的指針;SI和DI在字符串操作中作為指針。Pentium擁有6個(gè)段寄存器,它用于控制訪問(wèn)主存和外設(shè)I/O端口。CS用于取指令,DS常被默認(rèn)用于讀/寫(xiě)數(shù)據(jù),堆棧指針SS用于堆棧操作,ES用于程序員希望的任何事情。附加的兩個(gè)段寄存器FS和GS是從80386開(kāi)始增加的,可供程序員任意使用、所有段寄存器都為16位。
設(shè)CS的內(nèi)容為A000H,IP(即PC)的內(nèi)容為5F00H,在實(shí)模式情況下形成訪存地址的過(guò)程如下:將CS的內(nèi)容左移4位即把A000
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水稻的一生教學(xué)課件
- 學(xué)生宿舍樓生活污水處理與回用方案
- 影視后期特效綜合應(yīng)用技術(shù)調(diào)色基礎(chǔ)52課件
- 水電清包工基本知識(shí)培訓(xùn)課件
- 水電施工圖識(shí)圖入門(mén)課件
- 二零二五年度水利水電工程安全施工勞務(wù)分包合同執(zhí)行細(xì)則
- 二零二五年廠房交易居間與節(jié)能改造服務(wù)協(xié)議
- 二零二五年度建筑工程施工合同編制與實(shí)施培訓(xùn)協(xié)議
- 二零二五年度電機(jī)產(chǎn)品研發(fā)與技術(shù)支持合作合同
- 2025版農(nóng)業(yè)科技推廣與應(yīng)用合作協(xié)議
- 兩性健康項(xiàng)目合作
- 房地產(chǎn)樣板間裝飾工程重點(diǎn)難點(diǎn)及措施
- 臨床醫(yī)技科室管理辦法
- 高溫熔融金屬企業(yè)安全管理培訓(xùn)
- 軍訓(xùn)愛(ài)國(guó)主題教育
- 醫(yī)保網(wǎng)絡(luò)安全培訓(xùn)
- 農(nóng)業(yè)種業(yè)企業(yè)成本效益分析及精益化管理策略研究
- 中小學(xué)檔案管理制度
- 2025年湖北省中考道德與法治試卷真題(標(biāo)準(zhǔn)含答案)
- 船舶公司保密管理制度
- GB/T 45681-2025鑄鋼件補(bǔ)焊通用技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論