最新計算機指令系統(tǒng)_第1頁
最新計算機指令系統(tǒng)_第2頁
最新計算機指令系統(tǒng)_第3頁
最新計算機指令系統(tǒng)_第4頁
最新計算機指令系統(tǒng)_第5頁
已閱讀5頁,還剩182頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第1頁最新計算機指令系統(tǒng)最新計算機指令系統(tǒng)微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第2頁第第3章章 8086指令系統(tǒng)指令系統(tǒng) l指令是指計算機執(zhí)行操作的命令,一臺計指令是指計算機執(zhí)行操作的命令,一臺計算機的所有指令的集合構(gòu)成該計算機的指算機的所有指令的集合構(gòu)成該計算機的指令系統(tǒng)。指令系統(tǒng)位于硬件和軟件的交界令系統(tǒng)。指令系統(tǒng)位于硬件和軟件的交界面上,決定了計算機的基本功能,指令系面上,決定了計算機的基本功能,指令系統(tǒng)的設計是計算機系統(tǒng)設計的一個核心問統(tǒng)的設計是計算機

2、系統(tǒng)設計的一個核心問題,它不僅與計算機的硬件設計緊密相關(guān),題,它不僅與計算機的硬件設計緊密相關(guān),而且直接影響到系統(tǒng)軟件設計。而且直接影響到系統(tǒng)軟件設計。 微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第3頁主要內(nèi)容主要內(nèi)容l3.1 計算機指令系統(tǒng)的發(fā)展與性能計算機指令系統(tǒng)的發(fā)展與性能l3.2 指令的格式指令的格式l3.3 尋尋 址址 方方 式式l3.4 指令的分類與高級語言指令的分類與高級語言l3.5 8086的尋址方式和指令系統(tǒng)的尋址方式和指令系統(tǒng)l3.6 8086的指令系統(tǒng)的指令系統(tǒng)微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2

3、013年4月24日第4頁l3.1 計算機指令系統(tǒng)的發(fā)展與性能l3.1.1 指令系統(tǒng)的發(fā)展指令系統(tǒng)的發(fā)展l3.1.2 指令系統(tǒng)的性能要求指令系統(tǒng)的性能要求微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第5頁3.1 計算機指令系統(tǒng)的發(fā)展與性能l3.1.1 指令系統(tǒng)的發(fā)展指令系統(tǒng)的發(fā)展l在計算機發(fā)展的早期,由于計算機采用分立元件,在計算機發(fā)展的早期,由于計算機采用分立元件,價格昂貴,因此,大多數(shù)計算機的硬件結(jié)構(gòu)比較價格昂貴,因此,大多數(shù)計算機的硬件結(jié)構(gòu)比較簡單,所支持的指令系統(tǒng)一般只有定點加減、邏簡單,所支持的指令系統(tǒng)一般只有定點加減、邏輯運算、數(shù)據(jù)傳輸和轉(zhuǎn)移

4、等十幾至幾十條最基本輯運算、數(shù)據(jù)傳輸和轉(zhuǎn)移等十幾至幾十條最基本的指令,而且尋址方式簡單。到的指令,而且尋址方式簡單。到20世紀世紀60年代中年代中后期,隨著集成電路的出現(xiàn),計算機的價格不斷后期,隨著集成電路的出現(xiàn),計算機的價格不斷下降,硬件功能不斷增強,指令系統(tǒng)也越來越豐下降,硬件功能不斷增強,指令系統(tǒng)也越來越豐富,除具有以上最基本的指令以外,還設置了乘富,除具有以上最基本的指令以外,還設置了乘除運算指令、浮點運算指令、十進制運算指令、除運算指令、浮點運算指令、十進制運算指令、字符串處理指令和特權(quán)指令等,指令數(shù)多達一、字符串處理指令和特權(quán)指令等,指令數(shù)多達一、二百條。二百條。微機原理與接口技術(shù)

5、微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第6頁l現(xiàn)代計算機的基本工作原理可以簡單概括為現(xiàn)代計算機的基本工作原理可以簡單概括為“程序存儲、程序執(zhí)行程序存儲、程序執(zhí)行”,即人們使用計算機求解時,必須首先將該問題的計算程序和所需數(shù)據(jù)即人們使用計算機求解時,必須首先將該問題的計算程序和所需數(shù)據(jù)預先輸入到計算機的存儲器中,然后由控制器控制完成讀出、識別、預先輸入到計算機的存儲器中,然后由控制器控制完成讀出、識別、解釋并執(zhí)行程序中每一條指令。程序就是使計算機執(zhí)行某個特定任務解釋并執(zhí)行程序中每一條指令。程序就是使計算機執(zhí)行某個特定任務的一系列指令。指令是指示機器執(zhí)行某種操作的命令

6、。的一系列指令。指令是指示機器執(zhí)行某種操作的命令。l指令是由一組二進制代碼組成的。表示一條指令意義的二進制代碼,指令是由一組二進制代碼組成的。表示一條指令意義的二進制代碼,被稱為指令碼。指令碼的編碼規(guī)則稱為指令格式。指令碼中二進制碼被稱為指令碼。指令碼的編碼規(guī)則稱為指令格式。指令碼中二進制碼的位數(shù)稱為指令長度。每條指令都具有一個確定的指令碼,對應于計的位數(shù)稱為指令長度。每條指令都具有一個確定的指令碼,對應于計算機能執(zhí)行的一種操作。在不同類型的計算機中,不同功能操作的指算機能執(zhí)行的一種操作。在不同類型的計算機中,不同功能操作的指令之間、指令碼有著各自的樣式、特征和規(guī)則。在每個計算機中,指令之間、

7、指令碼有著各自的樣式、特征和規(guī)則。在每個計算機中,指令碼都是按照一種預先精心設計的、該機型共同約定好的編碼規(guī)則來令碼都是按照一種預先精心設計的、該機型共同約定好的編碼規(guī)則來加以編排和設置的。加以編排和設置的。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第7頁l一臺計算機能執(zhí)行多少條功能不同的指令,它們是些什么樣功能的指一臺計算機能執(zhí)行多少條功能不同的指令,它們是些什么樣功能的指令,指令格式如何,這些都是由計算機指令系統(tǒng)明確加以規(guī)定和指示令,指令格式如何,這些都是由計算機指令系統(tǒng)明確加以規(guī)定和指示的。一臺計算機所能執(zhí)行的全部指令的集合稱為指令系統(tǒng),或稱為

8、指的。一臺計算機所能執(zhí)行的全部指令的集合稱為指令系統(tǒng),或稱為指令集。令集。l不同型號的計算機有著不同的指令系統(tǒng)。從程序設計者的角度來看,不同型號的計算機有著不同的指令系統(tǒng)。從程序設計者的角度來看,指令系統(tǒng)是一臺計算機的主要屬性,是軟、硬件的主要交界面。程序指令系統(tǒng)是一臺計算機的主要屬性,是軟、硬件的主要交界面。程序設計者使用該機指令系統(tǒng)中的各種指令來編制軟件,而程序又利用指設計者使用該機指令系統(tǒng)中的各種指令來編制軟件,而程序又利用指令系統(tǒng)所具有的各種指令去指揮計算機硬件進行各種操作。一臺計算令系統(tǒng)所具有的各種指令去指揮計算機硬件進行各種操作。一臺計算機指令系統(tǒng)功能的強弱,對編制程序的支持程度,

9、往往影響到該計算機指令系統(tǒng)功能的強弱,對編制程序的支持程度,往往影響到該計算機能否獲得較為廣泛的應用。機能否獲得較為廣泛的應用。l指令系統(tǒng)要由計算機的硬件來支持和實現(xiàn),從計算機硬件工程設計的指令系統(tǒng)要由計算機的硬件來支持和實現(xiàn),從計算機硬件工程設計的角度來看,指令系統(tǒng)是設計計算機硬件的一個主要依據(jù)。指令系統(tǒng)一角度來看,指令系統(tǒng)是設計計算機硬件的一個主要依據(jù)。指令系統(tǒng)一直是計算機系統(tǒng)結(jié)構(gòu)設計者十分重視的一個方面。在研制每一種新的直是計算機系統(tǒng)結(jié)構(gòu)設計者十分重視的一個方面。在研制每一種新的計算機時,設計者面臨的一個基本問題是如何巧妙而又富有創(chuàng)造性地計算機時,設計者面臨的一個基本問題是如何巧妙而又富

10、有創(chuàng)造性地設計一個指令系統(tǒng)。設計一個指令系統(tǒng)。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第8頁l隨著集成電路的發(fā)展和計算機應用領域的不斷擴大,隨著集成電路的發(fā)展和計算機應用領域的不斷擴大,20世紀世紀60年代后期開始年代后期開始出現(xiàn)系列計算機。所謂系列計算機,是指基本指令系統(tǒng)、基本體系結(jié)構(gòu)相同出現(xiàn)系列計算機。所謂系列計算機,是指基本指令系統(tǒng)、基本體系結(jié)構(gòu)相同的一系列計算機。如的一系列計算機。如Pentium系列就是當前流行的一種個人機系列。一個系系列就是當前流行的一種個人機系列。一個系列往往有多種型號,但由于推出時間不同,采用器件不同,它們在結(jié)構(gòu)和性

11、列往往有多種型號,但由于推出時間不同,采用器件不同,它們在結(jié)構(gòu)和性能上有所差異。通常新機種在性能和價格方面比舊機種優(yōu)越。系列機解決了能上有所差異。通常新機種在性能和價格方面比舊機種優(yōu)越。系列機解決了各機種的軟件兼容問題,其必要條件是同一系列的各機種有共同的指令集,各機種的軟件兼容問題,其必要條件是同一系列的各機種有共同的指令集,而且新推出的機種指令系統(tǒng)一定包含所有舊機種的全部指令。因此舊機種上而且新推出的機種指令系統(tǒng)一定包含所有舊機種的全部指令。因此舊機種上運行的各種軟件可以不加任何修改便可在新機種上運行,大大減少了軟件開運行的各種軟件可以不加任何修改便可在新機種上運行,大大減少了軟件開發(fā)費用

12、。發(fā)費用。l20世紀世紀70年代末期,計算機硬件結(jié)構(gòu)隨著年代末期,計算機硬件結(jié)構(gòu)隨著VLSI(Very Large Scale Integrated Circuit)技術(shù)的飛速發(fā)展而越來越復雜化,大多數(shù)計算機的指令技術(shù)的飛速發(fā)展而越來越復雜化,大多數(shù)計算機的指令系統(tǒng)多達幾百條。我們稱這些計算機為復雜指令系統(tǒng)計算機系統(tǒng)多達幾百條。我們稱這些計算機為復雜指令系統(tǒng)計算機(CISC,Complex Instruction Set Computer)。但是如此龐大的指令系統(tǒng)不僅使計。但是如此龐大的指令系統(tǒng)不僅使計算機的研制周期變長,正確性難以保證,不易調(diào)試維護,而且由于采用了大算機的研制周期變長,正確性

13、難以保證,不易調(diào)試維護,而且由于采用了大量使用頻率很低的復雜指令造成了硬件資源的浪費。為此人們又提出了便于量使用頻率很低的復雜指令造成了硬件資源的浪費。為此人們又提出了便于VLSI技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機技術(shù)實現(xiàn)的精簡指令系統(tǒng)計算機(RISC,Reduced Instruction Set Computer)。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第9頁l3.1.2 指令系統(tǒng)的性能要求指令系統(tǒng)的性能要求l指令系統(tǒng)的性能決定了計算機的基本功能,指令系統(tǒng)的性能決定了計算機的基本功能,指令系統(tǒng)的設計是計算機系統(tǒng)設計中的一指令系統(tǒng)的設計是計算機系統(tǒng)設

14、計中的一個核心問題,它不僅與計算機的硬件結(jié)構(gòu)個核心問題,它不僅與計算機的硬件結(jié)構(gòu)緊密相關(guān),而且直接關(guān)系到用戶的使用需緊密相關(guān),而且直接關(guān)系到用戶的使用需求。求。l一個完善的計算機指令系統(tǒng)應該具備以下一個完善的計算機指令系統(tǒng)應該具備以下幾方面的要求。幾方面的要求。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第10頁l1. 完備性完備性l指令系統(tǒng)的完備性是指用匯編語言編制各種程序時,指令系統(tǒng)直接提指令系統(tǒng)的完備性是指用匯編語言編制各種程序時,指令系統(tǒng)直接提供的指令足夠使用,不必用軟件方法實現(xiàn)。一臺計算機中最基本的、供的指令足夠使用,不必用軟件方法實現(xiàn)。一臺

15、計算機中最基本的、必不可少的指令構(gòu)成了指令系統(tǒng)的完備性。而其他一些指令,如乘、必不可少的指令構(gòu)成了指令系統(tǒng)的完備性。而其他一些指令,如乘、除運算指令、浮點運算指令,可以直接用硬件實現(xiàn),也可以用其他指除運算指令、浮點運算指令,可以直接用硬件實現(xiàn),也可以用其他指令實現(xiàn),即用軟件的方法實現(xiàn),兩者只是在執(zhí)行時間和編寫程序的難令實現(xiàn),即用軟件的方法實現(xiàn),兩者只是在執(zhí)行時間和編寫程序的難易程度上有差別。之所以在指令系統(tǒng)中設計特殊指令,是為了提高程易程度上有差別。之所以在指令系統(tǒng)中設計特殊指令,是為了提高程序執(zhí)行的速度和便于用戶編寫程序。序執(zhí)行的速度和便于用戶編寫程序。l2. 有效性有效性l有效性是指利用該

16、指令系統(tǒng)所提供的指令編制的程序能夠產(chǎn)生高效率。有效性是指利用該指令系統(tǒng)所提供的指令編制的程序能夠產(chǎn)生高效率。高效率主要表現(xiàn)在空間和時間方面,即占用存儲空間小、執(zhí)行速度快。高效率主要表現(xiàn)在空間和時間方面,即占用存儲空間小、執(zhí)行速度快。通常,一個功能完善的指令系統(tǒng)必定有很好的有效性。通常,一個功能完善的指令系統(tǒng)必定有很好的有效性。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第11頁l3. 規(guī)整性規(guī)整性l規(guī)整性是指指令操作的對稱性、勻齊性和指令格式與數(shù)據(jù)格式的一致性。規(guī)整性是指指令操作的對稱性、勻齊性和指令格式與數(shù)據(jù)格式的一致性。l指令的對稱性是指在指令系統(tǒng)

17、中,所有的寄存器和存儲單元都可同等對待,指令的對稱性是指在指令系統(tǒng)中,所有的寄存器和存儲單元都可同等對待,這對簡化程序設計、提高程序的可讀性非常有用。這對簡化程序設計、提高程序的可讀性非常有用。l指令的勻齊性是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運算指令的勻齊性是指一種操作性質(zhì)的指令可以支持各種數(shù)據(jù)類型,如算術(shù)運算指令可支持字節(jié)、字和雙字整數(shù)運算、十進制數(shù)運算和單、雙精度浮點數(shù)運指令可支持字節(jié)、字和雙字整數(shù)運算、十進制數(shù)運算和單、雙精度浮點數(shù)運算等。指令的這種性質(zhì),可以使程序設計者無需考慮數(shù)據(jù)類型而選用指令,算等。指令的這種性質(zhì),可以使程序設計者無需考慮數(shù)據(jù)類型而選用指令,從而提高

18、編程效率。從而提高編程效率。l指令的格式與數(shù)據(jù)格式的一致性是指指令長度與數(shù)據(jù)長度有一定關(guān)系,以方指令的格式與數(shù)據(jù)格式的一致性是指指令長度與數(shù)據(jù)長度有一定關(guān)系,以方便存取和處理。便存取和處理。l4. 兼容性兼容性l兼容性一般是指計算機的體系結(jié)構(gòu)設計基本相同,計算機之間具有相同的基兼容性一般是指計算機的體系結(jié)構(gòu)設計基本相同,計算機之間具有相同的基本結(jié)構(gòu)、數(shù)據(jù)表示和共同的基本指令集合。指令系統(tǒng)的兼容性指的是同一個本結(jié)構(gòu)、數(shù)據(jù)表示和共同的基本指令集合。指令系統(tǒng)的兼容性指的是同一個軟件可以不加修改就可以在系統(tǒng)結(jié)構(gòu)相同的計算機中運行,獲得相同的結(jié)果,軟件可以不加修改就可以在系統(tǒng)結(jié)構(gòu)相同的計算機中運行,獲得

19、相同的結(jié)果,差別在于運行的時間長短不同。軟件兼容性不僅在同一廠家的系列機中存在,差別在于運行的時間長短不同。軟件兼容性不僅在同一廠家的系列機中存在,而且也出現(xiàn)在不同廠家所生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計算機系統(tǒng)中,這些計而且也出現(xiàn)在不同廠家所生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計算機系統(tǒng)中,這些計算機系統(tǒng)一般稱為算機系統(tǒng)一般稱為“兼容機兼容機”。如。如IBM PC機就是一個典型的例子。機就是一個典型的例子。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第12頁3.2 指令的格式指令的格式 l3.2.1 指令操作碼與地址碼指令操作碼與地址碼l一條指令一般由兩個字段組成:操作

20、碼字一條指令一般由兩個字段組成:操作碼字段和操作數(shù)地址碼字段,可表示為圖段和操作數(shù)地址碼字段,可表示為圖3-1的的形式。形式。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第13頁l(1) 操作碼(操作碼(operating code)l操作碼是指明指令操作性質(zhì)的命令碼。操作碼是指明指令操作性質(zhì)的命令碼。CPU每次從內(nèi)存取每次從內(nèi)存取出一條指令,指令中的操作碼就告訴出一條指令,指令中的操作碼就告訴CPU應執(zhí)行什么性質(zhì)應執(zhí)行什么性質(zhì)的操作。例如用操作碼的操作。例如用操作碼“0000”表示表示“加法加法”操作,操作操作,操作碼碼“0001”表示表示“減法減法

21、”操作等。操作等。l每條指令都要求它的操作碼必須是獨一無二的位組合。指每條指令都要求它的操作碼必須是獨一無二的位組合。指令系統(tǒng)中的每一條指令都有一個確定的操作碼,并且每一令系統(tǒng)中的每一條指令都有一個確定的操作碼,并且每一條指令只與一個規(guī)定好的操作碼一一對應。指令不同,其條指令只與一個規(guī)定好的操作碼一一對應。指令不同,其操作碼也不同。操作碼也不同。l操作碼的長度取決于指令系統(tǒng)中的指令條數(shù)。例如,若操操作碼的長度取決于指令系統(tǒng)中的指令條數(shù)。例如,若操作碼長度為作碼長度為4位時,指令系統(tǒng)中指令的個數(shù)不能多于位時,指令系統(tǒng)中指令的個數(shù)不能多于16條。條。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出

22、版社清華大學出版社2013年4月24日第14頁匯編語言匯編語言-助記符語言助記符語言l典型的指令助記符典型的指令助記符微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第15頁l(2) 操作數(shù)地址碼(操作數(shù)地址碼(operand address code)l地址碼用來描述該指令的操作對象。在地地址碼用來描述該指令的操作對象。在地址碼中可以直接給出操作數(shù)本身,也可以址碼中可以直接給出操作數(shù)本身,也可以指出操作數(shù)在存儲器中的地址或寄存器地指出操作數(shù)在存儲器中的地址或寄存器地址,或表示操作數(shù)在存儲器中的間接地址址,或表示操作數(shù)在存儲器中的間接地址等。等。l。微機原

23、理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第16頁l一條指令中含有的操作數(shù)地址不一定只有一個。隨著指令一條指令中含有的操作數(shù)地址不一定只有一個。隨著指令功能的不同,操作數(shù)地址可能是兩個或多個。例如加減法功能的不同,操作數(shù)地址可能是兩個或多個。例如加減法運算,一般要求有兩個操作數(shù)地址。但若再考慮操作運算運算,一般要求有兩個操作數(shù)地址。但若再考慮操作運算結(jié)果的存放地址,就需要有結(jié)果的存放地址,就需要有3個地址,若繼續(xù)考慮本條指個地址,若繼續(xù)考慮本條指令完成以后下一條指令的地址,則需要令完成以后下一條指令的地址,則需要4個地址。個地址。l指令字中操作數(shù)地址字段的

24、位數(shù)取決于指令操作所需要的指令字中操作數(shù)地址字段的位數(shù)取決于指令操作所需要的操作數(shù)地址個數(shù)和每個操作數(shù)地址的位數(shù)。所以,一個指操作數(shù)地址個數(shù)和每個操作數(shù)地址的位數(shù)。所以,一個指令的字長應滿足下面等式:令的字長應滿足下面等式:l指令字長指令字長=操作碼的位數(shù)操作碼的位數(shù)+(操作數(shù)地址個數(shù)操作數(shù)地址個數(shù))(操作數(shù)地址操作數(shù)地址碼位數(shù)碼位數(shù))l根據(jù)地址碼部分所給出地址的個數(shù),指令格式可分為以下根據(jù)地址碼部分所給出地址的個數(shù),指令格式可分為以下幾種幾種微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第17頁l1. 零地址指令格式零地址指令格式l這是一種沒有操作數(shù)地

25、址部分的指令格式,這是一種沒有操作數(shù)地址部分的指令格式,如圖如圖3-2所示:所示:微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第18頁l這種指令有兩種可能。這種指令有兩種可能。l(1) 無需任何操作數(shù)。如空操作指令,停機無需任何操作數(shù)。如空操作指令,停機指令等。指令等。l(2) 所需的操作數(shù)是默認的。如堆棧結(jié)構(gòu)計所需的操作數(shù)是默認的。如堆棧結(jié)構(gòu)計算機的運算指令所需的操作數(shù)是由一個隱算機的運算指令所需的操作數(shù)是由一個隱含的保存操作數(shù)的硬件機構(gòu)來提供。該隱含的保存操作數(shù)的硬件機構(gòu)來提供。該隱含機構(gòu)就是堆棧。含機構(gòu)就是堆棧。微機原理與接口技術(shù)微機原理與接口技

26、術(shù) 清華大學出版社清華大學出版社2013年4月24日第19頁l堆棧是若干個存儲單元堆棧是若干個存儲單元(或寄存器或寄存器)的有序集合。它順序地的有序集合。它順序地存放一組元素,第一個被壓入元素的堆棧單元稱為棧底,存放一組元素,第一個被壓入元素的堆棧單元稱為棧底,最后一個被壓入元素的單元稱為棧頂。數(shù)據(jù)的存取只能在最后一個被壓入元素的單元稱為棧頂。數(shù)據(jù)的存取只能在棧頂單元內(nèi)進行,即數(shù)據(jù)的進棧與出棧都只能經(jīng)過棧頂單棧頂單元內(nèi)進行,即數(shù)據(jù)的進棧與出棧都只能經(jīng)過棧頂單元這個元這個“出入口出入口”。l堆棧中的數(shù)據(jù)采用的是堆棧中的數(shù)據(jù)采用的是“先進后出先進后出”、“后進先出后進先出”的存的存取工作方式。取工

27、作方式。l為了向堆棧存入數(shù)據(jù),要將堆棧中各單元原有的數(shù)據(jù)為了向堆棧存入數(shù)據(jù),要將堆棧中各單元原有的數(shù)據(jù)(元元素素)依次向棧底方向移動一個單元,空出棧頂單元來存放依次向棧底方向移動一個單元,空出棧頂單元來存放新數(shù)據(jù),這個操作稱為堆棧壓入新數(shù)據(jù),這個操作稱為堆棧壓入(PUSH)。為了取得運算。為了取得運算操作所必需的操作數(shù),對堆棧要執(zhí)行彈出操作所必需的操作數(shù),對堆棧要執(zhí)行彈出(POP)操作。該操作。該操作從棧頂單元取出數(shù)據(jù),并將下面各單元所存的數(shù)據(jù)依操作從棧頂單元取出數(shù)據(jù),并將下面各單元所存的數(shù)據(jù)依次向棧頂方向移動一個單元,由緊挨棧頂?shù)膯卧獢?shù)據(jù)來補次向棧頂方向移動一個單元,由緊挨棧頂?shù)膯卧獢?shù)據(jù)來補

28、充棧頂單元。充棧頂單元。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第20頁l真正實用的堆棧中,對每壓入真正實用的堆棧中,對每壓入(或彈出或彈出)一個一個元素時整個堆棧單元內(nèi)容都下移元素時整個堆棧單元內(nèi)容都下移(或上移或上移)一一個單元的做法作了改進。改進的措施是:個單元的做法作了改進。改進的措施是:在壓入和彈出數(shù)據(jù)時,各堆棧單元的原內(nèi)在壓入和彈出數(shù)據(jù)時,各堆棧單元的原內(nèi)容都不移動,而作為數(shù)據(jù)容都不移動,而作為數(shù)據(jù)“出入口出入口”的棧的棧頂單元地址加以變動,即棧頂位置動態(tài)變頂單元地址加以變動,即棧頂位置動態(tài)變化。對棧頂?shù)奈恢每墒褂靡粋€寄存器來跟化。對棧

29、頂?shù)奈恢每墒褂靡粋€寄存器來跟蹤,這個保存棧頂單元地址的寄存器稱為蹤,這個保存棧頂單元地址的寄存器稱為棧頂指示器棧頂指示器(SP,Stack Pointer)。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第21頁l設數(shù)據(jù)進棧方向為從高地址向低地址,當向堆棧壓入數(shù)據(jù)時,設數(shù)據(jù)進棧方向為從高地址向低地址,當向堆棧壓入數(shù)據(jù)時,SP的的內(nèi)容先自動遞減而指向一個新的空棧頂單元,再把數(shù)據(jù)寫入此棧頂單內(nèi)容先自動遞減而指向一個新的空棧頂單元,再把數(shù)據(jù)寫入此棧頂單元;當數(shù)據(jù)彈出堆棧時,立即讀出元;當數(shù)據(jù)彈出堆棧時,立即讀出SP所指向的棧頂單元內(nèi)容,再把所指向的棧頂單元內(nèi)容

30、,再把SP內(nèi)容自動遞增而指向新的棧頂位置。即:內(nèi)容自動遞增而指向新的棧頂位置。即:lPUSH X; (SP)-1SP (X)(SP)lPOP X; (SP)X (SP)+1SPl堆棧結(jié)構(gòu)除了在零地址指令格式中提供操作數(shù)外,另一個重要作用是堆棧結(jié)構(gòu)除了在零地址指令格式中提供操作數(shù)外,另一個重要作用是實現(xiàn)程序調(diào)用。即在調(diào)用子程序時,能把返回地址、局部變量和中間實現(xiàn)程序調(diào)用。即在調(diào)用子程序時,能把返回地址、局部變量和中間結(jié)果等自動地壓入堆棧;在子程序返回時,又能方便地把有關(guān)信息和結(jié)果等自動地壓入堆棧;在子程序返回時,又能方便地把有關(guān)信息和返回地址彈出堆棧交還。對于子程序嵌套調(diào)用和遞歸調(diào)用,堆棧具有返

31、回地址彈出堆棧交還。對于子程序嵌套調(diào)用和遞歸調(diào)用,堆棧具有別的程序調(diào)用方法所無法比擬的優(yōu)勢。對于別的程序調(diào)用方法所無法比擬的優(yōu)勢。對于“中斷中斷”技術(shù),堆棧更是技術(shù),堆棧更是不可缺少的。不可缺少的。l具有堆棧結(jié)構(gòu)的機器使用零地址指不僅指令長度短、指令結(jié)構(gòu)簡單、具有堆棧結(jié)構(gòu)的機器使用零地址指不僅指令長度短、指令結(jié)構(gòu)簡單、機器硬件簡化,而且又能為軟件中廣泛使用堆棧結(jié)構(gòu)數(shù)據(jù)提供了直接機器硬件簡化,而且又能為軟件中廣泛使用堆棧結(jié)構(gòu)數(shù)據(jù)提供了直接的有力支持。的有力支持。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第22頁l2. 一地址指令格式一地址指令格式l如圖

32、如圖3-3所示,一地址指令也有兩種可能:所示,一地址指令也有兩種可能:微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第23頁l(1) 指令中給出的一個地址既是操作數(shù)的地址,又指令中給出的一個地址既是操作數(shù)的地址,又是操作結(jié)果的存儲地址。如加是操作結(jié)果的存儲地址。如加1、減、減1和移位等單和移位等單操作數(shù)指令。操作數(shù)指令。l(2) 在某些計算機中,指令中提供的一個地址提供在某些計算機中,指令中提供的一個地址提供一個操作數(shù),另一個操作數(shù)是由機內(nèi)硬件寄存器一個操作數(shù),另一個操作數(shù)是由機內(nèi)硬件寄存器“隱含隱含”自動提供的。所謂自動提供的。所謂“隱含隱含”是指此操

33、作是指此操作數(shù)在指令中不出現(xiàn),而是按照事先約定由寄存器數(shù)在指令中不出現(xiàn),而是按照事先約定由寄存器默認提供,運算結(jié)果仍送到寄存器中。因為這個默認提供,運算結(jié)果仍送到寄存器中。因為這個寄存器在連續(xù)運算時,保存著多條指令連續(xù)操作寄存器在連續(xù)運算時,保存著多條指令連續(xù)操作的累計結(jié)果,故稱為累加器的累計結(jié)果,故稱為累加器(AC)。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第24頁l3. 二地址指令格式二地址指令格式l如圖如圖3-4所示,這是最常見的指令格式。常所示,這是最常見的指令格式。常把保存操作前原來操作數(shù)的地址稱為源地把保存操作前原來操作數(shù)的地址稱為源地

34、址址(Source Address,SA),把保存指令執(zhí),把保存指令執(zhí)行結(jié)果的地址稱為目的地址目的地址行結(jié)果的地址稱為目的地址目的地址(Destination Address,DA)。將源操作數(shù)。將源操作數(shù)與目的操作數(shù)進行操作碼規(guī)定的操作后,與目的操作數(shù)進行操作碼規(guī)定的操作后,將結(jié)果存入目的地址。通常二地址指令又將結(jié)果存入目的地址。通常二地址指令又稱為雙操作數(shù)指令。稱為雙操作數(shù)指令。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第25頁l例如,雙操作數(shù)加法指令例如,雙操作數(shù)加法指令lADD R0,R1表示將表示將R0寄存器的內(nèi)容和寄存器的內(nèi)容和R1寄存寄

35、存器的內(nèi)容相加后,將結(jié)果存入器的內(nèi)容相加后,將結(jié)果存入R1寄存器中。寄存器中。lADD (R0),R1表示將表示將R0寄存器的內(nèi)容作為地址,寄存器的內(nèi)容作為地址,到內(nèi)存中取出該地址所指向的單元內(nèi)容作為源操到內(nèi)存中取出該地址所指向的單元內(nèi)容作為源操作數(shù),和作為目的操作數(shù)的作數(shù),和作為目的操作數(shù)的R1寄存器的內(nèi)容相加寄存器的內(nèi)容相加后,將結(jié)果存入后,將結(jié)果存入R1寄存器中。寄存器中。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第26頁l4. 三地址指令格式三地址指令格式l如圖如圖3-5所示,其操作是對所示,其操作是對AC1、AC2指出指出的兩個操作數(shù)進行操

36、作碼所規(guī)定的操作,的兩個操作數(shù)進行操作碼所規(guī)定的操作,并將結(jié)果存入并將結(jié)果存入AC3中。例如:中。例如:ADD X Y Z表示X單元內(nèi)容加上Y單元內(nèi)容,結(jié)果送Z單元中。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第27頁l5. 多地址指令格式多地址指令格式l例如,四地址指令格式,如圖例如,四地址指令格式,如圖3-6所示,大多數(shù)算所示,大多數(shù)算術(shù)運算需要兩個操作數(shù)和一個運算結(jié)果,這樣一術(shù)運算需要兩個操作數(shù)和一個運算結(jié)果,這樣一條指令除操作碼外需要給出:條指令除操作碼外需要給出:l(1) 兩個操作數(shù)的地址。兩個操作數(shù)的地址。l(2) 存放結(jié)果的地址。存放結(jié)

37、果的地址。l(3) 下一條要執(zhí)行的指令地址下一條要執(zhí)行的指令地址這是計算機能夠自這是計算機能夠自動地、連續(xù)地并且不需人介入地執(zhí)行程序所不必動地、連續(xù)地并且不需人介入地執(zhí)行程序所不必不可少的。不可少的。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第28頁l四地址機器指令的優(yōu)點是直觀明了,所用的參數(shù)四地址機器指令的優(yōu)點是直觀明了,所用的參數(shù)被明顯標示在指令中;每條指令都有明確的下條被明顯標示在指令中;每條指令都有明確的下條指令地址,程序執(zhí)行的流向明確;操作數(shù)和結(jié)果指令地址,程序執(zhí)行的流向明確;操作數(shù)和結(jié)果可以分散在內(nèi)存各處。缺點是指令字長度太長??梢苑稚⒃?/p>

38、內(nèi)存各處。缺點是指令字長度太長。l在某些性能較好的大、中型計算機甚至高檔微小在某些性能較好的大、中型計算機甚至高檔微小型機中,往往設置一些功能強大,用于處理特殊型機中,往往設置一些功能強大,用于處理特殊對象的指令,如字符串處理指令、向量和矩陣運對象的指令,如字符串處理指令、向量和矩陣運算指令等。為了描述一批數(shù)據(jù),指令中需要多個算指令等。為了描述一批數(shù)據(jù),指令中需要多個地址來指出數(shù)據(jù)存放的首地址、長度等信息。例地址來指出數(shù)據(jù)存放的首地址、長度等信息。例如如CDC-STAR-100的矩陣運算指令,它有的矩陣運算指令,它有7個地個地址段,用于指出運算的兩個矩陣存儲情況及結(jié)果址段,用于指出運算的兩個矩

39、陣存儲情況及結(jié)果的存放情況。的存放情況。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第29頁l一臺計算機選擇怎樣的指令格式,涉及多方面因素,一般一臺計算機選擇怎樣的指令格式,涉及多方面因素,一般要求指令的字長要盡量短一些,以得到時間和空間上的優(yōu)要求指令的字長要盡量短一些,以得到時間和空間上的優(yōu)勢。指令字長越短,意味著要占用的存儲器規(guī)模就越小,勢。指令字長越短,意味著要占用的存儲器規(guī)模就越小,存取所需要的時間就可能越少。在同一個存儲器的同一傳存取所需要的時間就可能越少。在同一個存儲器的同一傳輸速率下,每秒鐘從存儲器中能讀出的短指令數(shù)目肯定會輸速率下,每秒

40、鐘從存儲器中能讀出的短指令數(shù)目肯定會比長指令的讀出數(shù)目多,從而使處理器執(zhí)行指令的速度加比長指令的讀出數(shù)目多,從而使處理器執(zhí)行指令的速度加快??臁指令也必須有足夠的長度以利于增加信息量。盡管希望指指令也必須有足夠的長度以利于增加信息量。盡管希望指令字長盡量短,但必須滿足指令系統(tǒng)的要求,至少要具有令字長盡量短,但必須滿足指令系統(tǒng)的要求,至少要具有必要的操作碼位數(shù)與操作數(shù)地址字段的位數(shù)。隨著字長的必要的操作碼位數(shù)與操作數(shù)地址字段的位數(shù)。隨著字長的增加,操作碼和操作數(shù)地址可使用的位數(shù)也成比例地增加,增加,操作碼和操作數(shù)地址可使用的位數(shù)也成比例地增加,每條指令的內(nèi)容也就越豐富。每條指令的內(nèi)容也就越豐富

41、。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第30頁l再者,指令字長一般應是機器字符長度的整數(shù)倍以便于存再者,指令字長一般應是機器字符長度的整數(shù)倍以便于存儲系統(tǒng)的管理。若機器中字符碼長是儲系統(tǒng)的管理。若機器中字符碼長是L位,則機器字長最位,則機器字長最好是好是L、2L、4L或或8L等。這樣就能使一個字存儲單元能夠等。這樣就能使一個字存儲單元能夠存放整個字符,否則在存儲字符時,一個或幾個字符就無存放整個字符,否則在存儲字符時,一個或幾個字符就無法存滿一個字存儲單元,造成存儲空間的浪費。當然也可法存滿一個字存儲單元,造成存儲空間的浪費。當然也可以規(guī)定每個

42、字單元存儲如以規(guī)定每個字單元存儲如2.5或或3.5個字符,但這樣做會使個字符,但這樣做會使存取字符非常不方便。而一個指令字可能占用一個字或幾存取字符非常不方便。而一個指令字可能占用一個字或幾個字單元,也可能幾條指令僅占用一個字單元。這樣字符個字單元,也可能幾條指令僅占用一個字單元。這樣字符長對字長長對字長(字單元長字單元長)的限制就影響到指令長。目前普遍采的限制就影響到指令長。目前普遍采用的用的ASCII字符編碼字符編碼(7位位)加一個奇偶校驗位,字符長度加一個奇偶校驗位,字符長度L為為8位位(稱字節(jié)稱字節(jié))。機器字長在小型機是。機器字長在小型機是2字節(jié)字節(jié)(16位位),4字節(jié)字節(jié)(32位位)

43、,微型機還小到單字節(jié),微型機還小到單字節(jié)(8位位)。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第31頁l另外,指令格式的設計還與如何選定指令另外,指令格式的設計還與如何選定指令中操作數(shù)地址的位數(shù)有關(guān)。例如,對同一中操作數(shù)地址的位數(shù)有關(guān)。例如,對同一容量容量(如如64KB)的存儲器,若取存儲單元為的存儲器,若取存儲單元為一字節(jié)長,則需要一字節(jié)長,則需要16位地址碼,若存儲單位地址碼,若存儲單元長度為元長度為32位,則只需位,則只需14位地址碼。對比位地址碼。對比一下會發(fā)現(xiàn)各有利弊:前者對字符操作方一下會發(fā)現(xiàn)各有利弊:前者對字符操作方便,但地址碼位數(shù)多,

44、后者地址碼位數(shù)少,便,但地址碼位數(shù)多,后者地址碼位數(shù)少,但字符操作困難,分辨率低。但字符操作困難,分辨率低。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第32頁2. 指令擴展方法指令擴展方法l指令操作碼的長度決定了指令系統(tǒng)中完成不同操作的指令指令操作碼的長度決定了指令系統(tǒng)中完成不同操作的指令條數(shù)。指令操作碼通常有兩種編碼格式。條數(shù)。指令操作碼通常有兩種編碼格式。l(1) 固定格式固定格式l在這種格式中操作碼長度固定,且集中放在指令字的一個在這種格式中操作碼長度固定,且集中放在指令字的一個字段中。這種格式對于簡化硬件設計,減少指令譯碼時間字段中。這種格式

45、對于簡化硬件設計,減少指令譯碼時間非常有利,在字長較長的大中型計算機和超級小型機以及非常有利,在字長較長的大中型計算機和超級小型機以及RISC上廣泛采用。如上廣泛采用。如IBM360和和VAX11系列機,操作碼長系列機,操作碼長度均為度均為8位。位。l(2) 可變格式可變格式l在這種格式中操作碼長度可變,且分散在指令字的不同字在這種格式中操作碼長度可變,且分散在指令字的不同字段中。這種格式能有效地壓縮指令的平均長度,在字長較段中。這種格式能有效地壓縮指令的平均長度,在字長較短的微、小型計算機中廣泛采用。如短的微、小型計算機中廣泛采用。如Z80、Intel8086/80386和和PDP-11等。

46、這種方法也稱為擴展操作等。這種方法也稱為擴展操作碼方式。碼方式。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第33頁l擴展操作碼方法的基本思想是:操作碼位擴展操作碼方法的基本思想是:操作碼位數(shù)不采用單一固定不變的位數(shù),而是隨地數(shù)不采用單一固定不變的位數(shù),而是隨地址碼個數(shù)變化,操作碼采取可變長度的類址碼個數(shù)變化,操作碼采取可變長度的類型。假設一臺計算機指令字長型。假設一臺計算機指令字長16位,操作位,操作碼與地址碼都為碼與地址碼都為4位,如圖位,如圖3-7所示,若采所示,若采用操作碼長度固定格式,則最多可以設計用操作碼長度固定格式,則最多可以設計16條三

47、地址指令,而采用擴展操作碼的方條三地址指令,而采用擴展操作碼的方法可以獲得更大的靈活性,具體方法如下:法可以獲得更大的靈活性,具體方法如下:微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第34頁l(1) 4位操作碼中用位操作碼中用0000-1110定義定義15條三地條三地址指令,剩下的一個編碼址指令,剩下的一個編碼1111作為擴展標作為擴展標志與下一個志與下一個4位組成一個位組成一個8位操作碼,引出位操作碼,引出二地址指令;二地址指令;l(2) 8位操作碼中用位操作碼中用11110000-11111110定義定義15條二地址指令,剩下的一個編碼條二地址指

48、令,剩下的一個編碼11111111與下一個與下一個4位組成一個位組成一個12位的操作位的操作碼,引出一地址指令;碼,引出一地址指令;微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第35頁l(3) 12位操作碼中用位操作碼中用111111110000-111111111110定義定義15條一地址指令,剩下的一個編碼條一地址指令,剩下的一個編碼111111111111與下一個與下一個4位組成位組成16位操作碼,引位操作碼,引出零地址指令;出零地址指令;l(4) 零地址指令最多有零地址指令最多有16種組合;種組合;l(5) 擴展操作碼可以根據(jù)需要靈活設計。如在

49、第擴展操作碼可以根據(jù)需要靈活設計。如在第(1)步中可以保留步中可以保留0000-1101總共總共14種編碼作為三地種編碼作為三地址指令使用,留出址指令使用,留出1110和和1111兩個作為擴展標志兩個作為擴展標志引出更多的二地址指令等,以此類推。引出更多的二地址指令等,以此類推。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第36頁l【例【例3-1】 假設某計算機的指令長度為假設某計算機的指令長度為20位,具有雙操作位,具有雙操作數(shù)、單操作數(shù)和無操作數(shù)三類指令形式,每個操作數(shù)地址數(shù)、單操作數(shù)和無操作數(shù)三類指令形式,每個操作數(shù)地址規(guī)定用規(guī)定用6位表示。若操

50、作碼字段固定為位表示。若操作碼字段固定為8位,現(xiàn)已設計出位,現(xiàn)已設計出m條雙操作數(shù)指令,條雙操作數(shù)指令,n條無操作數(shù)指令,在此情況下,這臺條無操作數(shù)指令,在此情況下,這臺計算機最多可以設計出多少條單操作數(shù)指令?計算機最多可以設計出多少條單操作數(shù)指令?l答:雙操作數(shù)指令地址字段占用答:雙操作數(shù)指令地址字段占用12位,操作碼字段是位,操作碼字段是8位。位。由于假定全部指令采用由于假定全部指令采用8位固定的位固定的OC碼字段,故這臺計算碼字段,故這臺計算機最多的指令條數(shù)為機最多的指令條數(shù)為256條。由于雙操作數(shù)指令有條。由于雙操作數(shù)指令有m條,條,無操作數(shù)指令有無操作數(shù)指令有n條,因此單操作數(shù)指令最

51、多還可以設計條,因此單操作數(shù)指令最多還可以設計出出(256-m-n)條。條。l如果采用擴展操作碼的方法來設計,則在同樣的前提下,如果采用擴展操作碼的方法來設計,則在同樣的前提下,該計算機的指令系統(tǒng)將獲得更多的靈活性,讀者計算后可該計算機的指令系統(tǒng)將獲得更多的靈活性,讀者計算后可以很容易發(fā)現(xiàn)這一點。以很容易發(fā)現(xiàn)這一點。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第37頁l3.3 尋 址 方 式l3.3.1. 指令尋址方式指令尋址方式l3.3.2. 操作數(shù)尋址方式操作數(shù)尋址方式微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月

52、24日第38頁3.3 尋 址 方 式l尋址方式指的是確定本條指令的數(shù)據(jù)地址以及下尋址方式指的是確定本條指令的數(shù)據(jù)地址以及下一條要執(zhí)行的指令地址的方法。它對豐富程序設一條要執(zhí)行的指令地址的方法。它對豐富程序設計手段、方便程序的編制、提高程序的質(zhì)量、壓計手段、方便程序的編制、提高程序的質(zhì)量、壓縮程序占用的存儲空間等方面都起著重要作用??s程序占用的存儲空間等方面都起著重要作用。l一般把指令中直接給出的地址稱為形式地址一般把指令中直接給出的地址稱為形式地址(Formal Address,F(xiàn)A)。從形式地址生成有效地。從形式地址生成有效地址址(Effective Address,EA)的各種方式稱為尋址

53、的各種方式稱為尋址方式,也稱為各種不同的存儲器訪問方式。每種方式,也稱為各種不同的存儲器訪問方式。每種尋址方式都有一種對形式地址進行變換處理的運尋址方式都有一種對形式地址進行變換處理的運算規(guī)則。通常這些運算變換是由硬件自動實現(xiàn)的。算規(guī)則。通常這些運算變換是由硬件自動實現(xiàn)的。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第39頁l尋址方式的引入帶來以下的好處:尋址方式的引入帶來以下的好處:l(1) 豐富程序設計手段,提高程序質(zhì)量。豐富程序設計手段,提高程序質(zhì)量。l(2) 減少訪問主存的次數(shù),壓縮程序占用的存儲空間。保證指令的地址碼字段減少訪問主存的次數(shù),壓

54、縮程序占用的存儲空間。保證指令的地址碼字段盡可能縮短,而訪問的存儲空間盡可能地大。盡可能縮短,而訪問的存儲空間盡可能地大。l例如,假定在以地址例如,假定在以地址A為起始的連續(xù)存儲區(qū)內(nèi),依次存放著數(shù)據(jù)表內(nèi)的各元為起始的連續(xù)存儲區(qū)內(nèi),依次存放著數(shù)據(jù)表內(nèi)的各元素,編寫一個求連續(xù)素,編寫一個求連續(xù)100個元素之和的程序;又如,將內(nèi)存中某一數(shù)據(jù)區(qū)中個元素之和的程序;又如,將內(nèi)存中某一數(shù)據(jù)區(qū)中連續(xù)的數(shù)據(jù)傳遞到另一個區(qū)域當中,這種數(shù)據(jù)處理情況在程序設計時經(jīng)常出連續(xù)的數(shù)據(jù)傳遞到另一個區(qū)域當中,這種數(shù)據(jù)處理情況在程序設計時經(jīng)常出現(xiàn)。若采用變址尋址方式,以上兩種情況的處理就變得非常簡單?,F(xiàn)。若采用變址尋址方式,以

55、上兩種情況的處理就變得非常簡單。l再如,類似于圖書館對所有書籍的管理,若一組數(shù)據(jù)可以存放在內(nèi)存中任意再如,類似于圖書館對所有書籍的管理,若一組數(shù)據(jù)可以存放在內(nèi)存中任意位置,如何組織才能使得數(shù)據(jù)的查找、更新最為快捷方便。利用間接尋址方位置,如何組織才能使得數(shù)據(jù)的查找、更新最為快捷方便。利用間接尋址方式對于這種情況的處理是十分方便的,就相當于對所有圖書建立索引一樣。式對于這種情況的處理是十分方便的,就相當于對所有圖書建立索引一樣。l還有,若在指令中操作數(shù)地址字段直接明確地指出操作數(shù)在主存器中的具體還有,若在指令中操作數(shù)地址字段直接明確地指出操作數(shù)在主存器中的具體位置,則這種指令可能訪問位置,則這種

56、指令可能訪問(指讀或?qū)懼缸x或?qū)?的主存儲器空間的大小,取決于操作的主存儲器空間的大小,取決于操作數(shù)地址字段的位數(shù)。如假設指令字長是數(shù)地址字段的位數(shù)。如假設指令字長是16位,操作數(shù)地址字段位,操作數(shù)地址字段10位,則指令位,則指令可訪問的主存空間最多只能是可訪問的主存空間最多只能是210=1024個單元。但如果我們在操作數(shù)地址字個單元。但如果我們在操作數(shù)地址字段采用寄存器尋址方式,則既可以使指令的字長縮短,又可以獲得較大的存段采用寄存器尋址方式,則既可以使指令的字長縮短,又可以獲得較大的存儲器訪問空間。儲器訪問空間。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月

57、24日第40頁l尋址方式的類型很多,選用的依據(jù)是:尋址方式的類型很多,選用的依據(jù)是:l(1) 要與數(shù)據(jù)的表示方式相配合,對各種結(jié)要與數(shù)據(jù)的表示方式相配合,對各種結(jié)構(gòu)的數(shù)據(jù)能方便地進行存取和處理。構(gòu)的數(shù)據(jù)能方便地進行存取和處理。l(2) 要與指令系統(tǒng)相匹配,依據(jù)對機器性能要與指令系統(tǒng)相匹配,依據(jù)對機器性能要求的高低來考慮選擇。要求的高低來考慮選擇。l(3) 還要考慮硬件實現(xiàn)的可能性與復雜程度、還要考慮硬件實現(xiàn)的可能性與復雜程度、成本高低、設備與價格增加的合理性。成本高低、設備與價格增加的合理性。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學出版社清華大學出版社2013年4月24日第41頁3.3.

58、1. 指令尋址方式指令尋址方式l指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞剑硪环N是跳躍尋址方式。指令的尋址方式有兩種,一種是順序?qū)ぶ贩绞?,另一種是跳躍尋址方式。l(1) 順序?qū)ぶ贩绞巾樞驅(qū)ぶ贩绞絣由于指令地址在內(nèi)存中按順序安排,當執(zhí)行一段程序時,通常是一條指令、由于指令地址在內(nèi)存中按順序安排,當執(zhí)行一段程序時,通常是一條指令、一條指令地順序進行。就是說,從存儲器取出第一條指令,然后執(zhí)行這條指一條指令地順序進行。就是說,從存儲器取出第一條指令,然后執(zhí)行這條指令;接著從存儲器取出第二條指令,再執(zhí)行第二條指令;接著再取出第三條令;接著從存儲器取出第二條指令,再執(zhí)行第二條指令;接著再取出第三條指令指令

59、。這種程序順序執(zhí)行的過程,我們稱為指令的順序?qū)ぶ贩绞?。為此,。這種程序順序執(zhí)行的過程,我們稱為指令的順序?qū)ぶ贩绞健榇?,必須使用程序計?shù)器必須使用程序計數(shù)器(又稱指令指針寄存器又稱指令指針寄存器)PC來計數(shù)指令的順序號,該順序來計數(shù)指令的順序號,該順序號就是指令在內(nèi)存中的地址。號就是指令在內(nèi)存中的地址。l(2) 跳躍尋址方式跳躍尋址方式l當程序轉(zhuǎn)移執(zhí)行時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條當程序轉(zhuǎn)移執(zhí)行時,指令的尋址就采取跳躍尋址方式。所謂跳躍,是指下條指令的地址碼不是由程序計數(shù)器給出,而是由本條指令給出。程序跳躍后,指令的地址碼不是由程序計數(shù)器給出,而是由本條指令給出。程序跳躍

60、后,按新的指令地址開始順序執(zhí)行。因此,指令計數(shù)器的內(nèi)容也必須相應改變,按新的指令地址開始順序執(zhí)行。因此,指令計數(shù)器的內(nèi)容也必須相應改變,以便及時跟蹤新的指令地址。以便及時跟蹤新的指令地址。l采用指令跳躍尋址方式,可以實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,從而能縮短程采用指令跳躍尋址方式,可以實現(xiàn)程序轉(zhuǎn)移或構(gòu)成循環(huán)程序,從而能縮短程序長度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞?。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無序長度,或?qū)⒛承┏绦蜃鳛楣渤绦蛞?。指令系統(tǒng)中的各種條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令的跳躍尋址而設置的。條件轉(zhuǎn)移指令,就是為了實現(xiàn)指令的跳躍尋址而設置的。微機原理與接口技術(shù)微機原理與接口技術(shù) 清華大學

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論