版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),計(jì)算機(jī)組成原理 武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,第四章指令系統(tǒng),本章內(nèi)容 4.1 指令系統(tǒng)的發(fā)展和性能要求 4.2 指令格式 4.3 操作數(shù)類型 4.4 指令和數(shù)據(jù)的尋址方式 4.5 典型指令,4.1.1指令系統(tǒng)的發(fā)展 計(jì)算機(jī)的程序:是解決某一實(shí)際問題的指令序列; 指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令。,4.1 指令系統(tǒng)的發(fā)展和性能要求,3. 指令系統(tǒng):一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合,它是表征一臺(tái)計(jì)算機(jī)性能的重要因素,其格式與功能不僅直接影響到機(jī)器的硬件結(jié)構(gòu)也直接影響到系統(tǒng)軟件,影響到機(jī)器的適用范圍。,(1) 微指令:微程序級(jí)的命令,它屬于硬件;,(3) 宏指令:由若
2、干條機(jī)器指令和偽指令構(gòu)成的有效序列,它屬于軟件;,(2) 機(jī)器指令(指令):介于微指令與宏指令之間,每條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算。,從層次結(jié)構(gòu)的觀點(diǎn)看指令,可分三類:,4. 指令系統(tǒng)的發(fā)展 50年代:指令系統(tǒng)只有定點(diǎn)加減、邏輯運(yùn)算、數(shù)據(jù)傳送、轉(zhuǎn)移等十幾至幾十條指令。 60年代后期:增加了乘除運(yùn)算、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算、字符串處理等指令,指令數(shù)目多達(dá)一二百條,尋址方式也趨多樣化。 60年代后期開始出現(xiàn)系列計(jì)算機(jī) 系列計(jì)算機(jī)是指基本指令系統(tǒng)相同、基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī)。 系列計(jì)算機(jī)必要條件是同一系列的各機(jī)種有共同的指令集。而且新推出的機(jī)種指令系統(tǒng)一定包含所有舊機(jī)種的全部指令,
3、即實(shí)現(xiàn)一個(gè)“向上兼容”。因此舊機(jī)種上運(yùn)行的各種軟件可以不加任何修改便可在新機(jī)種上運(yùn)行,大大減少了軟件開發(fā)費(fèi)用。系列機(jī)解決了各機(jī)種的軟件兼容問題 。,發(fā)展情況,復(fù)雜指令系統(tǒng)計(jì)算機(jī),簡(jiǎn)稱CISC。但是如此龐大的指令系統(tǒng)不但使計(jì)算機(jī)的研制周期變長(zhǎng),難以保證正確性,不易調(diào)試維護(hù),而且由于采用了大量使用頻率很低的復(fù)雜指令而造成硬件資源浪費(fèi)。 精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī):簡(jiǎn)稱RISC,人們又提出了便于VLSI技術(shù)實(shí)現(xiàn)的精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)。 為什么會(huì)出現(xiàn)CISC到RISC的轉(zhuǎn)變 2/8規(guī)則 控制器設(shè)計(jì)難度下降,一個(gè)完善的指令系統(tǒng)應(yīng)滿足如下四方面的要求: 1. 完備性用匯編語(yǔ)言編程時(shí)指令足夠使用,而不必用軟件來(lái)實(shí)現(xiàn)。
4、完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。 有效性程序占據(jù)存儲(chǔ)空間小、執(zhí)行速度快。 規(guī)整性指令系統(tǒng)的對(duì)稱性、勻齊性、指令格式和數(shù)據(jù)格式的一致性。 對(duì)稱性:指令系統(tǒng)中所有的寄存器和存儲(chǔ)器單元都可同等對(duì)待,所有的指令都可使用各種尋址方式; 勻齊性:一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型; 指令格式和數(shù)據(jù)格式的一致性:指令長(zhǎng)度和數(shù)據(jù)長(zhǎng)度有一定的關(guān)系,以方便處理和存取。 4. 兼容性系列做到“向上兼容”,即低檔機(jī)上運(yùn)行的軟件可以在高檔機(jī)上運(yùn)行。,4.1.2對(duì)指令系統(tǒng)性能的要求,計(jì)算機(jī)語(yǔ)言具有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言之分。 高級(jí)語(yǔ)言如C,F(xiàn)ORTRAN等,其語(yǔ)句和用法與具體機(jī)器的指令系統(tǒng)無(wú)關(guān)。 低級(jí)語(yǔ)言分機(jī)
5、器語(yǔ)言(二進(jìn)制語(yǔ)言)和匯編語(yǔ)言(符號(hào)語(yǔ)言),這兩種語(yǔ)言都是面向機(jī)器的語(yǔ)言,和具體機(jī)器的指令系統(tǒng)密切相關(guān)。機(jī)器語(yǔ)言用指令代碼編寫程序,而符號(hào)語(yǔ)言用指令助記符來(lái)編寫程序。 高級(jí)語(yǔ)言與低級(jí)語(yǔ)言的性能比較: 高級(jí)語(yǔ)言的語(yǔ)句和用法與具體機(jī)器的指令系統(tǒng)無(wú)關(guān); 低級(jí)語(yǔ)言分機(jī)器語(yǔ)言和匯編語(yǔ)言,他們和具體機(jī)器的指令系統(tǒng)密切相關(guān)。 機(jī)器語(yǔ)言直接識(shí)別和執(zhí)行的唯一語(yǔ)言。 匯編語(yǔ)言與硬件的關(guān)系密切,編寫的程序緊湊、占內(nèi)存小、速度快,特別適合與編寫經(jīng)常與硬件打交道的系統(tǒng)軟件。 高級(jí)語(yǔ)言不涉及機(jī)器的硬件結(jié)構(gòu),通用性強(qiáng)、編寫程序容易,特別適合與編寫與硬件沒有直接關(guān)系的應(yīng)用軟件。,4.1.3低級(jí)語(yǔ)言與硬件結(jié)構(gòu)的關(guān)系,高級(jí)語(yǔ)言與
6、低級(jí)語(yǔ)言的比較,4.2 指令格式,指令字(簡(jiǎn)稱指令)即表示一條指令的機(jī)器字。 指令格式則是指令字用二進(jìn)制代碼表示的結(jié)構(gòu)形式,由操作碼字段和地址碼字段組成。,操作碼字段表征指令的操作特性與功能; 操作碼字段的位數(shù)取決于指令系統(tǒng)的規(guī)模,有固定位數(shù)和可變位數(shù); 若操作碼字段的位數(shù)固定為n位,則指令系統(tǒng)最多可表示2n條指令。,4.2.1操作碼,地址碼字段通常指定參與操作的操作數(shù)的地址或操作數(shù)本身。 根據(jù)一條指令中有幾個(gè)操作數(shù)地址,可將該指令稱為幾操作數(shù)指令或幾地址指令。 一般的操作數(shù)有被操作數(shù)、操作數(shù)及操作結(jié)果這三種數(shù),因而就形成了三地址指令格式。在此基礎(chǔ)上,后來(lái)又發(fā)展成二地址格式、一地址格式和零地址
7、格式,4.2.2地址碼,注意 (1)零地址指令的指令字中只有操作碼,而沒有地址碼。 這種指令有兩種情況: 一是該指令不需要操作數(shù),如空操作指令NOP; 二是該指令隱含一個(gè)操作數(shù)位于累加器AC中。如十進(jìn)制修正指令DAA。 (2)一地址指令常稱為單操作數(shù)指令。 這種指令也有兩種情況: 一是指令本身只需要一個(gè)操作數(shù),如求反指令NOT; 二是雖然需要兩個(gè)操作數(shù),但指令以運(yùn)算器中累加寄存器AC中的數(shù)據(jù)為被操作數(shù),指令字的地址碼字段所指明的數(shù)為操作數(shù),操作結(jié)果又放回累加寄存器AC中。 (AC)OP(A)AC OP表示操作性質(zhì);(AC)表示累加寄存器AC中的數(shù);(A)表示內(nèi)存中地址為A的存儲(chǔ)單元中的數(shù)或運(yùn)算
8、器中地址為A的通用寄存器中的數(shù); 表示把操作(運(yùn)算)結(jié)果傳送到指定的地方。,(3)二地址指令常稱為雙操作數(shù)指令,它的兩個(gè)地址碼字段分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中或運(yùn)算器中通用寄存器的地址,A1作存放操作結(jié)果的地址。 (A1)OP(A2) A1 (4)三地址指令字中有三個(gè)操作數(shù)地址。 (A1)OP(A2) A3 A1為被操作數(shù)地址,也稱源操作數(shù)地址; A2為操作數(shù)地址,也稱終點(diǎn)操作數(shù)地址; A3為存放結(jié)果的地址。 同樣,A1,A2,A3可以是內(nèi)存中的單元地址,也可以是運(yùn)算器中通用寄存器的地址。 二地址指令格式按操作數(shù)的物理位置又分三種。 存儲(chǔ)器-存儲(chǔ)器(SS)型指令 寄存器-寄存器(RR)型指
9、令: 寄存器-存儲(chǔ)器(RS)型指令:,指令字長(zhǎng)度:一個(gè)指令字中包含二進(jìn)制代碼的位數(shù)。有等長(zhǎng)和變長(zhǎng)兩種。 等長(zhǎng)指令的處理結(jié)構(gòu)簡(jiǎn)單,在對(duì)于操作碼字段位數(shù)可變的情況下,利用地址碼的個(gè)數(shù)不同,可將操作碼向地址碼部分延伸,從而增加指令條數(shù)。 機(jī)器字長(zhǎng):計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù),它決定了計(jì)算機(jī)的運(yùn)算精度。,4.2.3指令字長(zhǎng)度,其中: L為指令字長(zhǎng)度, N為機(jī)器字長(zhǎng)度,使用多字長(zhǎng)指令,目的在于提供足夠的地址位來(lái)解決訪問內(nèi)存任何單元的尋址問題。其主要缺點(diǎn)是必須兩次或多次訪問內(nèi)存以取出一整條指令,降低了CPU的運(yùn)算速度,又占用了更多的存儲(chǔ)空間。 等長(zhǎng)指令字結(jié)構(gòu):各種指令字長(zhǎng)度是相等的。這種指令字結(jié)構(gòu)
10、簡(jiǎn)單,且指令字長(zhǎng)度是不變的。 變長(zhǎng)指令字結(jié)構(gòu):各種指令字長(zhǎng)度隨指令功能而異。結(jié)構(gòu)靈活,能充分利用指令長(zhǎng)度,但指令的控制較復(fù)雜。,由于硬件只能識(shí)別1和0,所以采用二進(jìn)制操作碼是必要的,但是我們用二進(jìn)制來(lái)書寫程序卻非常麻煩。 為了便于書寫和閱讀程序,每條指令通常用2個(gè)或4個(gè)英文縮寫字母來(lái)表示。這種縮寫碼叫做指令助記符。 表4.2典型的指令助記符,4.2.4指令助記符,注意:在不同的計(jì)算機(jī)中,指令助記符的規(guī)定是不一樣的。因此,指令助記符還必須轉(zhuǎn)換成與它們相對(duì)應(yīng)的二進(jìn)制碼。這種轉(zhuǎn)換借助匯編程序可以自動(dòng)完成,匯編程序相當(dāng)于一個(gè)“翻譯”。,1.八位微型計(jì)算機(jī)的指令格式 8位微型機(jī)字長(zhǎng)只有8位,指令結(jié)構(gòu)是一
11、種可變字長(zhǎng)形式,包含單字長(zhǎng)、雙字長(zhǎng)、三字長(zhǎng)指令等多種。,單字長(zhǎng)指令,雙字長(zhǎng)指令,三字長(zhǎng)指令,內(nèi)存按字節(jié)編址,所以單字長(zhǎng)指令每執(zhí)行一條指令后,指令地址加。雙字長(zhǎng)指令或三字長(zhǎng)指令每執(zhí)行一條指令時(shí),指令地址要加2或加3,可見多字長(zhǎng)的指令格式不利于提高機(jī)器速度。,4.2.5指令格式舉例,2.PDP/11系列機(jī)指令格式 PDP/11系列機(jī)指令字長(zhǎng)16位,其指令格式如下表所示。 表4.3 PDP/11系列機(jī)指令格式,從表中看出,在PDP/11中,操作碼字段是不固定的,其長(zhǎng)度也是不相同的。這樣做可以擴(kuò)展操作碼以包含較多的指令。但是操作碼字段不固定,對(duì)控制器的設(shè)計(jì)來(lái)說必將復(fù)雜化。,3.pentium指令格式
12、pentium機(jī)的指令字長(zhǎng)度是可變的:從字節(jié)到12字節(jié),還可以帶前綴,指令格式如下所示。 0或10或10或10或1(字節(jié)數(shù)),1或2 0或1 0或1 0,1,2,4 0,1,2,4(字節(jié)數(shù)),2位3位 3位 2位 3位3位,這種非固定長(zhǎng)度的指令格式是典型的CICS結(jié)構(gòu)特征。一是為了與它的前身80486保持兼容,二是希望能給編譯程序?qū)懽髡咭愿囔`活的編程支持。 指令的前綴是可選項(xiàng),其作用是對(duì)其后的指令本身進(jìn)行顯示約定。每個(gè)前綴占個(gè)字節(jié)。,指令前綴 包括LOCK(鎖定)前綴和重復(fù)前綴。LOCK前綴用于多CPU環(huán)境中對(duì)共享存儲(chǔ)器的排他性訪問。重復(fù)前綴用于字符串的重復(fù)操作,以獲得比軟件循環(huán)方法更快的速
13、度。 段取代前綴 根據(jù)指令的定義和程序的上下文,一條指令所使用的段寄存器名稱可以不出現(xiàn)在指令格式中,這稱為段缺省規(guī)則。當(dāng)要求一條指令不按缺省規(guī)則使用某個(gè)段寄存器時(shí),必須以段取代前綴明確指明此段寄存器。 操作數(shù)長(zhǎng)度取代前綴和地址長(zhǎng)度取代前綴 在實(shí)地址模式下,操作數(shù)和地址的默認(rèn)長(zhǎng)度是16位;在保護(hù)模式下,若D1,操作數(shù)和地址的默認(rèn)長(zhǎng)度是32位,若D0,二者的默認(rèn)長(zhǎng)度是16位。 指令本身由操作碼字段、Mod-R/M字段、SIB字段、位移量字段、立即數(shù)字段組成。除操作碼字段外,其他四個(gè)字段都是可選字段。 Mod-R/M字段:規(guī)定了存儲(chǔ)器操作數(shù)的尋址方式,給出了寄存器操作數(shù)的寄存器地址號(hào)。 SIB字段:
14、和Mod-R/M字段一起,對(duì)操作數(shù)來(lái)源進(jìn)行完整的說明。,例1指令格式如下所示,其中OP為操作碼,試分析指令格式的特點(diǎn)。 15 9 8 7 4 3 0,解: (1)單字長(zhǎng)二地址指令。 (2)操作碼字段OP可以指定128條指令。 (3)源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定16個(gè)),所以是RR型指令,兩個(gè)操作數(shù)均在寄存器中。 (4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。,例2 指令格式如下所示,OP為操作碼字段,試分析指令格式特點(diǎn),解: (1)雙字長(zhǎng)二地址指令,用于訪問存儲(chǔ)器。 (2)操作碼字段OP為6位,可以指定64種操作。 (3)一個(gè)操作數(shù)在源寄存器(共16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中
15、(由變址寄存器和位移量決定)所以是RS型指令。,15 10 9 8 7 4 3 0,4.3 操作數(shù)類型以奔騰機(jī)為例,操作數(shù)類型 地址數(shù)據(jù):可看成無(wú)符號(hào)數(shù) 數(shù)值數(shù)據(jù):三種類型:定點(diǎn)數(shù)、浮點(diǎn)數(shù)、壓縮BCD 字符數(shù)據(jù):文本數(shù)據(jù)或字符串,目前廣泛使用ASCII碼。 邏輯數(shù)據(jù):一個(gè)單元中有幾位二進(jìn)制bit項(xiàng)組成,每個(gè)bit的值可以是1或0。當(dāng)數(shù)據(jù)以這種方式看待時(shí),稱為邏輯性數(shù)據(jù)。 Pentium數(shù)據(jù)類型(見P111表4.4) 常規(guī):字節(jié)、字、雙字、四字 整數(shù):字節(jié),字,雙字、四字中的有符號(hào)數(shù)二進(jìn)制補(bǔ)碼表示數(shù) 序數(shù):字節(jié),字,雙字、四字中的無(wú)符號(hào)整數(shù) BCD:壓縮BCD(0099)、未壓縮BCD(09)
16、近指針:段內(nèi)偏移的32位有效地址,用于不分段存儲(chǔ)器中所有指針和分段中的段內(nèi)訪問地址。 位串:連續(xù)的位序列,位串最長(zhǎng)可有2321 字符串:連續(xù)字節(jié)、字或雙字等 浮點(diǎn)數(shù):?jiǎn)尉?32位)、雙精度(64位) 、長(zhǎng)雙精度(80位),4.4 指令和數(shù)據(jù)的尋址方式,操作數(shù)或指令在存儲(chǔ)器中的地址:某個(gè)操作數(shù)或某條指令存放在某個(gè)存儲(chǔ)單元時(shí)其存儲(chǔ)單元的編號(hào)。 在存儲(chǔ)器中,操作數(shù)或指令字寫入或讀出的方式,有地址指定方式、相聯(lián)存儲(chǔ)方式和堆棧存取方式。 當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。 尋址方式分為兩類,即指令尋址方式和數(shù)據(jù)尋址方式,前者比較簡(jiǎn)單,后者比較復(fù)雜。 4.3.1指令的尋址方
17、式 指令的尋址方式有兩種:一種是順序?qū)ぶ贩绞剑?另一種是跳躍尋址方式。,順序?qū)ぶ贩绞?(PC)1PC,指令地址在內(nèi)存中按順序安排,當(dāng)執(zhí)行一段程序時(shí),通常是一條指令接一條指令的順序執(zhí)行。 從存儲(chǔ)器取出第一條指令,然后執(zhí)行這條指令;接著從存儲(chǔ)器取出第二條指令,在執(zhí)行第二條指令;接著再取出第三條指令這種程序順序執(zhí)行的過程,我們稱為指令的順序?qū)ぶ贩绞健?為此,必須使用程序計(jì)數(shù)器(又稱指令指針寄存器)PC來(lái)計(jì)數(shù)指令的順序號(hào),該順序號(hào)就是指令在內(nèi)存中的地址。,2.跳躍尋址方式 目標(biāo)地址PC,當(dāng)程序轉(zhuǎn)移執(zhí)行的順序時(shí),指令的尋址就采取跳躍尋址方式。 跳躍是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令
18、給出。 程序跳躍后,按新的指令地址開始順序執(zhí)行。指令計(jì)數(shù)器的內(nèi)容也必須相應(yīng)改變,以便及時(shí)跟蹤新的指令地址。 采用指令跳躍尋址方式,可以實(shí)現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,從而能縮短程序長(zhǎng)度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞谩V噶钕到y(tǒng)中的各種條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令,就是為了實(shí)現(xiàn)指令的跳躍尋址而設(shè)置的。,形成操作數(shù)的有效地址的方法,稱為操作數(shù)的尋址方式。 例如,一種單地址指令的結(jié)構(gòu)如下所示,其中用X,I,D各字段組成該指令的操作數(shù)地址。,4.3.2操作數(shù)尋址方式,指令中操作數(shù)字段的地址碼是由形式地址和尋址方式特征位等組合形成,因此,一般來(lái)說,指令中所給出的地址碼,并不是操作數(shù)的有效地址。 因此,尋址過程就是
19、把操作數(shù)的形式地址,變換為操作數(shù)的有效地址的過程。 具體的尋址方式有:隱含尋址立即尋址 直接尋址間接尋址 寄存器尋址寄存器間接尋址 偏移尋址(基值、變址、相對(duì)) 堆棧尋址 段尋址,1.隱含尋址 在指令中不明顯的給出而是隱含著操作數(shù)的地址。例如,單地址的指令格式,沒有在地址字段中指明第二操作數(shù)地址,而是規(guī)定累加寄存器AC作為第二操作數(shù)地址,AC對(duì)單地址指令格式來(lái)說是隱含地址。 2.立即尋址 指令的地址字段指出的不是操作數(shù)的地址,而是操作數(shù)本身。這種方式的特點(diǎn)是指令執(zhí)行時(shí)間很短,不需要訪問內(nèi)存取數(shù)。 例如:?jiǎn)蔚刂返囊莆恢噶罡袷綖?這里D不是地址,而是一個(gè)操作數(shù)。F為標(biāo)志位,當(dāng)F1,操作數(shù)進(jìn)行右移;
20、當(dāng)F0時(shí),操作數(shù)進(jìn)行左移。,3.直接尋址 直接尋址特點(diǎn)是:在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址D。 采用直接尋址方式時(shí),指令字中的形式地址D就是操作數(shù)的有效地址E,既ED。因此通常把形式地址D又稱為直接地址。此時(shí),由尋址模式給予指示。 如果用S表示操作數(shù),那么直接尋址的邏輯表達(dá)式為 S(E)(D),4.間接尋址 間接尋址的情況下,指令地址字段中的形式地址D不是操作數(shù)的真正地址,而是操作數(shù)地址的指示器,D單元的內(nèi)容才是操作數(shù)的有效地址。 如果把直接尋址和間接尋址結(jié)合起來(lái),指令有如下形式:,尋址特征位I0,表示直接尋址,這時(shí)有效地址ED; I1,表示間接尋址,這時(shí)有效地址E(D)。 間
21、接尋址方式是早期計(jì)算機(jī)中經(jīng)常采用的方式,但由于兩次訪存,影響指令執(zhí)行速度,現(xiàn)在已不大使用。,5.寄存器尋址方式 當(dāng)操作數(shù)不放在內(nèi)存中,而是放在CPU的通用寄存器中時(shí),可采用寄存器尋址方式。此時(shí)指令中給出的操作數(shù)地址不是內(nèi)存的地址單元號(hào),而是通用寄存器的編號(hào)。 6. 寄存器間接尋址方式 寄存器間接尋址方式與寄存器尋址方式的區(qū)別在于:指令格式中的寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址,該地址指明的操作數(shù)在內(nèi)存中 如:以8086 CPU的指令系統(tǒng)中MOV指令的源操作數(shù)為例 MOVAX,BX;源操作數(shù)是寄存器尋址 MOVAX,BX;源操作數(shù)是寄存器間接尋址,7.相對(duì)尋址方式 把程序計(jì)數(shù)器PC的內(nèi)容加上
22、指令格式中的形式地址D而形成操作數(shù)的有效地址。程序計(jì)數(shù)器的內(nèi)容就是當(dāng)前指令的地址?!跋鄬?duì)”尋址,就是相對(duì)于當(dāng)前的指令地址而言。 采用相對(duì)尋址方式的好處是程序員無(wú)須用指令的絕對(duì)地址編程,所編程序可以放在內(nèi)存任何地方。 此時(shí)形式地址D通常稱為偏移量,其值可正可負(fù),相對(duì)于當(dāng)前指令地址進(jìn)行浮動(dòng)。 假設(shè)D=1000H,PC=2000H,則有效地址=(PC)+D =2000H+1000H=3000H,操作數(shù)=(3000H)=1234H,PC,操作數(shù)=1234H,+,OP X3 D,1234H,3000H,8.基址尋址方式 基址尋址方式是將CPU中基址寄存器的內(nèi)容加上指令格式中的形式地址而形成操作數(shù)的有效地
23、址。 它的優(yōu)點(diǎn)是可以擴(kuò)大尋址能力。同形式地址相比,基址寄存器的位數(shù)可以設(shè)置得很長(zhǎng),從而可以在較大的存儲(chǔ)空間中尋址。,9.變址尋址方式 變址尋址方式與基址尋址方式計(jì)算有效地址的方法很相似,它把CPU中某個(gè)變址寄存器的內(nèi)容與偏移量D相加來(lái)形成操作數(shù)有效地址。 但使用變址尋址方式的目的不在于擴(kuò)大尋址空間,而在于實(shí)現(xiàn)程序塊的規(guī)律性變化。,10.段尋址方式 微型機(jī)中采用了段尋址方式,例如它們可以給定一個(gè)20位的地址,從而有1M存儲(chǔ)空間的直接尋址能力。為此將整個(gè)1M空間存儲(chǔ)器以64K為單位劃分成若干段。在尋址一個(gè)內(nèi)存具體單元時(shí),由一個(gè)基地址再加上某些寄存器提供的16位偏移量來(lái)形成實(shí)際的20位物理地址。這個(gè)
24、基地址就是CPU中的段寄存器。在形成20位物理地址時(shí),段寄存器中的16位數(shù)會(huì)自動(dòng)左移4位,然后以16位偏移量相加,,4.3.3尋址方式舉例,即可形成所需的內(nèi)存地址。 這種尋址方式的實(shí)質(zhì)還是基址尋址。,操作數(shù)尋址方式設(shè)計(jì)的要求,1.指令內(nèi)包含的地址盡可能短; 短地址指令占存儲(chǔ)空間小,且能減少存儲(chǔ)時(shí)間。 2.能訪問盡可能大的存儲(chǔ)空間; 3.地址能隱含在寄存器里; 寄存器字長(zhǎng)與機(jī)器字長(zhǎng)相同,一般對(duì)應(yīng)整個(gè)存儲(chǔ)空間。這樣在發(fā)生大跨步跳躍時(shí),用短指令也行。 4.希望在不改變指令的情況下改變地址的實(shí)際值;能夠處理數(shù)組,表格或數(shù)據(jù)串。 5.尋址方式盡可能簡(jiǎn)單。,1.pentium的尋址方式 外部地址總線寬度是
25、36位,但它也支持32位物理地址空間。 在實(shí)地址模式下,邏輯地址形式為段尋址方式:將段名所指定的段寄存器內(nèi)容(16位)左移4位,低4位補(bǔ)全0,得到20位段基地址,再加上16位段內(nèi)偏移,即得20位物理地址。 在保護(hù)模式下,32位段基地址加上段內(nèi)偏移得到32位線性地址。由存儲(chǔ)管理部件將其轉(zhuǎn)換成32位的物理地址。 Pentium的尋址方式,下面對(duì)32位尋址方式作幾點(diǎn)說明: 立即數(shù)可以是8位,16位,32位。 寄存器地址:一般指令或使用8位通用寄存器,或使用16位通用寄存器,或使用32位通用寄存器。對(duì)64位浮點(diǎn)數(shù)操作,要使用一對(duì)32位寄存器。少數(shù)指令以段寄存器來(lái)實(shí)施寄存器尋址方式。 直接尋址:也稱偏移
26、量尋址方式,偏移量長(zhǎng)度可以是8位,16位,32位。 基址尋址:基址寄存器B可以是上述通用寄存器中任何一個(gè)?;芳拇嫫鰾的內(nèi)容為有效地址。 基址偏移量尋址:基址寄存器B是32位通用寄存器中任何一個(gè). 比例地址偏移量尋址:也稱為變址尋址方式,變址寄存器I是32位通用寄存器中除ESP外的任何一個(gè),而且可將此變址寄存器內(nèi)容乘以1,2,4或8的比例因子S,然后再加上偏移量而得到有效地址。 ,兩種尋址方式是,兩種尋址方式的組合,此時(shí)偏移量可有可無(wú)。 相對(duì)尋址:適用于轉(zhuǎn)移控制類指令。用當(dāng)前指令指針寄存器EIP或IP的內(nèi)容(下一條指令地址)加上一個(gè)有符號(hào)的偏移量,形成CS段的段內(nèi)偏移。,立即尋址,操作數(shù),寄存
27、器間接尋址,存儲(chǔ)器間接尋址,變址尋址,基址尋址,基址加變址尋址,在寄存器中,在主存中,在I/O端口中,直接尋址(8位),間接尋址(16位 DX),在指令中,寄存器尋址,例3一種二地址RS型指令的結(jié)構(gòu)如下所示: 6位 4位 1位 2位16位,其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過I,X,D的組合,可構(gòu)成下表所示的尋址方式。 請(qǐng)寫出六種尋址方式的名稱。,解:直接尋址 相對(duì)尋址 變址尋址 寄存器間接尋址 間接尋址 基址尋址,例4 某16位機(jī)器所使用的指令格式和尋址方式如下所示,該機(jī)有兩個(gè)20位基址寄存器,四個(gè)16位變址寄存器,十六個(gè)16位通用寄存器,指令匯編格式中的S(源),
28、D(目標(biāo))都是通用寄存器,M是主存中的一個(gè)單元。三種指令的操作碼分別是MOV(OP)(A)H ,STA(OP)(1B)H ,LDA(OP)(3C)H。MOV是傳送指令,STA為寫數(shù)指令,LDA為讀數(shù)指令。,要求: 分析三種指令的指令格式與尋址方式特點(diǎn)。 CPU完成哪一種操作所花時(shí)間最短?哪一種操作所花時(shí)間最長(zhǎng)?第二種指令的執(zhí)行時(shí)間有時(shí)會(huì)等于第三種指令的執(zhí)行時(shí)間嗎? 下列情況下每個(gè)十六進(jìn)制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令? (F0F1)H (3CD2)H (2856)H (6FD6)H (1C2)H 解: 第一種指令是單字長(zhǎng)二地址指令,RR型; 第二種指令是
29、雙字長(zhǎng)二地址指令,RS型, 其中S采用基址尋址或變址尋址,R由源寄存器決定; 第三種也是雙字長(zhǎng)二地址指令,RS型, 其中R由目標(biāo)寄存器決定,S由20位地址(直接尋址)決定。 處理機(jī)完成第一種指令所花時(shí)間最短,因?yàn)槭荝R型指令,不需要訪問存儲(chǔ)器。第二種指令所花時(shí)間最長(zhǎng),因?yàn)槭荝S型指令,需要訪問存儲(chǔ)器,同時(shí)要進(jìn)行尋址方式的變換運(yùn)算(基址或變址),這也需要時(shí)間。第二種指令的執(zhí)行時(shí)間不會(huì)等于第三種指令,,因?yàn)榈谌N指令雖然也訪問存儲(chǔ)器,但節(jié)省了求有效地址運(yùn)算的時(shí)間開銷。 MOV(OP)001010 根據(jù)已知條件: STA(OP)011011 LDA(OP)111100 將指令的十六進(jìn)制格式轉(zhuǎn)換成二進(jìn)
30、制代碼且比較后可知: (F0F1)H (3CD2)H 指令代表LDA指令,編碼正確,其含義是把主存(13CD2)H 地址單元的內(nèi)容取至15號(hào)寄存器。 (2856)H 指令代表MOV指令,編碼正確,含義是把6號(hào)源寄存器的內(nèi)容傳送至5號(hào)目標(biāo)寄存器。 (6FD6)H 是單字長(zhǎng)指令,一定是MOV指令,但編碼錯(cuò)誤,可改正為(28D6)H。 (1C2)H 是單字長(zhǎng)指令,代表MOV指令,但編碼錯(cuò)誤,可改正為(28C2)H 。,4.5 典型指令,一臺(tái)計(jì)算機(jī)最基本的、必不可少的指令是不多的,因?yàn)楹芏嘀噶疃伎梢杂眠@些最基本的指令組合來(lái)實(shí)現(xiàn)。 既可以直接用硬件實(shí)現(xiàn),也可以用其他指令編成子程序來(lái)實(shí)現(xiàn),但兩者在執(zhí)行時(shí)間
31、上差別很大,因此在指令系統(tǒng)中,有相當(dāng)一部分指令是為了提高程序的執(zhí)行速度和便于程序員編寫程序而設(shè)置的。 另外,指令系統(tǒng)的有效性還表現(xiàn)在用它所編制的程序占用的存儲(chǔ)器空間小。 不同機(jī)器的指令系統(tǒng)是各不相同的。從功能上考慮,一個(gè)較完善的指令系統(tǒng)應(yīng)當(dāng)包括:數(shù)據(jù)傳送類、算術(shù)運(yùn)算類、邏輯運(yùn)算類、程序控制類、輸入輸出類、字符串類、系統(tǒng)控制類。,4.5.1指令的分類 1.數(shù)據(jù)傳送指令 主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作指令等等。用來(lái)實(shí)現(xiàn)主存和寄存器之間,或寄存器和寄存器之間的數(shù)據(jù)傳送。 2.算術(shù)運(yùn)算指令 包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指
32、令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算,大型機(jī)中有向量運(yùn)算指令,直接對(duì)整個(gè)向量或矩陣進(jìn)行求和、求積運(yùn)算。 3.邏輯運(yùn)算指令 包括邏輯加、邏輯乘、按位加、邏輯移位等指令,用于無(wú)符號(hào)數(shù)的位操作、代碼的轉(zhuǎn)換、判斷及運(yùn)算。 移位指令用來(lái)對(duì)寄存器的內(nèi)容實(shí)現(xiàn)左移、右移或循環(huán)移位。,4.程序控制指令 程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時(shí),有時(shí)機(jī)器執(zhí)行到某條指令時(shí),出現(xiàn)了幾種不同結(jié)果,這時(shí)機(jī)器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來(lái)執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。除各種條件轉(zhuǎn)移指令外,還有無(wú)條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回
33、主程序指令、中斷返回指令等。 轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用直接尋址和相對(duì)尋址方式來(lái)確定。 5.輸入輸出指令 輸入輸出指令主要用來(lái)啟動(dòng)外圍設(shè)備,檢查測(cè)試外圍設(shè)備的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。,6.字符串處理指令 字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串)、字符串替換(把某一字符串用另一字符串替換)等。這類指令在文字編輯中對(duì)大量字符串進(jìn)行處理。 7.特權(quán)指令 特權(quán)指令是指具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。 在多用戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系統(tǒng)資源的分配和管理。 8.其他指令 除以上各類指令外,還有狀態(tài)寄存器置位、復(fù)位指令、測(cè)試指令、暫停指令,空操作指令,以及其他一些系統(tǒng)控制用的特殊指令。,8088/8086CPU對(duì)應(yīng)的指令分類 1.數(shù)據(jù)傳送類 取數(shù) MOV AX,TEMP 存數(shù) MOV TEMP,AX 傳送 MOV AX,CX 2.算術(shù)運(yùn)算類 定點(diǎn),ADD,A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職教育測(cè)量與評(píng)價(jià)(評(píng)價(jià)方法應(yīng)用)試題及答案
- 斑塊穩(wěn)定性增強(qiáng)的干細(xì)胞治療策略
- 教體局消防培訓(xùn)課件模板
- 養(yǎng)老院老人生活照顧人員考核獎(jiǎng)懲制度
- 養(yǎng)老院老人健康飲食營(yíng)養(yǎng)師激勵(lì)制度
- 養(yǎng)老院入住老人醫(yī)療保健制度
- 2026年開放大學(xué)校長(zhǎng)信息化試題含答案
- 2026年邊防巡邏防控技能考核題庫(kù)含答案
- 2026年認(rèn)證認(rèn)可條例中認(rèn)證人員行為規(guī)范練習(xí)題及答案
- 2026年公務(wù)員誠(chéng)信體系建設(shè)試題含答案
- 2026年美團(tuán)商業(yè)分析師崗位筆試解析與面試問答技巧
- 某高校十五五教育大數(shù)據(jù)治理中心與智慧校園支撐平臺(tái)建設(shè)方案
- 2026年山西警官職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題帶答案解析
- 汽修廠文件檔案歸檔制度
- 高校科研項(xiàng)目立項(xiàng)及管理規(guī)范
- 2026年工業(yè)數(shù)字化能碳管理項(xiàng)目可行性研究報(bào)告
- 《事故隱患排查治理資金使用專項(xiàng)制度》
- 肯德基加盟協(xié)議書
- 企業(yè)ERP系統(tǒng)維護(hù)操作手冊(cè)
- 2025年高中語(yǔ)文必修上冊(cè)《登泰山記》文言文對(duì)比閱讀訓(xùn)練(含答案)
- 2025中國(guó)機(jī)械工業(yè)集團(tuán)有限公司(國(guó)機(jī)集團(tuán))社會(huì)招聘19人筆試參考題庫(kù)附答案
評(píng)論
0/150
提交評(píng)論