中國(guó)海洋大學(xué)計(jì)算機(jī)組成原理課件(第5章)_第1頁(yè)
中國(guó)海洋大學(xué)計(jì)算機(jī)組成原理課件(第5章)_第2頁(yè)
中國(guó)海洋大學(xué)計(jì)算機(jī)組成原理課件(第5章)_第3頁(yè)
中國(guó)海洋大學(xué)計(jì)算機(jī)組成原理課件(第5章)_第4頁(yè)
中國(guó)海洋大學(xué)計(jì)算機(jī)組成原理課件(第5章)_第5頁(yè)
已閱讀5頁(yè),還剩109頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ForStudentsofLab2010(ComputerOrganizationPrinciples)主講教師蔣永國(guó)(jiangyg@)

(信息學(xué)院南樓,B313室)實(shí)驗(yàn)教師

徐惠敏(yziping@)

1計(jì)算機(jī)硬件系統(tǒng)組成(章節(jié)分配)運(yùn)算器控制器主存儲(chǔ)器輸入設(shè)備輸出設(shè)備總線和I/O接口高速緩存虛擬存儲(chǔ)器(磁盤設(shè)備)第一部分(2,3章)第二部分(5,6章)第三部分(4,7,8章)第四部分(9,10章)2第5章指令系統(tǒng)(目錄部分)5.1指令系統(tǒng)的發(fā)展

5.2指令格式5.3數(shù)據(jù)表示5.4尋址方式(編址方式)5.5指令類型5.6指令系統(tǒng)的兼容性5.7RISC和CISC5.8指令系統(tǒng)舉例5.9機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言3第5章指令系統(tǒng)本章重點(diǎn)和難點(diǎn)尋址方法的應(yīng)用指令操作碼的擴(kuò)展編碼技術(shù)RISC的概念和特征4第5章指令系統(tǒng)的發(fā)展

指令系統(tǒng)的重要性

“分水嶺”

計(jì)算機(jī)的性能與它設(shè)置的指令系統(tǒng)有很大關(guān)系,而指令系統(tǒng)的設(shè)置又與機(jī)器的硬件結(jié)構(gòu)有關(guān)。計(jì)算機(jī)系統(tǒng)=硬件+軟件軟件的設(shè)計(jì)基礎(chǔ)是計(jì)算機(jī)的指令系統(tǒng)。指令:使計(jì)算機(jī)完成基本運(yùn)算所需信號(hào)的組合,包括數(shù)據(jù)、地址和控制信息。一臺(tái)計(jì)算機(jī)使用和支持的全部指令構(gòu)成該機(jī)的指令系統(tǒng)。51、符號(hào)化表示(匯編指令)如: ADDAX,BX

SUBAX,BX

等特點(diǎn):直觀、易讀、易記;

助記符號(hào)可以任意選擇,但與所選用的匯編解釋程序應(yīng)保持一致.2、二進(jìn)制數(shù)表示的指令(機(jī)器指令)如: 00001011、0001110等特點(diǎn):難讀、但能被機(jī)器直接識(shí)別.第5章指令系統(tǒng)的發(fā)展(指令的兩種表示形式)6第5章指令系統(tǒng)的發(fā)展Ⅰ分立元件的計(jì)算機(jī)指令系統(tǒng)較簡(jiǎn)單,指令少,尋址方式簡(jiǎn)單.集成電路的計(jì)算機(jī)指令多達(dá)一,二百條,尋址方式也趨于多樣化為了減少軟件開發(fā)費(fèi)用,軟件兼容,出現(xiàn)了系列機(jī),IBM360、PDP-11系列8086,286,386,486,Pentium系列.

一個(gè)系列有多種型號(hào),各型號(hào)的組織和性能可以有很大差異,系列機(jī)解決軟件兼容問(wèn)題的必要條件是該系列機(jī)有共同的指令集,而且新機(jī)種的指令系統(tǒng)一定包含舊機(jī)種的所有指令(向下兼容)。7第5章指令系統(tǒng)的發(fā)展Ⅱ指令系統(tǒng)的改進(jìn)是圍繞著縮小指令與高級(jí)語(yǔ)言的語(yǔ)義差異以及有利于操作系統(tǒng)的優(yōu)化而進(jìn)行的.指令系統(tǒng)太復(fù)雜也會(huì)帶來(lái)一些不利的因素。在復(fù)雜指令系統(tǒng)中,算術(shù)-邏輯運(yùn)算,數(shù)據(jù)傳送,轉(zhuǎn)移和子程序調(diào)用等基本指令是經(jīng)常使用的,其他的復(fù)雜指令的利用率很低,

☆復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)于是,提出了☆精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)8第5章指令格式

要評(píng)價(jià)一臺(tái)計(jì)算機(jī)的指令系統(tǒng),通常從以下四個(gè)方面考慮:指令系統(tǒng)的完備性

—常用指令齊全、編程方便。指令系統(tǒng)的高效性

—程序占用的內(nèi)存空間少、運(yùn)行速度快。指令系統(tǒng)的規(guī)整性

—指令和數(shù)據(jù)使用規(guī)則統(tǒng)一簡(jiǎn)單、易學(xué)易記。指令系統(tǒng)的兼容性

—同一系列的抵檔計(jì)算機(jī)的程序能在高檔計(jì)算機(jī)上直接運(yùn)行。9第5章指令格式Ⅰ一條指令必須包含下列信息:操作碼:操作的性質(zhì)和功能操作數(shù)的地址操作結(jié)果的地址下一條指令的地址總之,指令中包含操作碼和地址碼操作碼地址碼機(jī)器執(zhí)行什么操作執(zhí)行對(duì)象(具體數(shù)、存放位置)指令是對(duì)計(jì)算機(jī)進(jìn)行程序控制的最小單位。所有的指令的集合稱為計(jì)算機(jī)的指令系統(tǒng)。101、零地址指令格式:OPCODE

OPCODE=OperationCode

指令中只有操作碼沒(méi)有操作數(shù)或地址。兩種可能:(1)無(wú)需操作數(shù),例如:NOP、HLT,也叫無(wú)操作數(shù)指令(2)操作數(shù)是默認(rèn)的第5章指令格式11第5章指令格式2.一地址指令

A-----操作數(shù)的存儲(chǔ)地址或寄存器名例如:遞增,移位,取反,INCAX,NOTBX

格式:OPCODEA12第5章指令格式3.二地址指令

A1-----第一個(gè)源操作數(shù)的存儲(chǔ)地址或寄存器地址。A2-----第二個(gè)源操作數(shù)和存放結(jié)果的存儲(chǔ)地址或寄存器地址例如:[AX]+[BX]→[AX]ADDAX,BX格式:OPCODEA1A213第5章指令格式4.三地址指令

A1-----第一個(gè)源操作數(shù)的存儲(chǔ)地址或寄存器地址。A2-----第二個(gè)源操作數(shù)的存儲(chǔ)地址或寄存器地址。A3-----操作結(jié)果的存儲(chǔ)地址或寄存器地址格式:OPCODEA1A2A35.多地址指令:用于實(shí)現(xiàn)成批數(shù)據(jù)處理。14前面5種指令格式并非所有計(jì)算機(jī)都具有,零地址、一地址和兩地址指令多用于小型機(jī)、微型機(jī)。兩地址、三地址和多地址多為字長(zhǎng)較長(zhǎng)的大、中型機(jī)采用。注意:計(jì)算機(jī)中指令和數(shù)據(jù)都是以二進(jìn)制碼的形式存儲(chǔ)的。但是,指令的地址是由程序計(jì)數(shù)器(PC)規(guī)定的。而數(shù)據(jù)的地址是由指令規(guī)定的。第5章指令格式15第5章指令格式--指令操作碼的擴(kuò)展指令操作碼的位數(shù)限制指令系統(tǒng)中完成操作的指令條數(shù)。若操作碼長(zhǎng)度為K,最多有2k條不同指令。固定格式操作碼操作碼長(zhǎng)度固定,一般集中于指令字的一個(gè)字段中。在字長(zhǎng)較大的大中型以及超級(jí)小型機(jī)上廣泛使用。優(yōu)點(diǎn):有利于簡(jiǎn)化硬件設(shè)計(jì),減少譯碼時(shí)間可變格式操作碼即操作碼長(zhǎng)度可以改變,且分散放在指令字的不同字段中。這種方法在不增加指令字長(zhǎng)度的情況下可表示更多的指令,但增加了譯碼和分析難度,需更多硬件支持。微機(jī)中常使用此方式。如Z-80,Intel8086/Pentium等.16假設(shè)某機(jī)器的指令長(zhǎng)度為16位,包括4位基本操作碼和三個(gè)4位地址碼段。

15…1211……87……43…..0

OPA1A2A34位基本操作碼可表示16個(gè)狀態(tài),因此如用4位操作碼則能表示16條三地址指令,而用8位操作碼則可表示256條二地址指令。而用12位操作碼則可表示4096條一地址指令。第5章指令格式--指令操作碼的擴(kuò)展17第5章指令格式Ⅲ

指令操作碼的擴(kuò)展等長(zhǎng)編碼(在字長(zhǎng)較長(zhǎng)的大、中型機(jī)和超級(jí)小型機(jī)以及RISC上廣泛采用。若操作碼占n位,則指令條數(shù)2n)簡(jiǎn)化硬件設(shè)計(jì),減少指令譯碼時(shí)間IBM370len(OP)=8bits,256條指令不等長(zhǎng)編碼對(duì)于一部分不需要某個(gè)地址碼的指令,把它們的操作碼擴(kuò)充到該地址字段,這樣既能充分利用指令的各個(gè)字段,又能在不增加指令長(zhǎng)度的情況下擴(kuò)展操作碼的長(zhǎng)度,使它能表示更多的指令.15/15/15擴(kuò)展法15/14/31擴(kuò)展法8/64/512擴(kuò)展法Huffman編碼法在字長(zhǎng)較短的微型機(jī)上廣泛采用。如Z80、Intel8086/Pentium等。增加指令譯碼和分析的難度,使控制器的設(shè)計(jì)復(fù)雜化。18第5章指令操作碼的擴(kuò)展15/15/15擴(kuò)展法機(jī)器字長(zhǎng)位16位,設(shè)計(jì)一個(gè)具有15條三地址指令、15條雙地址指令、15條單地址指令和16條零地址指令的指令系統(tǒng)。(保留一個(gè)碼點(diǎn))0000XXXXXXXXXXXX1110XXXXXXXXXXXX11110000XXXXXXXX11111110XXXXXXXX111111110000XXXX111111111110XXXX11111111111100001111111111111111OPA1A2A315條三地址指令15條二地址指令15條單地址指令16條零地址指令19第5章指令操作碼的擴(kuò)展15/14/31擴(kuò)展法機(jī)器字長(zhǎng)位16位,設(shè)計(jì)一個(gè)具有15條三地址指令、14條雙地址指令、31條單地址指令和16條零地址指令的指令系統(tǒng)。(保留一個(gè)碼點(diǎn))0000XXXXXXXXXXXX1110XXXXXXXXXXXX11110000XXXXXXXX11111101XXXXXXXX111111100000XXXX111111111110XXXX11111111111100001111111111111111OPA1A2A315條三地址指令14條二地址指令31條單地址指令16條零地址指令20機(jī)器字長(zhǎng)位16位,設(shè)計(jì)一個(gè)具有8條三地址指令、64條雙地址指令、512條單地址指令和8192條零地址指令的指令系統(tǒng)。(保留一位標(biāo)志位)0000XXXXXXXXXXXX0111XXXXXXXXXXXX10000000XXXXXXXX10111111XXXXXXXX110000000000XXXX110111111111XXXX11100000000000001111111111111111OPA1A2A3

8條三地址指令64條二地址指令512條單地址指令8192條零地址指令第5章指令操作碼的擴(kuò)展8/64/512擴(kuò)展法21第5章指令操作碼的擴(kuò)展可變長(zhǎng)度的指令系統(tǒng)的設(shè)計(jì),到底使用何種擴(kuò)展方法有一個(gè)重要的原則:

使用頻度(即指令在程序中的出現(xiàn)概率)高的指令應(yīng)分配短的操作碼;使用頻度低的指令相應(yīng)地分配較長(zhǎng)的操作碼.

作用:構(gòu)成的指令系統(tǒng)的平均碼長(zhǎng)最短。節(jié)省存儲(chǔ)器空間,縮短了經(jīng)常使用的指令的譯碼時(shí)間,因而可以提高程序的運(yùn)行速度。

即:L=(Pi*li)其中,Pi為指令出現(xiàn)的概率,li為指令分配的碼長(zhǎng)。22實(shí)現(xiàn):按概率分布情況,構(gòu)成一棵Huffman樹,然后從樹根沿著樹枝到達(dá)信息單元(指令出現(xiàn)的概率點(diǎn)),在每個(gè)分枝上、下(或左、右)寫上0和1,直到全部編碼完畢;指令編碼為:從樹根開始,沿著樹枝寫出各個(gè)信息單元的全部代碼。第5章指令操作碼的擴(kuò)展Huffman編碼法23某機(jī)器共有7條指令,其使用統(tǒng)計(jì)頻度如下,求出該系統(tǒng)的平均信息量(最短平均碼長(zhǎng)),若采用定長(zhǎng)編碼,則系統(tǒng)的信息冗余量為多少?指令使用頻度

I10.45I20.28I30.17I40.05I50.03I60.01I70.01解:H=(

-Pi*Log2Pi)

(比特)=(-0.45*Log100.45-0.28*Log100.28-0.17*Log100.17-0.05*Log100.05-0.03*Log100.03-2*0.01*Log100.01)/Log102=1.97BITS第5章指令操作碼的擴(kuò)展Huffman編碼法24I70.01I60.01I50.03I40.05I30.17I20.28I10.45平均碼長(zhǎng)L=(Pi*li)=2*(0.45+0.28+0.17)+4*(0.05+0.03+0.01+0.01)=2.2冗余量=(2.2-1.97)/2.2*100%=10.5%111111000000H碼長(zhǎng)L=1*0.45+2*0.28+3*0.17+4*0.05+5*0.03+2*6*0.01=1.99第5章指令操作碼的擴(kuò)展Huffman編碼法25第5章指令格式

指令長(zhǎng)度與字長(zhǎng)的關(guān)系字長(zhǎng)是指計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)字長(zhǎng)決定了計(jì)算機(jī)的運(yùn)算精度為了便于處理字符數(shù)據(jù)和盡可能地充分利用存儲(chǔ)空間,一般機(jī)器的字長(zhǎng)是字節(jié)長(zhǎng)度的1,2,4,或8倍指令的長(zhǎng)度(是指一個(gè)指令字中包含二進(jìn)制代碼的位數(shù))主要取決于操作碼的長(zhǎng)度,操作數(shù)地址的長(zhǎng)度和操作數(shù)地址的個(gè)數(shù).由于操作碼的長(zhǎng)度,操作數(shù)地址的長(zhǎng)度及指令格式不同,各指令的長(zhǎng)度不是固定的.指令的長(zhǎng)度與機(jī)器的字長(zhǎng)沒(méi)有固定的關(guān)系。

□指令長(zhǎng)度可以小于或等于字長(zhǎng),也可以大于字長(zhǎng).前者稱為短格式指令,后者稱為長(zhǎng)格式指令。

□指令的長(zhǎng)度通常為字節(jié)的整數(shù)倍。

□一條指令存放在地址連續(xù)的存儲(chǔ)單元中。26第5章數(shù)據(jù)表示操作數(shù)的類型

邏輯(布爾)數(shù)、定點(diǎn)數(shù)(整數(shù))、浮點(diǎn)數(shù)(實(shí)數(shù))、十進(jìn)制數(shù)、字符串、數(shù)組等.操作數(shù)的存儲(chǔ)方式

字節(jié)半字單字雙字27第5章數(shù)據(jù)表示操作數(shù)的存儲(chǔ)方式一個(gè)數(shù)據(jù)的位數(shù)>1字節(jié)或1個(gè)字的寬度,這個(gè)數(shù)據(jù)就需要存儲(chǔ)在相鄰的多個(gè)字節(jié)的位置上。按照高位數(shù)據(jù)和低位數(shù)據(jù)在存儲(chǔ)器中的存儲(chǔ)次序,可分為大數(shù)端和小數(shù)端兩種存儲(chǔ)方式。將最低字節(jié)存儲(chǔ)在最小地址位置的存儲(chǔ)方式稱為小數(shù)端方式(LittleEndian)。將最低字節(jié)存儲(chǔ)在最大地址位置的存儲(chǔ)方式稱為大數(shù)端方式(BigEndian)。許多新型計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)都同時(shí)支持大數(shù)端和小數(shù)端數(shù)據(jù)存儲(chǔ)方式。

28例:十進(jìn)制數(shù)1000000,用十六進(jìn)制數(shù)據(jù)表示為:F4240H,在32位數(shù)據(jù)類型中存儲(chǔ)為00

0F

42

40H。(1)小數(shù)端存放(DEC和Intel)

40

42

0F

00

0

1

2

3存儲(chǔ)器地址編號(hào)(2)大數(shù)端存放(IBM和Motorola)

00

0F

42

40

0

1

2

3第5章數(shù)據(jù)表示29第5章數(shù)據(jù)表示(不浪費(fèi)存儲(chǔ)器資源的存放方法)存儲(chǔ)字64位(8個(gè)字節(jié))現(xiàn)有一批數(shù)據(jù),依次為:字節(jié)、半字、雙字、單字。

4種不同長(zhǎng)度的數(shù)據(jù)一個(gè)緊接著一個(gè)存放。字長(zhǎng)32位.

☆優(yōu)點(diǎn)是不浪費(fèi)寶貴的主存資源,

但存在的問(wèn)題:當(dāng)訪問(wèn)的一個(gè)雙字、單字或半字跨越兩個(gè)存儲(chǔ)單元時(shí),存儲(chǔ)器的工作速度降低了一半,而且讀寫控制比較復(fù)雜。30第5章數(shù)據(jù)表示(從存儲(chǔ)字的起始位置開始存放的方法)無(wú)論要存放的是字節(jié)、半字、單字或雙字,都必須從存儲(chǔ)字的起始位置開始存放,而空余部分浪費(fèi)不用。

☆優(yōu)點(diǎn):無(wú)論訪問(wèn)一個(gè)字節(jié)、半字、單字或雙字都可以在一個(gè)存儲(chǔ)周期內(nèi)完成,讀寫數(shù)據(jù)的控制比較簡(jiǎn)單?!钊秉c(diǎn):浪費(fèi)了寶貴的存儲(chǔ)器資源。存儲(chǔ)字64位(8個(gè)字節(jié))31第5章數(shù)據(jù)表示(邊界對(duì)齊的數(shù)據(jù)存放方法)此方法規(guī)定,雙字地址的最末3個(gè)二進(jìn)制位必須為000,單字地址的最末兩位必須為00,半字地址的最末一位必須為0。它能夠保證無(wú)論訪問(wèn)雙字、單字、半字或字節(jié),都在一個(gè)存取周期內(nèi)完成,盡管存儲(chǔ)器資源仍然有浪費(fèi)。存儲(chǔ)字64位(8個(gè)字節(jié))018162432917253321018311194122051321614227152326342728363529373031393832Struct{

inta;//0x1112_1314 字

intpad;// doubleb;//0x2122_2324_2526_2728 雙字

char*c;//0x3132_3334 字

chard[7];//’A’,’B’,’C’,’D’,’E’,’F’,’G’ 字節(jié)陣列

shorte;//0x5152 半字

intf; //0x6162_6364 字}s;大:大端次序的存儲(chǔ)器中位序?。盒《舜涡虻拇鎯?chǔ)器中位序00111213140408212223240C25262728103132333414‘A’‘B’‘C’‘D’18’E‘’F‘’G‘1C5152206162大636400141312110408282726250C24232221103433323114’A‘’B‘’C‘’D‘18’E‘’F‘’G‘1C5251206463小6261兩種字節(jié)次序舉例Ⅰ33大端地址映射字節(jié)地址1112131400000102030405060721222324252627280808090A0B0C0D0E0F31323334‘A’‘B’‘C’‘D’101011121314151617‘E’‘F’‘G’51521818191A1B1C1D1E1F616263642020212223小端地址映射11121314字節(jié)地址07060504030201000021222324252627280F0E0D0C0B0A090808‘D’‘C’‘B’‘A’313233341716151413121110105152‘G’‘F’‘E’1F1E1D1C1B1A191818616263642322212020兩種字節(jié)次序舉例Ⅱ34第5章尋址方式尋址方式(Addressingmode):確定本條指令的數(shù)據(jù)地址及下一條要執(zhí)行的指令地址的方法。不同類型計(jì)算機(jī)的尋址方式亦有差別,但大多可以歸結(jié)為立即尋址、直接尋址、間接尋址、變址尋址以及相對(duì)尋址等幾種尋址方式,或者這幾種方式的組合與變形。35第5章尋址方式1.編址方式⑴字編址

編址單位=訪問(wèn)單位每個(gè)編址單位所包含的信息量(二進(jìn)制位數(shù))與讀或?qū)懸淮渭拇嫫?、主存所獲得的信息量是相同的。早期的大多數(shù)機(jī)器都采用這種編址方式。36

⑵字節(jié)編址字節(jié)編址為了適應(yīng)非數(shù)值計(jì)算的需要。字節(jié)編址方式使編址單位與信息的基本單位(一個(gè)字節(jié))相一致,這是它的最大優(yōu)點(diǎn)。然而,如果主存的訪問(wèn)單位也是一個(gè)字節(jié)的話,那么主存的頻帶就太窄了。編址單位<訪問(wèn)單位

通常主存的訪問(wèn)單位是編址單位的若干倍。⑶位編址有部分計(jì)算機(jī)系統(tǒng)采用位編址方式。第5章尋址方式372.指令中地址碼的位數(shù)指令格式中每個(gè)地址碼的位數(shù)是與主存容量和最小尋址單位(即編址單位)有關(guān)聯(lián)的。主存容量越大,所需的地址碼位數(shù)就越長(zhǎng)。對(duì)于相同容量來(lái)說(shuō),如果以字節(jié)為最小尋址單位,地址碼的位數(shù)就需要長(zhǎng)些;如果以字為最小尋址單位(假定字長(zhǎng)為16位或更長(zhǎng)),地址碼的位數(shù)可以減少。例如:設(shè)某機(jī)主存容量為220個(gè)字節(jié),機(jī)器字長(zhǎng)32位。若最小尋址單位為字節(jié)(按字節(jié)編址),其地址碼應(yīng)為20位;若最小尋址單位為字(按字編址),其地址碼只需18位。第5章尋址方式38第5章尋址方式指令尋址和數(shù)據(jù)尋址

尋址可以分為指令尋址和數(shù)據(jù)尋址。尋找下一條將要執(zhí)行的指令地址稱為指令尋址,尋找操作數(shù)的地址稱為數(shù)據(jù)尋址。

其中,指令尋址比較簡(jiǎn)單,它又可以細(xì)分為順序?qū)ぶ泛吞S尋址。而數(shù)據(jù)尋址方式種類較多,其最終目的都是尋找所需要的操作數(shù)。

39

順序?qū)ぶ房赏ㄟ^(guò)程序計(jì)數(shù)器PC加1,自動(dòng)形成下一條指令的地址;跳躍尋址則需要通過(guò)程序轉(zhuǎn)移類指令實(shí)現(xiàn)。

跳躍尋址的轉(zhuǎn)移地址形成方式有3種:直接(絕對(duì))、相對(duì)和間接尋址,它與下面介紹的數(shù)據(jù)尋址方式中的直接、相對(duì)和間接尋址是相同的,只不過(guò)尋找到的不是操作數(shù)的有效地址而是轉(zhuǎn)移的有效地址而已。第5章尋址方式指令尋址方式40

數(shù)據(jù)尋址方式是根據(jù)指令中給出的地址碼字段尋找真實(shí)操作數(shù)地址的方式。

指令中的形式地址A───→有效地址EA

每種計(jì)算機(jī)的指令系統(tǒng)都有自己的一套數(shù)據(jù)尋址方式,不同計(jì)算機(jī)的尋址方式的名稱和含義并不統(tǒng)一,下面介紹大多數(shù)計(jì)算機(jī)常用的幾種基本尋址方式。數(shù)據(jù)尋址方式尋址方式第5章尋址方式411.直接尋址(DirectAddressing)2.寄存器尋址方式(RegisterAddressing)3.基址尋址(BasedAddressing)4.變址尋址(IndexedAddressing)5.間接尋址(IndirectAddressing)6.相對(duì)尋址(RelativeAddressing)7.立即尋址(ImmediateAddressing)8.堆棧尋址(StackAddressing)第5章尋址方式42第5章尋址方式指令的地址碼部分給出的就是操作數(shù)在存儲(chǔ)器中的地址。特點(diǎn)是簡(jiǎn)單直觀, 便于硬件實(shí)現(xiàn),但 操作數(shù)地址是指令 的一部分,只能用 于訪問(wèn)固定的存儲(chǔ) 器單元。例:MOVAX,[0110H]存儲(chǔ)器OP……A

操作數(shù)0110H一、直接尋址(Directaddressing)存儲(chǔ)器…

MA

操作數(shù)0110HOP有些指令中增加一個(gè)M字段,例如3位,可表示8種尋址方式43第5章尋址方式在指令的地址碼部分給出某一寄存器的名稱(地址),而所需的操作數(shù)就在這個(gè)寄存器中。這種方式數(shù)據(jù)傳送快,計(jì)算機(jī)中多用。例:MOVAX,BX 其中BX為源操作數(shù)地址,AX為目的操作數(shù)地址;操作的結(jié)果為將BX中的數(shù)據(jù)傳送(拷貝)到AX中。二、寄存器尋址(RegisterAddressing)44第5章尋址方式三、基址尋址(BasedAddressing)機(jī)器內(nèi)設(shè)置一個(gè)基址寄存器,操作數(shù)的地址由基址寄存器的內(nèi)容和指令的地址碼A相加得到。地址碼A通常稱為位移量(disp)或偏移量。45基址尋址過(guò)程第5章尋址方式三、基址尋址(BasedAddressing)46第5章尋址方式四、變址尋址(IndexedAddressing)

把CPU中變址寄存器的內(nèi)容和指令地址部分給出的地址之和作為操作數(shù)的地址來(lái)獲得操作數(shù)。這種方式多用于字串處理、矩陣運(yùn)算和成批數(shù)據(jù)處理。

OP…………..RxAKRx:加法器存儲(chǔ)器操作數(shù)A+K:A:數(shù)組47基址尋址面向系統(tǒng),解決程序的存儲(chǔ)定位問(wèn)題;一般用戶編程是用不到此方式.變址尋址面向用戶,用以訪問(wèn)字串和數(shù)組。第5章尋址方式四、變址尋址(IndexedAddressing)三、基址尋址(BasedAddressing)區(qū)別48第5章尋址方式五、間接尋址(Indirectaddressing)優(yōu)點(diǎn):改變寄存器Rn中的內(nèi)容就可訪問(wèn)內(nèi)存的不同地址。修改十分方便。缺點(diǎn):二次尋址速度慢。例:MOVAX,[BX]存儲(chǔ)器OP……Rn

A:操作數(shù)Rn:A1.寄存器間接尋址在指令的地址碼部分直接給出的既不是操作數(shù)也不是操作數(shù)的地址,而是操作數(shù)地址的地址。分為寄存器間接尋址和存儲(chǔ)器間接尋址.49寄存器號(hào)指令操作數(shù)寄存器堆寄存器尋址方式:寄存器號(hào)指令寄存器堆EA寄存器間接尋址方式:操作數(shù)存儲(chǔ)器第5章尋址方式寄存器尋址與寄存器間接尋址-區(qū)別50第5章尋址方式2.存儲(chǔ)器間接尋址51以轉(zhuǎn)移指令Jump為例,說(shuō)明直接尋址和間接尋址方式下如何確定下一條要執(zhí)行的指令的地址.K:JumpA1……

A1×

××

×

……K:Jump(A1)……A1A2……

A2×

××

×

52A指令存儲(chǔ)器操作數(shù)直接尋址方式:操作數(shù)間接尋址方式:A指令EAEA:第5章尋址方式直接尋址與間接尋址-區(qū)別53間接尋址要比直接尋址靈活得多,它的主要優(yōu)點(diǎn)為:

①擴(kuò)大了尋址范圍,可用指令的短地址訪問(wèn)大的主存空間。

②可將主存單元作為程序的地址指針,用以指示操作數(shù)在主存中的位置。當(dāng)操作數(shù)的地址需要改變時(shí),不必修改指令,只需修改存放有效地址的那個(gè)主存單元(間接地址單元)的內(nèi)容就可以了。第5章尋址方式54六、相對(duì)尋址(Relativeaddressing)程序計(jì)數(shù)器PC的內(nèi)容與指令中地址碼部分給出的偏移量(Disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址,稱為相對(duì)尋址方式。

相對(duì)尋址有兩個(gè)特點(diǎn):1)由于目的地址隨PC變化不固定,所以非常適用于浮動(dòng)程序的裝配與運(yùn)行。2)偏移量可正可負(fù),通常用補(bǔ)碼表示。相對(duì)尋址方式主要應(yīng)用于相對(duì)轉(zhuǎn)移指令。轉(zhuǎn)移地址為(PC)+disp第5章尋址方式55六、相對(duì)尋址(Relativeaddressing)第5章尋址方式56第5章尋址方式優(yōu)點(diǎn):取指同時(shí)取得操作數(shù),提高指令的運(yùn)行速度。缺點(diǎn):操作數(shù)的長(zhǎng)度受指令長(zhǎng)度的影響,且不便修改。適合操作數(shù)固定的情況。例:MOVAX,1AH的結(jié)果:(AX)←

1AH七、立即尋址(Immediateaddressing)所需的操作數(shù)由指令的地址碼部分直接給出,稱為立即尋址(立即數(shù)尋址)。57八、堆棧尋址(Stackaddressing)第5章尋址方式堆棧是由若干個(gè)連續(xù)主存單元組成的先進(jìn)后出(firstinlastout,即FILO)存儲(chǔ)區(qū),第一個(gè)放入堆棧的數(shù)據(jù)存放在棧底,最近放入的數(shù)據(jù)存放在棧頂。棧底是固定不變的,而棧頂是隨著數(shù)據(jù)的入棧和出棧在時(shí)刻變化。棧頂?shù)牡刂酚啥褩V羔楽P指明。一般計(jì)算機(jī)中,堆棧從高地址向低地址擴(kuò)展,即棧底的地址總是大于或等于棧頂?shù)牡刂?,稱為上推堆棧;也有少數(shù)計(jì)算機(jī)相反,稱為下推堆棧。堆棧尋址主要用來(lái)暫存中斷和子程序調(diào)用時(shí)現(xiàn)場(chǎng)數(shù)據(jù)及返回地址。58八、堆棧尋址(Stackaddressing)第5章尋址方式存儲(chǔ)器堆棧段棧底SP棧頂堆棧的結(jié)構(gòu)及操作:壓棧指令:PUSHOPR操作:(SP)-2→SPOPR→

(SP)彈棧指令:POPOPR操作:((SP))→OPR(SP)+2→SP59第5章尋址方式常用的尋址技術(shù)

A=指令中地址字段內(nèi)容;EA:有效地址方式算法優(yōu)點(diǎn)缺點(diǎn)直接EA=A簡(jiǎn)單地址范圍有限寄存器EA=R無(wú)存儲(chǔ)器訪問(wèn)地址范圍有限間接EA=(A)大的地址范圍多重存儲(chǔ)器訪問(wèn)寄存器間接EA=(R)大的地址范圍額外地址訪問(wèn)立即操作數(shù)=A無(wú)存儲(chǔ)器訪問(wèn)操作數(shù)大小受限堆棧EA=棧頂無(wú)存儲(chǔ)器訪問(wèn)應(yīng)用有限偏移EA=A+(R)靈活復(fù)雜

偏移是指基址尋址,變址尋址,相對(duì)尋址60

例題:一種兩地址RS型指令的結(jié)構(gòu)如下所示,其中I為間接尋址標(biāo)志位,X為尋址模式字段,D位偏移量字段。通過(guò)I,X,D的組合,可構(gòu)成下表所式的尋址方式。請(qǐng)寫出六種尋址方式的名稱。6位4位1位2位16位尋址方式表OP---通用寄存器IX偏移量D尋址方式IX有效地址E算法說(shuō)明(1)

(2)(3)(4)(5)(6)000110000110110011

E=DE=(PC)±DE=(R2)±DE=(R3)

E=(D)

E=(R1)±DR2為變址寄存器R1為基址寄存器61解:1,直接尋址2,相對(duì)尋址3,變址尋址4,寄存器間接尋址5,間接尋址6,基址尋址62第5章指令類型指令系統(tǒng)的設(shè)計(jì)是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中的一個(gè)核心問(wèn)題.不僅與計(jì)算機(jī)的硬件結(jié)構(gòu)緊密相關(guān),而且直接影響編寫操作系統(tǒng)和編譯程序的難易程度。6316位8086(8088)基本指令-133條80286增加保護(hù)方式指令80386開始擴(kuò)展為32位指令系統(tǒng)80386新增許多位操作指令80486新增6條指令:3條特權(quán)指令,3條交換指令Pentium新增6條指令,如處理器識(shí)別指令CPUIDPentiumPro增加3條指令,如條件傳送指令CMOV.第5章指令類型64第5章指令類型-x86指令數(shù)的發(fā)展8086:133條→Pentium4:505條655.5指令的類型一個(gè)指令系統(tǒng)常有幾十、幾百條指令,但按功能可以劃分為如下幾大類:5.5.1指令的分類及功能1.算術(shù)與邏輯運(yùn)算指令算術(shù)運(yùn)算指令:一般指定點(diǎn)數(shù)運(yùn)算如:加ADD、減SUB、乘MUL、除DIV運(yùn)算。邏輯運(yùn)算:一般包括邏輯與AND,邏輯或OR,邏輯非NOT,邏輯異或XOR等運(yùn)算。按位進(jìn)行運(yùn)算。66邏輯左移、算術(shù)左移

CF0循環(huán)左移CF

CF帶進(jìn)位循環(huán)左移CF算術(shù)右移

0CF邏輯右移CF循環(huán)右移CF帶進(jìn)位循環(huán)右移5.5指令的類型2.移位操作指令675.5指令的類型循環(huán)移位:有不帶進(jìn)位循環(huán)和帶進(jìn)位循環(huán)。前者循環(huán)后的溢出位進(jìn)標(biāo)志位,后者與標(biāo)志位一起循環(huán)。685.5指令的類型3.浮點(diǎn)運(yùn)算指令高級(jí)語(yǔ)言中的實(shí)數(shù)(real)經(jīng)常是先轉(zhuǎn)換成浮點(diǎn)數(shù)后再做處理。某些機(jī)器沒(méi)有設(shè)置浮點(diǎn)運(yùn)算指令而用子程序?qū)崿F(xiàn),速度較低。主要是用于科學(xué)計(jì)算的計(jì)算機(jī)設(shè)置浮點(diǎn)運(yùn)算指令。例如:st(i):代表浮點(diǎn)寄存器FLDsrc:裝入實(shí)數(shù)到st(0)FADD:實(shí)數(shù)加st(0)<-st(0)+st(1)FSUB實(shí)數(shù)減,FMUL實(shí)數(shù)乘,FDIV實(shí)數(shù)除

695.5指令的類型4.十進(jìn)制運(yùn)算指令在輸入輸出數(shù)據(jù)頻繁的計(jì)算機(jī)系統(tǒng)中設(shè)置十進(jìn)制運(yùn)算指令能提高數(shù)據(jù)處理速度。采用BCD碼進(jìn)行運(yùn)算。705.5指令的類型5.字符串處理指令包括:字符串的傳送(MOVS)、比較(CMPS)、查找(SCANS)、字符串的轉(zhuǎn)換等操作指令。字符串處理指令是一種非數(shù)值處理指令。用于各種文字編輯與排版處理715.5指令的類型6.數(shù)據(jù)傳送指令用以實(shí)現(xiàn)寄存器與寄存器之間(MOVAX,BX)寄存器與內(nèi)存單元之間(MOV[0001H],AX)以及內(nèi)存單元相互之間的數(shù)據(jù)傳送。數(shù)據(jù)能夠被從源地址傳送到目的地址,而源地址中數(shù)據(jù)不變,相當(dāng)于復(fù)制。727、轉(zhuǎn)移類指令

無(wú)條件轉(zhuǎn)移指令不受任何條件約束,直接把程序轉(zhuǎn)移至指令所規(guī)定的新地址開始執(zhí)行程序。一般為JUMP(JMP)

指令。

作用:根據(jù)邏輯判斷結(jié)果,改變程序的執(zhí)行順序。按轉(zhuǎn)移的性質(zhì)又可分為無(wú)條件轉(zhuǎn)移、條件轉(zhuǎn)移、過(guò)程調(diào)用與返回、陷阱等幾種。(1)無(wú)條件轉(zhuǎn)移5.5指令的類型735.5指令的類型條件轉(zhuǎn)移指令根據(jù)當(dāng)前運(yùn)算的結(jié)果進(jìn)行邏輯判斷,符合判斷條件則轉(zhuǎn)移到指令表明的新地址處執(zhí)行程序,否則繼續(xù)按原順序執(zhí)行原來(lái)的程序。

(2)條件轉(zhuǎn)移

運(yùn)算器中一般根據(jù)運(yùn)算結(jié)果設(shè)置條件碼(標(biāo)志位),條件轉(zhuǎn)移指令根據(jù)條件滿足與否決定是否轉(zhuǎn)移。74指令的助記符檢測(cè)的轉(zhuǎn)移條件功能描述JCCF=1JumpCarryJNCCF=0JumpNotCarryJOOF=1JumpOverflowJNOOF=0JumpNotOverflowJP/JPEPF=1JumpParityorJumpParityEvenJNP/JPOPF=0JumpNotParityorJumpParityOddJSSF=1JumpSign(negative)JNSSF=0JumpNoSign(positive)JCXZ(CX)=0JumpCXregisterZero根據(jù)運(yùn)算標(biāo)志位的條件轉(zhuǎn)移指令75指令的助記符檢測(cè)的轉(zhuǎn)移條件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJAE/JNBCF=0JumpAboveorEqualorJumpNotBelowJB/JNAECF=1JumpBeloworJumpNotAboveorEqualJA/JNBECF=0andZF=0JumpAboveorJumpNotBeloworEqualJBE/JNACF=1orAF=1JumpBeloworEqualorJumpNotAbove無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移指令A(yù):above

B:below76指令的助記符檢測(cè)的轉(zhuǎn)移條件功能描述JE/JZZF=1JumpEqualorJumpZeroJNE/JNZZF=0JumpNotEqualorJumpNotZeroJGE/JNLSF=OFJumpGreaterorEqualorJumpNotLessJL/JNGESF≠OFJumpLessorJumpNotGreaterorEqualJG/JNLEZF=0andSF=OFJumpGreaterorJumpNotLessorEqualJLE/JNGZF=1orSF≠OFJumpLessorEqualorJumpNotGreater有符號(hào)數(shù)的條件轉(zhuǎn)移指令L:less

G:greater77(3)過(guò)程調(diào)用指令和返回指令調(diào)用指令實(shí)現(xiàn)從一個(gè)程序轉(zhuǎn)去執(zhí)行子程序的操作;返回指令則使CPU結(jié)束執(zhí)行子程序而返回執(zhí)行原程序。調(diào)用指令(CALL)和返回指令(RETURN)是一對(duì)配合使用的指令.調(diào)用指令與轉(zhuǎn)移指令的主要差別:前者需要保留返回地址.5.5指令的類型785.5指令的類型(4)陷阱(trap)與陷阱指令計(jì)算機(jī)運(yùn)行過(guò)程中,有時(shí)可能出現(xiàn)故障,一旦出現(xiàn)故障計(jì)算機(jī)就發(fā)出陷阱信號(hào),并暫停當(dāng)前程序的執(zhí)行(中斷),轉(zhuǎn)入相應(yīng)故障處理程序。一般計(jì)算機(jī)中,陷阱指令作為隱含指令(含義?)。但是:軟件中斷指令I(lǐng)ntType可供用戶使用.

例如int21H-DOS功能調(diào)用MOVAH,4CHINT21H

;是返回DOS系統(tǒng)的

795.5指令的類型1)寄存器堆棧

用一組專門的寄存器構(gòu)成寄存器堆棧,又稱為硬堆棧。這種堆棧的棧頂是固定的,寄存器組中各寄存器是相互連接的,它們之間具有對(duì)應(yīng)位自動(dòng)推移的功能,即可將一個(gè)寄存器的內(nèi)容推移到相鄰的另一個(gè)寄存器中去。8、堆棧及堆棧操作指令堆棧分為兩類:寄存器堆棧和存儲(chǔ)器堆棧.805.5指令的類型寄存器堆棧寄存器堆棧結(jié)構(gòu)815.5指令的類型2)存儲(chǔ)器堆棧

從主存中劃出一段區(qū)域來(lái)作堆棧,這種堆棧又稱為軟堆棧,堆棧的大小可變,棧底固定,棧頂浮動(dòng),故需要一個(gè)專門的硬件寄存器作為堆棧棧頂指針SP,簡(jiǎn)稱棧指針。棧指針?biāo)付ǖ闹鞔鎲卧?,就是堆棧的棧頂?/p>

存儲(chǔ)器堆棧結(jié)構(gòu)高地址低地址堆棧區(qū)82由于堆棧具有先進(jìn)后出的性質(zhì),因而在中斷、子程序調(diào)用過(guò)程中用于保存返回地址、狀態(tài)標(biāo)志及現(xiàn)場(chǎng)信息。5.5指令的類型835.5指令的類型9、輸入、輸出(I/O)指令完成在中央處理器和外設(shè)之間進(jìn)行數(shù)據(jù)交換。輸入指令使數(shù)據(jù)由外設(shè)傳送到處理機(jī),輸出指令使數(shù)據(jù)由處理機(jī)傳送到外設(shè).

輸入輸出指令的一般格式(In/Out):OPREG

AA:一般長(zhǎng)度8~16位,可表示256~64K個(gè)設(shè)備寄存器845.5指令的類型10、特權(quán)指令

某些指令使用不當(dāng)會(huì)破壞系統(tǒng)或其他用戶信息,這類指令只能用于操作系統(tǒng)或其他系統(tǒng)軟件,而不提供給用戶使用,這類指令稱為特權(quán)指令。

特權(quán)指令分配和管理系統(tǒng)資源,防止非法用戶對(duì)系統(tǒng)資源及其他用戶程序的修改、打印以及刪除等。8511、其它指令如:暫停、等待、空操作、以及開中斷、關(guān)中斷等。需要說(shuō)明的是:計(jì)算機(jī)種類不同其指令系統(tǒng)包括數(shù)量與功能亦有所不同,用其編程時(shí)務(wù)必參照相應(yīng)的指令系統(tǒng)手冊(cè)。(1)向量指令(2)多處理機(jī)指令(3)控制指令5.5指令的類型865.5.2雙字長(zhǎng)運(yùn)算(子程序舉例)5.5指令的類型雙字長(zhǎng)加法運(yùn)算

假設(shè)在寄存器R1,R2和R3,R4分別存放兩個(gè)雙字長(zhǎng)操作數(shù),其中R1,R3為高位.假設(shè)機(jī)器設(shè)置有ADD(加法指令)和ADC(加進(jìn)位的加法指令)875.5.2雙字長(zhǎng)運(yùn)算(子程序舉例)5.5指令的類型雙字長(zhǎng)加法運(yùn)算

假設(shè)機(jī)器僅設(shè)置ADD指令,而沒(méi)有ADC指令注:BCC:branchoncondition

885.5.2雙字長(zhǎng)運(yùn)算(子程序舉例)5.5指令的類型2.雙字長(zhǎng)減法運(yùn)算

假設(shè)在寄存器R1,R2和R3,R4分別存放兩個(gè)雙字長(zhǎng)操作數(shù),其中R1,R3為高位.假設(shè)機(jī)器沒(méi)有帶借位減法指令.89第5章指令系統(tǒng)的兼容性1964年IBM360系列機(jī)以后,各個(gè)計(jì)算機(jī)公司生產(chǎn)的同一系列的計(jì)算機(jī)盡管其硬件實(shí)現(xiàn)方法可以不同,但指令系統(tǒng),數(shù)據(jù)格式,I/O系統(tǒng)保持相同,因而軟件完全兼容,系列機(jī)

(在此基礎(chǔ)上,產(chǎn)生了兼容機(jī))當(dāng)研制該系列計(jì)算機(jī)的新型號(hào)或高檔產(chǎn)品時(shí),盡管指令系統(tǒng)可以有較大的擴(kuò)充,但仍保留原來(lái)的全部指令,保持軟件向上兼容的特點(diǎn)例Intel的8086微處理器系列是完全向上兼容的.90第5章RISC和CISC-8086指令分類頻度8086指令分為6類,其中:

數(shù)據(jù)傳送,算術(shù)運(yùn)算,轉(zhuǎn)移指令,這三類占90%,其余三類占不到10%

91第5章RISC和CISC“80-20規(guī)律”(20%與80%的規(guī)律

)→RISC

CISC中,各種指令的使用頻率相差很大.經(jīng)過(guò)大量的研究和分析,發(fā)現(xiàn)大約有20%的指令的使用頻率比較高,使用量約占整個(gè)程序的80%;而有80%左右的指令很少使用,他們的使用量約占整個(gè)程序的20%.

92第5章RISC和CISC復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)在指令系統(tǒng)中增加更多的指令和更復(fù)雜的指令,來(lái)提高操作系統(tǒng)的效率,縮小指令系統(tǒng)和高級(jí)語(yǔ)言的語(yǔ)義差別便于高級(jí)語(yǔ)言的編譯,兼容性使指令系統(tǒng)的指令只能擴(kuò)充不能減去任意一條,這些計(jì)算機(jī)稱為復(fù)雜指令系統(tǒng)計(jì)算機(jī)CISC(complexinstructionsetcomputer)RISC的產(chǎn)生對(duì)CISC進(jìn)行測(cè)試表明,各種指令的使用頻率相差懸殊.復(fù)雜的指令系統(tǒng)增加硬件實(shí)現(xiàn)的復(fù)雜性,增加研制時(shí)間和成本,很難實(shí)現(xiàn)流水線操作,降低了速度,指令系統(tǒng)復(fù)雜,使芯片變大印刷板變大,都使速度變慢.由此1975年首先由IBM公司提出“精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)”的概念。93第5章RISC和CISC

RISC的發(fā)展1983年以后,一些中小型公司開始推出RISC產(chǎn)品,由于高的性能價(jià)格比,市場(chǎng)占有率不斷提高從技術(shù)發(fā)展的角度講,CISC技術(shù)已很難再有突破性的進(jìn)展RISC的特點(diǎn)RISC不是簡(jiǎn)單地簡(jiǎn)化指令系統(tǒng),而是通過(guò)簡(jiǎn)化指令使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理,從而提高運(yùn)算速度。計(jì)算機(jī)執(zhí)行程序所需要的時(shí)間P=ICPIT

其中I是指令數(shù),CPI是執(zhí)行每條指令所需的平均周期數(shù),T是機(jī)器周期的時(shí)間.RISC的I比CISC多20%~40%,CPI值比CISC小得多,T值也小得多類型ICPITCISC12~1533~5nsRISC1.3~1.41.1~1.410~1ns94第5章RISC和CISC--RISC的特點(diǎn)⑴優(yōu)先選取使用頻率最高的簡(jiǎn)單指令,以及很有用但不復(fù)雜的指令⑵指令長(zhǎng)度固定,指令格式種類少,尋址種類少⑶只有取數(shù)/存數(shù)指令訪問(wèn)存儲(chǔ)器,其余指令的操作都在寄存器之間進(jìn)行⑷通用寄存器數(shù)量相當(dāng)多,算術(shù)邏輯指令操作數(shù)都在寄存器中⑸大部分指令在一個(gè)或小于一個(gè)機(jī)器周期內(nèi)完成⑹以硬布線控制邏輯為主,不用或少用微程序控制邏輯⑺一般用高級(jí)語(yǔ)言編程,特別重視編譯優(yōu)化工作95第5章指令系統(tǒng)舉例

SPARC(ScalableProcessor

ARChitecture)指令系統(tǒng):RISC類型注:首次發(fā)布于1987年(SUN和TI公司合作開發(fā)了RISC微處理器—SPARC),與傳統(tǒng)的處理器體系結(jié)構(gòu)不同,它是開放標(biāo)準(zhǔn)的、可通過(guò)SPARCInternationalInc.的許可免費(fèi)獲取的。任何獲得許可的公司可制造和出售符合SPARC標(biāo)準(zhǔn)的處理器。Pentium指令系統(tǒng):CISC類型CISC的廠商:Intel,AMDRISC的廠商:IBM,SUN,Apple,Motorola96第5章指令系統(tǒng)舉例SPARC指令系統(tǒng)指令類型算術(shù)運(yùn)算/邏輯運(yùn)算/移位指令31條LOAD/STORE指令22條控制轉(zhuǎn)移指令5條讀/寫專用寄存器指令8條浮點(diǎn)運(yùn)算指令 格式1的OP為01協(xié)處理器指令 格式2的OP為00指令格式

格式3的OP為1×格式1:格式2:格式3:OPDisp30(位移量,30位)OPrdOP2Imm22(立即數(shù))OPaCondOP2Disp22(位移量)OPrdOP3rs10(無(wú)關(guān))rs2OPrdOP3rs11Simm13OPrdOP3rs1OPfrs297第5章指令系統(tǒng)舉例

SPARC指令系統(tǒng)在SPARC中,有一些指令沒(méi)有設(shè)置,但很容易用一條其他指令來(lái)替代,這是因約定R0=0.指令功能替代指令實(shí)現(xiàn)方法MOVE寄存器間傳送數(shù)據(jù)ADD(加法)(Rs)+(R0)→RdINC寄存器內(nèi)容+1ADD(加法)(Rs)+1→Rd(立即數(shù)imm13=1,作為操作數(shù))DEC寄存器內(nèi)容-1SUB(減法)(Rs)-1→Rd(立即數(shù)imm13=-1,作為操作數(shù))NEG取負(fù)數(shù)SUB(減法)R0-Rs→RdNOT取反碼XOR(異或)(Rs)XOR11…1→Rd(立即數(shù)imm13=-1,作為操作數(shù))CLEAR清除寄存器ADD(加法)(R0)+(R0)→RdCMP,TEST比較測(cè)試SUB(減法)(Rs1)-(Rs2)→R0(將R0作為Rd,并置條件碼)98第5章指令系統(tǒng)舉例Pentium指令系統(tǒng)圖5.11程序員能見(jiàn)到的寄存器99第5章指令系統(tǒng)舉例Pentium尋址方式100第5章指令系統(tǒng)舉例Pentium指令格式圖5.12Pentium的指令格式101第5章指令系統(tǒng)舉例Pentium尋址方式舉例MOVEAX,[EBX][ECX4+6]

基變址放大因子位移量

圖5.13實(shí)模式下形成32位地址102第5章指令系統(tǒng)舉例

IBM大型機(jī)指令系統(tǒng)圖5.14IBM360/370指令格式103第5章指令系統(tǒng)舉例PDP-11指令格式PDP11是16位小型機(jī),它有兩組通用寄存器(R0~R5),在任一時(shí)刻只有一組工作;三個(gè)硬件堆棧指示器(R6);一個(gè)程序計(jì)數(shù)器PC(R7)。根據(jù)兼容性質(zhì),VAX11應(yīng)包括PDP11的全部指令與尋址方式,即PDP11上的程序不作任何修改即可在VAX11上運(yùn)行。PDP11有一個(gè)功能強(qiáng)大和靈活的指令系統(tǒng),有13

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論