計(jì)算機(jī)圖形學(xué)指令系統(tǒng)_第1頁
計(jì)算機(jī)圖形學(xué)指令系統(tǒng)_第2頁
計(jì)算機(jī)圖形學(xué)指令系統(tǒng)_第3頁
計(jì)算機(jī)圖形學(xué)指令系統(tǒng)_第4頁
計(jì)算機(jī)圖形學(xué)指令系統(tǒng)_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理1內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院第第3章章指令系統(tǒng)指令系統(tǒng)計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理2內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院第第3章章指令和指令系統(tǒng)是計(jì)算機(jī)中最基本的概念。指令和指令系統(tǒng)是計(jì)算機(jī)中最基本的概念。指令是指示計(jì)算機(jī)執(zhí)行某些操作的命令,一臺(tái)指令是指示計(jì)算機(jī)執(zhí)行某些操作的命令,一臺(tái)計(jì)算機(jī)的所有指令的集合構(gòu)成該機(jī)的指令系統(tǒng),計(jì)算機(jī)的所有指令的集合構(gòu)成該機(jī)的指令系統(tǒng),也稱指令集。指令系統(tǒng)是計(jì)算機(jī)的主要屬性,也稱指令集。指令系統(tǒng)是計(jì)算機(jī)的主要屬性,位于硬件和軟件的交界面上。本章將討論一般位于硬件和軟件的交界面上。本章將討論一般計(jì)算機(jī)的指令系統(tǒng)所涉及的

2、基本問題。計(jì)算機(jī)的指令系統(tǒng)所涉及的基本問題。 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理3內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院第第3章章裸機(jī)裸機(jī)軟件軟件指令系統(tǒng)指令系統(tǒng)計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理4內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式3.1.1 機(jī)器指令的基本格式機(jī)器指令的基本格式 一條指令就是機(jī)器語言的一個(gè)語句,一條指令就是機(jī)器語言的一個(gè)語句,它是一組有意義的二進(jìn)制代碼。指令的基它是一組有意義的二進(jìn)制代碼。指令的基本格式如下:本格式如下: 操作碼字段操作碼字段地址碼字段地址碼字段操作碼操作碼:指明操作的性質(zhì)及功能。:指明操作的性質(zhì)及功能。操作碼操作碼 地址碼地址碼:指明操作

3、數(shù)的地址,特殊情況:指明操作數(shù)的地址,特殊情況下也可能直接給出操作數(shù)本身。下也可能直接給出操作數(shù)本身。地址碼地址碼注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理5內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式指令的長(zhǎng)度指令的長(zhǎng)度是指一條指令中所包含的二進(jìn)制代碼是指一條指令中所包含的二進(jìn)制代碼的位數(shù),它取決于操作碼字段的長(zhǎng)度、操作數(shù)地址的的位數(shù),它取決于操作碼字段的長(zhǎng)度、操作數(shù)地址的個(gè)數(shù)及長(zhǎng)度。指令長(zhǎng)度應(yīng):個(gè)數(shù)及長(zhǎng)度。指令長(zhǎng)度應(yīng): 盡可能短盡可能短 等于字節(jié)的整數(shù)倍等于字節(jié)的整數(shù)倍 指令長(zhǎng)度可以等于機(jī)器字長(zhǎng),也可以大于或小于指令長(zhǎng)度可以等于機(jī)器字長(zhǎng),也可以大于或小于機(jī)器字長(zhǎng)。機(jī)器字長(zhǎng)。 在一

4、個(gè)指令系統(tǒng)中,若所有指令的長(zhǎng)度都是相等在一個(gè)指令系統(tǒng)中,若所有指令的長(zhǎng)度都是相等的,稱為的,稱為定長(zhǎng)指令字結(jié)構(gòu)定長(zhǎng)指令字結(jié)構(gòu);若各種指令的長(zhǎng)度隨指令;若各種指令的長(zhǎng)度隨指令功能而異,稱為功能而異,稱為變長(zhǎng)指令字結(jié)構(gòu)變長(zhǎng)指令字結(jié)構(gòu)。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理6內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式3.1.2 地址碼結(jié)構(gòu)地址碼結(jié)構(gòu) 一條一條雙操作數(shù)指令雙操作數(shù)指令的除操作碼之外,還應(yīng)包的除操作碼之外,還應(yīng)包含以下信息:含以下信息: 第一操作數(shù)地址,用第一操作數(shù)地址,用A A1 1表示;表示; 第二操作數(shù)地址,用第二操作數(shù)地址,用A A2 2表示;表示; 操作結(jié)果存放地址

5、,用操作結(jié)果存放地址,用A A3 3表示;表示;下條將要執(zhí)行指令的地址,用下條將要執(zhí)行指令的地址,用A A4 4表示。表示。 這些信息可以在指令中明顯的給出,稱為這些信息可以在指令中明顯的給出,稱為顯顯地址地址;也可以依照某種事先的約定,用隱含的方;也可以依照某種事先的約定,用隱含的方式給出,稱為式給出,稱為隱地址隱地址。 下面以下面以雙操作數(shù)指令雙操作數(shù)指令為例討論地址碼結(jié)構(gòu)。為例討論地址碼結(jié)構(gòu)。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理7內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式1.四地址指令四地址指令OPOPA A1 1A A2 2A A3 3A A4 4 (A1)OP(A2)A

6、3 A4=下條將要執(zhí)行指令的地址下條將要執(zhí)行指令的地址計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理8內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式2.三地址指令三地址指令OPOPA A1 1A A2 2A A3 3(A1)OP(A2)A3(PC)+1=下條將要執(zhí)行指令的地址下條將要執(zhí)行指令的地址程序計(jì)數(shù)器:程序計(jì)數(shù)器:存放當(dāng)前指令地址存放當(dāng)前指令地址 執(zhí)行一條三地址指令需執(zhí)行一條三地址指令需4次訪問主存。次訪問主存。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理9內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院(A1)OP(A2)A13.1 指令格式指令格式3.3.二地址指令二地址指令OPOPA A1 1A A2 2

7、(PC)+1=下條將要執(zhí)行指令的地址下條將要執(zhí)行指令的地址 A1中原存內(nèi)容在指令執(zhí)行后被破壞。中原存內(nèi)容在指令執(zhí)行后被破壞。目的操作數(shù)地址目的操作數(shù)地址源操作數(shù)地址源操作數(shù)地址 執(zhí)行一條二地址指令需執(zhí)行一條二地址指令需4次訪問主存。次訪問主存。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理10內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院(Acc)OP(A1)Acc3 3.1 指令格式指令格式4.4.一地址指令一地址指令OPOPA A1 1(PC)+1=下條將要執(zhí)行指令的地址下條將要執(zhí)行指令的地址累加寄存器累加寄存器 執(zhí)行一條一地址指令需執(zhí)行一條一地址指令需2次訪問主存。次訪問主存。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理11內(nèi)

8、蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式5.5.零地址指令零地址指令OPOP 操作數(shù)地址是隱含的。參加運(yùn)算的操操作數(shù)地址是隱含的。參加運(yùn)算的操作數(shù)放在堆棧中,運(yùn)算結(jié)果也放在堆棧中。作數(shù)放在堆棧中,運(yùn)算結(jié)果也放在堆棧中。有關(guān)堆棧的概念將在稍后討論。有關(guān)堆棧的概念將在稍后討論。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理12內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式 指令中地址個(gè)數(shù)的選取要考慮諸多的因素。從指令中地址個(gè)數(shù)的選取要考慮諸多的因素。從縮短程序長(zhǎng)度,用戶使用方便,增加操作并行度等縮短程序長(zhǎng)度,用戶使用方便,增加操作并行度等方面來看,選用三地址指令格式較好;從縮

9、短指令方面來看,選用三地址指令格式較好;從縮短指令長(zhǎng)度,減少訪存次數(shù),簡(jiǎn)化硬件設(shè)計(jì)等方面來看,長(zhǎng)度,減少訪存次數(shù),簡(jiǎn)化硬件設(shè)計(jì)等方面來看,一地址指令格式較好。對(duì)于同一個(gè)問題,用三地址一地址指令格式較好。對(duì)于同一個(gè)問題,用三地址指令編寫的程序最短,但指令長(zhǎng)度最長(zhǎng),而用二、指令編寫的程序最短,但指令長(zhǎng)度最長(zhǎng),而用二、一、零地址指令來編寫程序,程序的長(zhǎng)度一個(gè)比一一、零地址指令來編寫程序,程序的長(zhǎng)度一個(gè)比一個(gè)長(zhǎng),但指令的長(zhǎng)度一個(gè)比一個(gè)短。個(gè)長(zhǎng),但指令的長(zhǎng)度一個(gè)比一個(gè)短。注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理13內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式3.1.3 指令的操作碼指令的操作

10、碼 指令系統(tǒng)中的每一條指令都有一個(gè)唯一指令系統(tǒng)中的每一條指令都有一個(gè)唯一確定的操作碼,指令不同,其操作碼的編碼確定的操作碼,指令不同,其操作碼的編碼也不同。為了能表示整個(gè)指令系統(tǒng)中的全部也不同。為了能表示整個(gè)指令系統(tǒng)中的全部指令,指令的操作碼字段應(yīng)當(dāng)具有足夠的位指令,指令的操作碼字段應(yīng)當(dāng)具有足夠的位數(shù)。數(shù)。 指令操作碼的編碼可以分為指令操作碼的編碼可以分為規(guī)整型規(guī)整型和和非非規(guī)整型規(guī)整型兩類:兩類: 規(guī)整型(定長(zhǎng)編碼)規(guī)整型(定長(zhǎng)編碼) 非規(guī)整型(變長(zhǎng)編碼)非規(guī)整型(變長(zhǎng)編碼) 注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理14內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式 1.規(guī)整型規(guī)整

11、型 操作碼字段的位數(shù)和位置是固定的。操作碼字段的位數(shù)和位置是固定的。 假定:指令系統(tǒng)共有假定:指令系統(tǒng)共有m m條指令,指令中操作碼條指令,指令中操作碼字段的位數(shù)為字段的位數(shù)為N N位,則有如下關(guān)系式:位,則有如下關(guān)系式: NlogNlog2 2 m m IBM 370 IBM 370機(jī)(字長(zhǎng)機(jī)(字長(zhǎng)3232位)的指令可分為三種不位)的指令可分為三種不同的長(zhǎng)度形式:半字長(zhǎng)指令、單字長(zhǎng)指令和一個(gè)半同的長(zhǎng)度形式:半字長(zhǎng)指令、單字長(zhǎng)指令和一個(gè)半字長(zhǎng)指令。不論指令的長(zhǎng)度為多少位,其中操作碼字長(zhǎng)指令。不論指令的長(zhǎng)度為多少位,其中操作碼字段字段一律都是一律都是8 8位位,8 8位操作碼字段允許容納位操作碼

12、字段允許容納256256條條指令,實(shí)際上在指令,實(shí)際上在IBM 370IBM 370機(jī)中僅有機(jī)中僅有183183條指令。條指令。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理15內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式OPOPOPOPOPD2D1D1D2D2R1R1R1R2R2L1B1B2B2B2X2B1I28888844444444444881212121212RR型RX型RS型SI型SS型計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理16內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式2.非規(guī)整型非規(guī)整型 操作碼字段的位數(shù)不固定,且分散地放在指操作碼字段的位數(shù)不固定,且分散地放在指令字

13、的不同位置上。令字的不同位置上。 PDP-11PDP-11機(jī)(字長(zhǎng)機(jī)(字長(zhǎng)1616位)的指令分為單字長(zhǎng)、兩位)的指令分為單字長(zhǎng)、兩字長(zhǎng)、三字長(zhǎng)三種,操作碼字段占字長(zhǎng)、三字長(zhǎng)三種,操作碼字段占4 41616位不等,位不等,可遍及整個(gè)指令長(zhǎng)度。可遍及整個(gè)指令長(zhǎng)度。 操作碼字段的位數(shù)和位置不固定將增加指令譯操作碼字段的位數(shù)和位置不固定將增加指令譯碼和分析的難度,使控制器的設(shè)計(jì)復(fù)雜化。碼和分析的難度,使控制器的設(shè)計(jì)復(fù)雜化。 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理17內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式OPRR846261316OPS844OPOPOPOPOPOP1616SDD1683

14、DDXSS66666610單字長(zhǎng)(16位)二字長(zhǎng)(32位)三字長(zhǎng)(48位)地址地址1地址2計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理18內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式 最常用的非規(guī)整型編碼方式是擴(kuò)展操作最常用的非規(guī)整型編碼方式是擴(kuò)展操作碼法:碼法: 讓操作數(shù)地址個(gè)數(shù)多的指令(如三地址讓操作數(shù)地址個(gè)數(shù)多的指令(如三地址指令)的操作碼字段短些,操作數(shù)地址個(gè)數(shù)指令)的操作碼字段短些,操作數(shù)地址個(gè)數(shù)少的指令(如一或零地址指令)的操作碼字少的指令(如一或零地址指令)的操作碼字段長(zhǎng)些。段長(zhǎng)些。注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理19內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指

15、令格式 例如:設(shè)某機(jī)的指令長(zhǎng)度為例如:設(shè)某機(jī)的指令長(zhǎng)度為16位,操作位,操作碼字段為碼字段為4位,有三個(gè)位,有三個(gè)4位的地址碼字段,其位的地址碼字段,其格式為:格式為: 如果按照定長(zhǎng)編碼的方法,如果按照定長(zhǎng)編碼的方法,4位操作碼位操作碼字段最多只能表示字段最多只能表示16條不同的三地址指令。條不同的三地址指令。OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理20內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.1 指令格式指令格式OPOPA A1 1A A2 2A A3 34 4位位4 4位位4 4位位4 4位位OPOP1515條三地址

16、指令條三地址指令0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ111111111515條二地址指令條二地址指令11111111 0000 XXXX YYYY 0000 XXXX YYYY1111 1110 XXXX YYYY1111 1110 XXXX YYYY1111 11111111 11111515條一地址指令條一地址指令1111 11111111 1111 0000 XXXX 0000 XXXX1111 1111 1110 XXXX1111 1111 1110 XXXX1111 1

17、111 11111111 1111 11111616條零地址指令條零地址指令1111 1111 11111111 1111 1111 0000 00001111 1111 1111 11111111 1111 1111 1111擴(kuò)展窗口擴(kuò)展窗口擴(kuò)展窗口擴(kuò)展窗口擴(kuò)展窗口擴(kuò)展窗口OPOPA1A1A2A2OPOPA1A1OPOP計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理21內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù) 尋址,指的是尋找操作數(shù)的地址尋址,指的是尋找操作數(shù)的地址或下一或下一條將要執(zhí)行的指令地址。條將要執(zhí)行的指令地址。尋址技術(shù)包括編址尋址技術(shù)包括編址方式和尋址方式。方式和尋址方式。計(jì)

18、算機(jī)組成原理計(jì)算機(jī)組成原理22內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)3.2.1 編址方式編址方式1. 編址編址 通常,指令中的地址碼字段將指出操作數(shù)的來通常,指令中的地址碼字段將指出操作數(shù)的來源和去向,而操作數(shù)則存放在相應(yīng)的存儲(chǔ)設(shè)備中。源和去向,而操作數(shù)則存放在相應(yīng)的存儲(chǔ)設(shè)備中。在計(jì)算機(jī)中需要編址的設(shè)備主要有在計(jì)算機(jī)中需要編址的設(shè)備主要有CPUCPU中的通用寄中的通用寄存器、主存儲(chǔ)器和輸入輸出設(shè)備等存器、主存儲(chǔ)器和輸入輸出設(shè)備等3 3種。種。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理23內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)2. 編址單位編址單位(1)字編

19、址字編址 編址單位編址單位=訪問單位訪問單位 每個(gè)編址單位所包含的信息量(二進(jìn)制每個(gè)編址單位所包含的信息量(二進(jìn)制位數(shù))與讀或?qū)懸淮渭拇嫫?、主存所獲得的位數(shù))與讀或?qū)懸淮渭拇嫫?、主存所獲得的信息量是相同的。早期的大多數(shù)機(jī)器都采用信息量是相同的。早期的大多數(shù)機(jī)器都采用這種編址方式。這種編址方式。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理24內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)(2)字節(jié)編址字節(jié)編址字節(jié)編址是為了適應(yīng)非數(shù)值計(jì)算的需要。字節(jié)字節(jié)編址是為了適應(yīng)非數(shù)值計(jì)算的需要。字節(jié)編址方式使編址單位與信息的基本單位(一個(gè)字節(jié))編址方式使編址單位與信息的基本單位(一個(gè)字節(jié))相一致,這是它的

20、最大優(yōu)點(diǎn)。然而,如果主存的訪相一致,這是它的最大優(yōu)點(diǎn)。然而,如果主存的訪問單位也是一個(gè)字節(jié)的話,那么主存的頻帶就太窄問單位也是一個(gè)字節(jié)的話,那么主存的頻帶就太窄了。了。 編址單位訪問單位編址單位訪問單位 通常主存的訪問單位是編址單位的若干倍。通常主存的訪問單位是編址單位的若干倍。(3)位編址位編址也有部分計(jì)算機(jī)系統(tǒng)采用位編址方式。也有部分計(jì)算機(jī)系統(tǒng)采用位編址方式。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理25內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)3. 指令中地址碼的位數(shù)指令中地址碼的位數(shù) 指令格式中每個(gè)地址碼的位數(shù)是與指令格式中每個(gè)地址碼的位數(shù)是與主存容量主存容量和和最小尋址單位最

21、小尋址單位(即編址單位)有關(guān)聯(lián)的。(即編址單位)有關(guān)聯(lián)的。主存容量越大,所需的地址碼位數(shù)就越長(zhǎng)。對(duì)主存容量越大,所需的地址碼位數(shù)就越長(zhǎng)。對(duì)于相同容量來說,如果以字節(jié)為最小尋址單位,地于相同容量來說,如果以字節(jié)為最小尋址單位,地址碼的位數(shù)就需要長(zhǎng)些;如果以字為最小尋址單位址碼的位數(shù)就需要長(zhǎng)些;如果以字為最小尋址單位(假定字長(zhǎng)為(假定字長(zhǎng)為1616位或更長(zhǎng)),地址碼的位數(shù)可以減位或更長(zhǎng)),地址碼的位數(shù)可以減少。少。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理26內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院設(shè)某機(jī)主存容量為個(gè)字節(jié),機(jī)器字長(zhǎng)設(shè)某機(jī)主存容量為個(gè)字節(jié),機(jī)器字長(zhǎng)3232位。位。若最小尋址單位為字節(jié)(按字節(jié)編址)

22、,若最小尋址單位為字節(jié)(按字節(jié)編址),其地址碼應(yīng)為其地址碼應(yīng)為2020位。位。若最小尋址單位為字(按字編址),其地若最小尋址單位為字(按字編址),其地址碼只需址碼只需1818位。位。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理27內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)3.2.2 數(shù)據(jù)尋址和指令尋址數(shù)據(jù)尋址和指令尋址 尋址可以分為數(shù)據(jù)尋址和指令尋址。尋尋址可以分為數(shù)據(jù)尋址和指令尋址。尋找操作數(shù)的地址稱為數(shù)據(jù)尋址,找操作數(shù)的地址稱為數(shù)據(jù)尋址,數(shù)據(jù)尋址方數(shù)據(jù)尋址方式較多,其最終目的都是尋找所需要的操作式較多,其最終目的都是尋找所需要的操作數(shù)數(shù)。尋找下一條將要執(zhí)行的指令地址稱為指。尋找下一條

23、將要執(zhí)行的指令地址稱為指令尋址,指令尋址比較簡(jiǎn)單,它又可以細(xì)分令尋址,指令尋址比較簡(jiǎn)單,它又可以細(xì)分為順序?qū)ぶ泛吞S尋址。為順序?qū)ぶ泛吞S尋址。注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理28內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)順序?qū)ぶ讽樞驅(qū)ぶ房赏ㄟ^程序計(jì)數(shù)器可通過程序計(jì)數(shù)器PCPC加加1 1,自,自動(dòng)形成下一條指令的地址;跳躍尋址則需要?jiǎng)有纬上乱粭l指令的地址;跳躍尋址則需要通過程序轉(zhuǎn)移類指令實(shí)現(xiàn)。通過程序轉(zhuǎn)移類指令實(shí)現(xiàn)。 跳躍尋址跳躍尋址的轉(zhuǎn)移地址形成方式有三種:的轉(zhuǎn)移地址形成方式有三種:直接(絕對(duì))、相對(duì)和間接尋址,它與下面直接(絕對(duì))、相對(duì)和間接尋址,它與下面介紹的數(shù)據(jù)尋

24、址方式中的直接、相對(duì)和間接介紹的數(shù)據(jù)尋址方式中的直接、相對(duì)和間接尋址是相同的,只不過尋找到的不是操作數(shù)尋址是相同的,只不過尋找到的不是操作數(shù)的有效地址而是轉(zhuǎn)移的有效地址而已。的有效地址而是轉(zhuǎn)移的有效地址而已。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理29內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù) 3.2.3 基本的數(shù)據(jù)尋址方式基本的數(shù)據(jù)尋址方式尋址方式是根據(jù)指令中給出的地址碼字段尋找尋址方式是根據(jù)指令中給出的地址碼字段尋找真實(shí)操作數(shù)地址的方式。真實(shí)操作數(shù)地址的方式。 指令中的形式地址指令中的形式地址AA有效地址有效地址EAEA尋址方式尋址方式OPOP立即數(shù)立即數(shù)在取指令時(shí),操作碼和操作

25、數(shù)被同時(shí)取出,不必在取指令時(shí),操作碼和操作數(shù)被同時(shí)取出,不必再次訪問存儲(chǔ)器,從而提高了指令的執(zhí)行速度。但是,再次訪問存儲(chǔ)器,從而提高了指令的執(zhí)行速度。但是,因?yàn)椴僮鲾?shù)是指令的一部分,不能被修改,且立即數(shù)因?yàn)椴僮鲾?shù)是指令的一部分,不能被修改,且立即數(shù)的大小將受到指令長(zhǎng)度的限制。的大小將受到指令長(zhǎng)度的限制。1.立即尋址立即尋址計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理30內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)2.寄存器尋址寄存器尋址 指令中地址碼部分給指令中地址碼部分給出某一通用寄存器的編號(hào),出某一通用寄存器的編號(hào),所指定的寄存器中存放著操所指定的寄存器中存放著操作數(shù)。作數(shù)。 兩個(gè)明顯

26、的優(yōu)點(diǎn):兩個(gè)明顯的優(yōu)點(diǎn): 從寄存器存取數(shù)據(jù)比從寄存器存取數(shù)據(jù)比主存快得多;主存快得多; 由于寄存器的數(shù)量較由于寄存器的數(shù)量較少,其地址碼字段比主存單少,其地址碼字段比主存單元地址字段短得多。元地址字段短得多。操作數(shù)操作數(shù)OP指令寄存器指令寄存器 通用寄存器通用寄存器RiR5操作數(shù)操作數(shù)S=(Ri)操作數(shù)操作數(shù)EA= RiR5計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理31內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院操作數(shù)操作數(shù)OP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器A3.2 尋址技術(shù)尋址技術(shù)3.直接尋址直接尋址 指令中地址碼字段指令中地址碼字段給出的地址給出的地址A A就是操作數(shù)就是操作數(shù)的有效地址:的有效地址:

27、 EA=AEA=A 由于操作數(shù)地址是由于操作數(shù)地址是不能修改的,與程序本不能修改的,與程序本身所在的位置無關(guān),所身所在的位置無關(guān),所以又叫做以又叫做絕對(duì)尋址絕對(duì)尋址方式。方式。操作數(shù)操作數(shù)100操作數(shù)操作數(shù)S=(A)100計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理32內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)4.間接尋址間接尋址 指令中給出的地指令中給出的地址址A不是操作數(shù)的地不是操作數(shù)的地址,而是存放操作數(shù)址,而是存放操作數(shù)地址的地址。地址的地址。 EA=(A) 通常在指令格式通常在指令格式中劃出一位作為標(biāo)中劃出一位作為標(biāo)志位。志位。 =0 直接尋址直接尋址 =1 間接尋址間接尋址操

28、作數(shù)操作數(shù)EAOP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器A操作數(shù)操作數(shù) 100操作數(shù)操作數(shù)S=(A)100200200計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理33內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù) 間接尋址要比直接尋址靈活得多,它的間接尋址要比直接尋址靈活得多,它的主要優(yōu)點(diǎn)為:主要優(yōu)點(diǎn)為: 擴(kuò)大了尋址范圍,可用指令的短地址訪擴(kuò)大了尋址范圍,可用指令的短地址訪問大的主存空間。問大的主存空間。 可將主存單元作為程序的地址指針,用可將主存單元作為程序的地址指針,用以指示操作數(shù)在主存中的位置。當(dāng)操作數(shù)的以指示操作數(shù)在主存中的位置。當(dāng)操作數(shù)的地址需要改變時(shí),不必修改指令,只需修改地址需要

29、改變時(shí),不必修改指令,只需修改存放有效地址的那個(gè)主存單元(間接地址單存放有效地址的那個(gè)主存單元(間接地址單元)的內(nèi)容就可以了。元)的內(nèi)容就可以了。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理34內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)EAOP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器A110二級(jí)間址二級(jí)間址三級(jí)間址三級(jí)間址操作數(shù)操作數(shù)100操作數(shù)操作數(shù)1 2001 3000 5010020030050除去一級(jí)間接尋址外,除去一級(jí)間接尋址外,還有多級(jí)間接尋址。多級(jí)還有多級(jí)間接尋址。多級(jí)間接尋址為取得操作數(shù)需間接尋址為取得操作數(shù)需要多次訪問主存,即使在要多次訪問主存,即使在找到操作數(shù)有效地址后,

30、找到操作數(shù)有效地址后,還需再訪問一次主存才可還需再訪問一次主存才可得到真正的操作數(shù)。得到真正的操作數(shù)。多級(jí)間接標(biāo)志:多級(jí)間接標(biāo)志:0 0:找到有效地址:找到有效地址1 1:繼續(xù)間接尋址:繼續(xù)間接尋址計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理35內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院EAOP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器Ri操作數(shù)操作數(shù) 通用寄存器通用寄存器3.2 尋址技術(shù)尋址技術(shù)操作數(shù)操作數(shù)操作數(shù)操作數(shù)S=(Ri)100R5EA=(Ri)R51005.5.寄存器間接尋址寄存器間接尋址指令中的地址碼給出指令中的地址碼給出某一通用寄存器的編號(hào),某一通用寄存器的編號(hào),被指定的寄存器中存放操被指定的寄存器中

31、存放操作數(shù)的有效地址,而操作作數(shù)的有效地址,而操作數(shù)則存放在主存單元中。數(shù)則存放在主存單元中。這種尋址方式的指令這種尋址方式的指令較短,并且在取指后只需較短,并且在取指后只需一次訪存便可得到操作數(shù)。一次訪存便可得到操作數(shù)。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理36內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)6.變址尋址變址尋址 把指令給出的把指令給出的形式地址形式地址A與變址與變址寄存器寄存器RX的內(nèi)容相的內(nèi)容相加,形成操作數(shù)有加,形成操作數(shù)有效地址:效地址: EA=A+(RX) RX 的內(nèi)容為變的內(nèi)容為變址值。址值。120OP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器A操作數(shù)操作數(shù)R R

32、X X變址值變址值XALU變址寄存器變址寄存器R RX X操作數(shù)操作數(shù)10020操作數(shù)操作數(shù)S=(A+(RX) 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理37內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)變址尋址是一種廣泛采用的尋址方式,通常指令變址尋址是一種廣泛采用的尋址方式,通常指令中的形式地址作為基準(zhǔn)地址,而中的形式地址作為基準(zhǔn)地址,而R RX X的內(nèi)容作為修改量。的內(nèi)容作為修改量。在遇到需要頻繁修改地址時(shí),無須修改指令,只要修在遇到需要頻繁修改地址時(shí),無須修改指令,只要修改變址值就可以了。改變址值就可以了。例如:要把一組連續(xù)存放在主存單元中的數(shù)據(jù)例如:要把一組連續(xù)存放在主存單元中的

33、數(shù)據(jù)(首地址是(首地址是A A)依次傳送到另一存儲(chǔ)區(qū)(首地址為)依次傳送到另一存儲(chǔ)區(qū)(首地址為B B)中去,則只需在指令中指明兩個(gè)存儲(chǔ)區(qū)的首地址中去,則只需在指令中指明兩個(gè)存儲(chǔ)區(qū)的首地址A A和和B B(形式地址),用同一變址寄存器提供修改量(形式地址),用同一變址寄存器提供修改量K K,即,即可實(shí)現(xiàn)可實(shí)現(xiàn)(A+K)B+K(A+K)B+K。變址寄存器的內(nèi)容在每次傳送之。變址寄存器的內(nèi)容在每次傳送之后自動(dòng)地修改。后自動(dòng)地修改。 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理38內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)7.基址尋址基址尋址 將基址寄存器將基址寄存器Rb的內(nèi)容與位移量的內(nèi)容與位

34、移量D相相加,形成操作數(shù)有效加,形成操作數(shù)有效地址:地址: EA=(Rb)+D 基址寄存器的內(nèi)基址寄存器的內(nèi)容稱為基址值,指令容稱為基址值,指令的地址碼字段是一個(gè)的地址碼字段是一個(gè)位移量,位移量,位移量可正位移量可正可負(fù)可負(fù)。OP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器D操作數(shù)操作數(shù)R Rb b基址值基址值A(chǔ)LU基址寄存器基址寄存器Rb120操作數(shù)操作數(shù)20100操作數(shù)操作數(shù)S=(Rb)+D)計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理39內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)基址尋址和變址尋址在形成有效地址時(shí)所用的算基址尋址和變址尋址在形成有效地址時(shí)所用的算法是相同的,而且在一些計(jì)算機(jī)

35、中,這兩種尋址方式法是相同的,而且在一些計(jì)算機(jī)中,這兩種尋址方式都是由同樣的硬件來實(shí)現(xiàn)的。都是由同樣的硬件來實(shí)現(xiàn)的。但這兩種尋址方式應(yīng)用的場(chǎng)合不同,但這兩種尋址方式應(yīng)用的場(chǎng)合不同,變址尋址是變址尋址是面向用戶的面向用戶的,用于訪問字符串、向量和數(shù)組等成批數(shù),用于訪問字符串、向量和數(shù)組等成批數(shù)據(jù);而據(jù);而基址尋址面向系統(tǒng)基址尋址面向系統(tǒng),主要用于邏輯地址和物理,主要用于邏輯地址和物理地址的變換,用以解決程序在主存中的再定位和擴(kuò)大地址的變換,用以解決程序在主存中的再定位和擴(kuò)大尋址空間等問題。在某些大型機(jī)中,基址寄存器只能尋址空間等問題。在某些大型機(jī)中,基址寄存器只能由特權(quán)指令來管理,用戶指令無權(quán)操

36、作和修改。由特權(quán)指令來管理,用戶指令無權(quán)操作和修改。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理40內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院操作數(shù)操作數(shù)操作數(shù)操作數(shù)OP指令寄存器指令寄存器主存儲(chǔ)器主存儲(chǔ)器D指令指令指令地址指令地址ALU程序計(jì)數(shù)器程序計(jì)數(shù)器PC-D+D3.2 尋址技術(shù)尋址技術(shù)8.相對(duì)尋址相對(duì)尋址 相對(duì)尋址是基相對(duì)尋址是基址尋址的一種變通,址尋址的一種變通,由程序計(jì)數(shù)器由程序計(jì)數(shù)器PC提提供基準(zhǔn)地址,即:供基準(zhǔn)地址,即: EA=(PC)+D 位移量指出操位移量指出操作數(shù)和現(xiàn)行指令之作數(shù)和現(xiàn)行指令之間的相對(duì)位置。間的相對(duì)位置。120操作數(shù)操作數(shù)20100操作數(shù)操作數(shù)S=(PC)+D)100-20

37、E0操作數(shù)操作數(shù)計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理41內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)相對(duì)尋址方式的特點(diǎn):相對(duì)尋址方式的特點(diǎn):操作數(shù)的地址不是固定的,它隨著操作數(shù)的地址不是固定的,它隨著PCPC值的變化而值的變化而變化,并且與指令地址之間總是相差一個(gè)固定值變化,并且與指令地址之間總是相差一個(gè)固定值D D。當(dāng)指令地址改變時(shí),由于其位移量不變,使得操作數(shù)當(dāng)指令地址改變時(shí),由于其位移量不變,使得操作數(shù)與指令在可用的存儲(chǔ)區(qū)內(nèi)一起移動(dòng),所以仍能保證程與指令在可用的存儲(chǔ)區(qū)內(nèi)一起移動(dòng),所以仍能保證程序的正確執(zhí)行。采用序的正確執(zhí)行。采用PCPC相對(duì)尋址方式編寫的程序可在相對(duì)尋址方式編

38、寫的程序可在主存中任意浮動(dòng),它放在主存的任何地方,所執(zhí)行的主存中任意浮動(dòng),它放在主存的任何地方,所執(zhí)行的效果都是一樣的。效果都是一樣的。 由于指令中給出的位移量可正、可負(fù),對(duì)于指令由于指令中給出的位移量可正、可負(fù),對(duì)于指令地址而言,操作數(shù)地址可能在指令地址之前或之后。地址而言,操作數(shù)地址可能在指令地址之前或之后。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理42內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù)9.頁面尋址頁面尋址 頁面尋址相當(dāng)于將整個(gè)主存空間分成若頁面尋址相當(dāng)于將整個(gè)主存空間分成若干個(gè)大小相同的區(qū),每個(gè)區(qū)稱為一頁,每頁干個(gè)大小相同的區(qū),每個(gè)區(qū)稱為一頁,每頁有若干個(gè)主存單元。每頁都

39、有自己的編號(hào),有若干個(gè)主存單元。每頁都有自己的編號(hào),稱為頁面地址;頁面內(nèi)的每個(gè)主存單元也有稱為頁面地址;頁面內(nèi)的每個(gè)主存單元也有自己的編號(hào),稱為頁內(nèi)地址。這樣,操作數(shù)自己的編號(hào),稱為頁內(nèi)地址。這樣,操作數(shù)的有效地址就被分為兩部分:前部為頁面地的有效地址就被分為兩部分:前部為頁面地址,后部為頁內(nèi)地址。址,后部為頁內(nèi)地址。頁內(nèi)地址頁內(nèi)地址頁面地址頁面地址計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理43內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院根據(jù)頁面地址的來源不同,頁面尋址又可以分根據(jù)頁面地址的來源不同,頁面尋址又可以分成成3種不同的方式:種不同的方式: 基頁尋址,又稱零頁尋址。由于頁面地址全基頁尋址,又稱零頁尋址

40、。由于頁面地址全等于等于0,所以有效地址,所以有效地址EA=0A(在這里表示簡(jiǎn)在這里表示簡(jiǎn)單拼接),操作數(shù)單拼接),操作數(shù)S在零頁面中,基頁尋址實(shí)際上在零頁面中,基頁尋址實(shí)際上就是直接尋址。就是直接尋址。 當(dāng)前頁尋址。頁面地址就等于程序計(jì)數(shù)器當(dāng)前頁尋址。頁面地址就等于程序計(jì)數(shù)器PC的高位部分的內(nèi)容,所以有效地址的高位部分的內(nèi)容,所以有效地址EA=(PC)HA,操作數(shù)操作數(shù)S與指令本身處于同一頁面中。與指令本身處于同一頁面中。 頁寄存器尋址。頁面地址取自頁寄存器,與頁寄存器尋址。頁面地址取自頁寄存器,與形式地址相拼接形成有效地址。形式地址相拼接形成有效地址。 3.2 尋址技術(shù)尋址技術(shù)計(jì)算機(jī)組成原

41、理計(jì)算機(jī)組成原理44內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院各種數(shù)據(jù)尋址方式獲得數(shù)據(jù)的速度(由快到各種數(shù)據(jù)尋址方式獲得數(shù)據(jù)的速度(由快到慢)慢)立即尋址立即尋址寄存器尋址寄存器尋址直接尋址直接尋址寄存器間接尋址寄存器間接尋址頁面尋址頁面尋址變址尋址(基址尋址、相對(duì)尋址)變址尋址(基址尋址、相對(duì)尋址)一級(jí)間接尋址一級(jí)間接尋址多級(jí)間接尋址多級(jí)間接尋址 3.2 尋址技術(shù)尋址技術(shù)注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理45內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù) 為了能區(qū)分出各種不同尋址方式,必須為了能區(qū)分出各種不同尋址方式,必須在指令中給出標(biāo)識(shí)。標(biāo)識(shí)的方式通常有兩種:在指令中給出標(biāo)識(shí)

42、。標(biāo)識(shí)的方式通常有兩種:顯式和隱式顯式和隱式。 顯式的方法就是在指令中設(shè)置專門的尋顯式的方法就是在指令中設(shè)置專門的尋址方式(址方式(MOD)字段,用二進(jìn)制代碼來表明)字段,用二進(jìn)制代碼來表明尋址方式類型。尋址方式類型。 隱式的方式是由指令的操作碼字段說明隱式的方式是由指令的操作碼字段說明指令格式并隱含約定尋址方式。指令格式并隱含約定尋址方式。AMODOP顯式顯式AOP隱式隱式計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理46內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.2 尋址技術(shù)尋址技術(shù) 注意,一條指令若有兩個(gè)或兩個(gè)以上的注意,一條指令若有兩個(gè)或兩個(gè)以上的地址碼時(shí),地址碼時(shí),各地址碼可采用不同的尋址方式各地址碼

43、可采用不同的尋址方式。例如,源地址采用一種尋址方式,而目的地例如,源地址采用一種尋址方式,而目的地址采用另一種尋址方式。址采用另一種尋址方式。 MOV AX,(BX)寄存器直接尋址寄存器直接尋址寄存器間接尋址寄存器間接尋址計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理47內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.3 堆棧堆棧與堆棧操作與堆棧操作 堆棧是一種按特定順序進(jìn)行存取的存儲(chǔ)堆棧是一種按特定順序進(jìn)行存取的存儲(chǔ)區(qū),這種特定順序可歸結(jié)為區(qū),這種特定順序可歸結(jié)為“后進(jìn)先出后進(jìn)先出”(LIFO)或)或“先進(jìn)后出先進(jìn)后出”(FILO)。)。 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理48內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3

44、.3 堆棧堆棧與堆棧操作與堆棧操作3.3.1 堆棧結(jié)構(gòu)堆棧結(jié)構(gòu)1.寄存器堆棧寄存器堆棧 用一組專門的寄存器構(gòu)成寄存器堆棧,用一組專門的寄存器構(gòu)成寄存器堆棧,又稱為又稱為硬堆棧硬堆棧。這種堆棧的棧頂是固定的,。這種堆棧的棧頂是固定的,寄存器組中各寄存器是相互連接的,它們之寄存器組中各寄存器是相互連接的,它們之間具有對(duì)應(yīng)位自動(dòng)推移的功能,可將一個(gè)寄間具有對(duì)應(yīng)位自動(dòng)推移的功能,可將一個(gè)寄存器的內(nèi)容推移到相鄰另一個(gè)寄存器中去。存器的內(nèi)容推移到相鄰另一個(gè)寄存器中去。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理49內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.3 堆棧與堆棧操作堆棧與堆棧操作寄存器0寄存器1寄存器2寄存器k

45、-1壓入彈出棧頂b0bn-2bn-1計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理50內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.3 堆棧與堆棧操作堆棧與堆棧操作2.存儲(chǔ)器堆棧存儲(chǔ)器堆棧 從主存中劃出一段區(qū)域來作堆棧,這種堆棧從主存中劃出一段區(qū)域來作堆棧,這種堆棧又稱為軟堆棧,堆棧的大小可變,棧底固定,棧頂又稱為軟堆棧,堆棧的大小可變,棧底固定,棧頂浮動(dòng),故需要一個(gè)專門的硬件寄存器作為堆棧棧頂浮動(dòng),故需要一個(gè)專門的硬件寄存器作為堆棧棧頂指針指針SPSP,簡(jiǎn)稱棧指針。棧指針?biāo)付ǖ闹鞔鎲卧?,?jiǎn)稱棧指針。棧指針?biāo)付ǖ闹鞔鎲卧?,就是堆棧的棧頂。就是堆棧的棧頂?高地址高地址低地址低地址堆棧區(qū)自底向上生成自底向上生成

46、方式的堆棧方式的堆棧計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理51內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.3 堆棧與堆棧操作堆棧與堆棧操作 堆棧的棧底地址大于棧頂?shù)刂?,通常棧指堆棧的棧底地址大于棧頂?shù)刂?,通常棧指針始終指向針始終指向棧頂?shù)臐M單元棧頂?shù)臐M單元。進(jìn)棧時(shí),。進(jìn)棧時(shí),SP的內(nèi)容的內(nèi)容需要先自動(dòng)減需要先自動(dòng)減1,然后再將數(shù)據(jù)壓入堆棧。,然后再將數(shù)據(jù)壓入堆棧。 20001FFF(SP)-1SP 修改棧指針修改棧指針(A)(SP) 將將A中的數(shù)據(jù)壓入堆棧中的數(shù)據(jù)壓入堆棧SP2000A2000原棧頂單元現(xiàn)棧頂單元1FFF1FFF注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理52內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院

47、3.3 堆棧與堆棧操作堆棧與堆棧操作 出棧時(shí),需要先將堆棧中的數(shù)據(jù)彈出,出棧時(shí),需要先將堆棧中的數(shù)據(jù)彈出,然后然后SP的內(nèi)容再自動(dòng)加的內(nèi)容再自動(dòng)加1。 2000(SP)A 將棧頂內(nèi)容彈出,送入將棧頂內(nèi)容彈出,送入A中中(SP)+1SP 修改棧指針修改棧指針SP1FFF1FFFA1FFF原棧頂單元現(xiàn)棧頂單元1FFF1FFF2000注意計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理53內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.3 堆棧與堆棧操作堆棧與堆棧操作3.3.2 堆棧操作堆棧操作 在一般計(jì)算機(jī)中,堆棧主要用來暫存中斷斷點(diǎn)、在一般計(jì)算機(jī)中,堆棧主要用來暫存中斷斷點(diǎn)、子程序調(diào)用時(shí)的返回地址、狀態(tài)標(biāo)志及現(xiàn)場(chǎng)信息等

48、,子程序調(diào)用時(shí)的返回地址、狀態(tài)標(biāo)志及現(xiàn)場(chǎng)信息等,也可用于子程序調(diào)用時(shí)參數(shù)的傳遞,所以用于訪問也可用于子程序調(diào)用時(shí)參數(shù)的傳遞,所以用于訪問堆棧的指令只有進(jìn)棧(壓入)和出棧(彈出)兩種。堆棧的指令只有進(jìn)棧(壓入)和出棧(彈出)兩種。在堆棧計(jì)算機(jī)(如在堆棧計(jì)算機(jī)(如HP-3000HP-3000、B5000B5000等)中,沒等)中,沒有一般計(jì)算機(jī)中必備的通用寄存器,因此堆棧就成有一般計(jì)算機(jī)中必備的通用寄存器,因此堆棧就成為提供操作數(shù)和保存運(yùn)算結(jié)果的唯一場(chǎng)所。為提供操作數(shù)和保存運(yùn)算結(jié)果的唯一場(chǎng)所。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理54內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 3.4.

49、1 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令主要用于實(shí)現(xiàn)寄存器數(shù)據(jù)傳送類指令主要用于實(shí)現(xiàn)寄存器與寄存器之間,寄存器與主存單元之間以與寄存器之間,寄存器與主存單元之間以及兩個(gè)主存單元之間的數(shù)據(jù)傳送。數(shù)據(jù)傳及兩個(gè)主存單元之間的數(shù)據(jù)傳送。數(shù)據(jù)傳送類指令又可以細(xì)分為:送類指令又可以細(xì)分為: 1.一般傳送指令一般傳送指令 一般傳送指令(一般傳送指令(MOV)具有數(shù)據(jù)復(fù)制)具有數(shù)據(jù)復(fù)制的性質(zhì),即數(shù)據(jù)從源地址傳送到目的地址,的性質(zhì),即數(shù)據(jù)從源地址傳送到目的地址,而源地址中的內(nèi)容保持不變。傳送通常以而源地址中的內(nèi)容保持不變。傳送通常以字節(jié)、字、雙字或數(shù)組為單位,特殊情況字節(jié)、字、雙字或數(shù)組為單位,特殊情況

50、下也能按位為單位進(jìn)行傳送。下也能按位為單位進(jìn)行傳送。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理55內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 主存單元之間的傳送主存單元之間的傳送 MOV mem2,mem1,其含義為,其含義為 (mem1)mem2 從主存單元傳送到寄存器從主存單元傳送到寄存器 MOV reg,mem,其含義為,其含義為 (mem)reg 在有些計(jì)算機(jī)中,該指令用助記符在有些計(jì)算機(jī)中,該指令用助記符LOAD表示,又稱為取數(shù)指令。表示,又稱為取數(shù)指令。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理56內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 從寄存器傳送到主存單元從

51、寄存器傳送到主存單元 MOV mem,reg,其含義為,其含義為 (reg)mem 在有些計(jì)算機(jī)里,該指令用助記符在有些計(jì)算機(jī)里,該指令用助記符STORE表示,又稱為存數(shù)指令。表示,又稱為存數(shù)指令。 寄存器之間的傳送寄存器之間的傳送 MOV reg2,reg1,其含義為,其含義為 (reg1)reg2計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理57內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 2.堆棧操作指令堆棧操作指令 堆棧指令是一種特殊的數(shù)據(jù)傳送指令,堆棧指令是一種特殊的數(shù)據(jù)傳送指令,分為進(jìn)棧(分為進(jìn)棧(PUSH)和出棧()和出棧(POP)兩種。)兩種。 因?yàn)槎褩#ㄖ杠浂褩#┦侵鞔娴囊?/p>

52、個(gè)特因?yàn)槎褩#ㄖ杠浂褩#┦侵鞔娴囊粋€(gè)特定區(qū)域,所以對(duì)堆棧的操作也就是對(duì)存儲(chǔ)器定區(qū)域,所以對(duì)堆棧的操作也就是對(duì)存儲(chǔ)器的操作。的操作。3.數(shù)據(jù)交換指令數(shù)據(jù)交換指令 前述指令的傳送都是單方向的,然而,前述指令的傳送都是單方向的,然而,數(shù)據(jù)傳送也可以是雙方向的,即將源操作數(shù)數(shù)據(jù)傳送也可以是雙方向的,即將源操作數(shù)與目的操作數(shù)(一個(gè)字節(jié)或一個(gè)字)相互交與目的操作數(shù)(一個(gè)字節(jié)或一個(gè)字)相互交換位置。換位置。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理58內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 3.4.2 運(yùn)算類指令運(yùn)算類指令1.算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 算術(shù)運(yùn)算指令主要用于進(jìn)行定點(diǎn)和浮算術(shù)運(yùn)算指令

53、主要用于進(jìn)行定點(diǎn)和浮點(diǎn)運(yùn)算。這類運(yùn)算包括加、減、乘、除以點(diǎn)運(yùn)算。這類運(yùn)算包括加、減、乘、除以及加及加1、減、減1、比較等,有些機(jī)器還有十進(jìn)、比較等,有些機(jī)器還有十進(jìn)制算術(shù)運(yùn)算指令。制算術(shù)運(yùn)算指令。 絕大多數(shù)算術(shù)運(yùn)算指令都會(huì)影響到狀絕大多數(shù)算術(shù)運(yùn)算指令都會(huì)影響到狀態(tài)標(biāo)志位,通常的標(biāo)志位有進(jìn)位、溢出、態(tài)標(biāo)志位,通常的標(biāo)志位有進(jìn)位、溢出、全零、正負(fù)和奇偶等。全零、正負(fù)和奇偶等。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理59內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型2.邏輯運(yùn)算指令邏輯運(yùn)算指令 一般計(jì)算機(jī)都具有與、或、非、異或一般計(jì)算機(jī)都具有與、或、非、異或等邏輯運(yùn)算指令。這類指令在沒有設(shè)置專

54、門等邏輯運(yùn)算指令。這類指令在沒有設(shè)置專門的位操作指令的計(jì)算機(jī)中常用于對(duì)數(shù)據(jù)字的位操作指令的計(jì)算機(jī)中常用于對(duì)數(shù)據(jù)字(字節(jié))中某些位(一位或多位)進(jìn)行操作。(字節(jié))中某些位(一位或多位)進(jìn)行操作。(1)按位測(cè)(位檢查)按位測(cè)(位檢查) XXXXXXXXX 0 0 0 1 0 0 0 00 0 0 X 0 0 0 0AND AL,10H計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理60內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型(2)按位清(位清除)按位清(位清除) XXXXXXXX 1 1 1 1 1 1 0 1XXXXXX 0XX(3)按位置(位設(shè)置)按位置(位設(shè)置) XXXXXXXX 0 1

55、 0 0 0 0 0 0X 1XXXXXXXOR AL,40HAND AL,FDH計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理61內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 (4)按位修改按位修改 利用利用“異或異或”指令可以修改目的操作指令可以修改目的操作數(shù)的某些位,只要源操作數(shù)的相應(yīng)位為數(shù)的某些位,只要源操作數(shù)的相應(yīng)位為“1”,其余位為,其余位為“0”,異或之后就達(dá)到了,異或之后就達(dá)到了修改這些位的目的(因?yàn)樾薷倪@些位的目的(因?yàn)锳 1=A,A 0=A)。)。 XXXXXXXX 0 0 0 0 1 0 0 0XXXXXXXXX計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理62內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古

56、大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 (5)判符合判符合 若兩數(shù)相符合,其異或之后的結(jié)果必若兩數(shù)相符合,其異或之后的結(jié)果必定為定為“0”。(6)清清0 XOR AL,AL計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理63內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 3.移位指令移位指令 分為算術(shù)移位、邏輯移位和循環(huán)移位分為算術(shù)移位、邏輯移位和循環(huán)移位3類,它們又可分為左移和右移兩種。類,它們又可分為左移和右移兩種。 算術(shù)移位的對(duì)象是帶符號(hào)數(shù),算術(shù)移算術(shù)移位的對(duì)象是帶符號(hào)數(shù),算術(shù)移位過程中必須保持操作數(shù)的符號(hào)不變,左位過程中必須保持操作數(shù)的符號(hào)不變,左移一位,數(shù)值移一位,數(shù)值 2,右移一位,

57、數(shù)值,右移一位,數(shù)值 2。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理64內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 邏輯移位的對(duì)象是沒有數(shù)值含義的二邏輯移位的對(duì)象是沒有數(shù)值含義的二進(jìn)制代碼,因此移位時(shí)不必考慮符號(hào)問題。進(jìn)制代碼,因此移位時(shí)不必考慮符號(hào)問題。 循環(huán)移位又按進(jìn)位位是否一起循環(huán)分循環(huán)移位又按進(jìn)位位是否一起循環(huán)分為兩類:為兩類: 小循環(huán)(不帶進(jìn)位循環(huán))小循環(huán)(不帶進(jìn)位循環(huán)) 大循環(huán)(帶進(jìn)位循環(huán))大循環(huán)(帶進(jìn)位循環(huán))計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理65內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 3.4.3 程序控制類指令 程序控制類指令用于控制程序的執(zhí)行方向,并

58、使程序控制類指令用于控制程序的執(zhí)行方向,并使程序具有測(cè)試、分析與判斷的能力。程序具有測(cè)試、分析與判斷的能力。1.1.轉(zhuǎn)移指令轉(zhuǎn)移指令 在程序執(zhí)行過程中,通常采用轉(zhuǎn)移指令來改變程在程序執(zhí)行過程中,通常采用轉(zhuǎn)移指令來改變程序的執(zhí)行方向。轉(zhuǎn)移指令又分無條件轉(zhuǎn)移和條件轉(zhuǎn)移序的執(zhí)行方向。轉(zhuǎn)移指令又分無條件轉(zhuǎn)移和條件轉(zhuǎn)移兩種。兩種。 無條件轉(zhuǎn)移指令(無條件轉(zhuǎn)移指令(JMPJMP)不受任何條件的約束,直)不受任何條件的約束,直接把程序轉(zhuǎn)向新的位置執(zhí)行。接把程序轉(zhuǎn)向新的位置執(zhí)行。 計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理66內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 條件轉(zhuǎn)移指令必須受到條件的約束,

59、若條件滿足條件轉(zhuǎn)移指令必須受到條件的約束,若條件滿足時(shí)才轉(zhuǎn)向新的位置執(zhí)行,否則程序仍順序執(zhí)行。時(shí)才轉(zhuǎn)向新的位置執(zhí)行,否則程序仍順序執(zhí)行。無論是條件轉(zhuǎn)移還是無條件轉(zhuǎn)移都需要給出轉(zhuǎn)移無論是條件轉(zhuǎn)移還是無條件轉(zhuǎn)移都需要給出轉(zhuǎn)移地址。若采用相對(duì)尋址方式,轉(zhuǎn)移地址為當(dāng)前指令地地址。若采用相對(duì)尋址方式,轉(zhuǎn)移地址為當(dāng)前指令地址(即址(即PCPC的值)和指令中給出的位移量之和,即:的值)和指令中給出的位移量之和,即:(PC)+(PC)+位移量位移量PCPC;若采用絕對(duì)尋址方式,轉(zhuǎn)移地址;若采用絕對(duì)尋址方式,轉(zhuǎn)移地址由指令的地址碼直接給出,即:由指令的地址碼直接給出,即:APCAPC。計(jì)算機(jī)組成原理計(jì)算機(jī)組成原

60、理67內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 2.子程序調(diào)用指令子程序調(diào)用指令 子程序是一組可以公用的指令序列,子程序是一組可以公用的指令序列,只要知道子程序的入口地址就能調(diào)用它。只要知道子程序的入口地址就能調(diào)用它。 從主程序轉(zhuǎn)向子程序的指令稱為子程從主程序轉(zhuǎn)向子程序的指令稱為子程序調(diào)用指令(序調(diào)用指令(CALL);而從子程序轉(zhuǎn)向主);而從子程序轉(zhuǎn)向主程序的指令稱為返回指令(程序的指令稱為返回指令(RET)。)。主程序主程序CALL A子程序子程序RETA:計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理68內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院3.4 指令類型指令類型 主程序和子程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論