女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]第4章?處理器體系結(jié)構(gòu)·四關(guān)鍵詞:處理器體系結(jié)構(gòu),匯編語言,指令集,硬件控制語言,寄存器和存儲(chǔ)器 一個(gè)處理器支持的指令和指令的字節(jié)級編碼成為它的ISA(instruction-set archite

第4章?處理器體系結(jié)構(gòu)·四
關(guān)鍵詞:處理器體系結(jié)構(gòu),匯編語言,指令集,硬件控制語言,寄存器和存儲(chǔ)器 一個(gè)處理器支持的指令和指令的字節(jié)級編碼成為它的ISA(instruction-set architecture,指令集體系結(jié)構(gòu))。 ISA在編譯器編寫者和處理器設(shè)計(jì)人員之間提供了一個(gè)概念抽象層,編譯器編寫者只需要知道允許哪些指令,以及它們是如何編碼的;而處理器設(shè)計(jì)者必須建造出執(zhí)行這些指令的處理器。 4.1 處理器設(shè)計(jì)的特點(diǎn) 1 從智力方面來說,處理器設(shè)計(jì)是非常有趣的。它需要完成復(fù)雜的人物,而結(jié)構(gòu)又要盡可能簡單。 2 理解處理器是如何工作的能幫助理解整個(gè)計(jì)算機(jī)系統(tǒng)是如何工作的。 3 雖然很少有人設(shè)計(jì)處理器,但是許多人設(shè)計(jì)包含處理器的硬件系統(tǒng)。 4 你的工作可能就是處理器設(shè)計(jì)。 4.2 Y86指令集體系結(jié)構(gòu) Y86的處理器狀態(tài)類似于IA32。有八個(gè)寄存器(program register):%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp。處理器每個(gè)程序寄存器儲(chǔ)存一個(gè)字。寄存器%esp被入棧、出棧、調(diào)用和返回指令作為棧指針。而其它寄存器沒有固定的含義或固定值。有三個(gè)一位的條件碼(condition code):ZF、SF、OF,它們保存著最近的算術(shù)或邏輯指令造成影響的信息。程序計(jì)數(shù)器(PC)里存放著當(dāng)前正在執(zhí)行執(zhí)行的地址。存儲(chǔ)器從概念上來說就是一個(gè)很大的字節(jié)數(shù)組,保存著程序和數(shù)據(jù)。Y86用虛擬地址來引用存儲(chǔ)器位置。硬件和操作系統(tǒng)如眼見聯(lián)合起來將虛擬地址翻譯成指明數(shù)據(jù)實(shí)際存在存儲(chǔ)器中哪個(gè)地方的實(shí)際或物理地址。 1 Y86的指令細(xì)節(jié) (1)IA32的movl指令分成了四個(gè)不同的指令:irmovl、rrmovl、mrmovl、rmmovl,分別顯式地指明源和目的的格式。源可以是立即數(shù)(i)、寄存器(r)或存儲(chǔ)器(m)。指令名字的第一個(gè)字母指明了目的的類型。兩個(gè)存儲(chǔ)器傳送指令中的存儲(chǔ)器引用方式是簡單的基址加位移形式。在地址計(jì)算中,我們不支持第二變址寄存器(second index register)和任何寄存器值的伸縮(scaling)。同IA32一樣,我們不允許從一個(gè)存儲(chǔ)器地址直接傳送到另一個(gè)存儲(chǔ)器地址。另外我們也不允許將立即數(shù)傳送到存儲(chǔ)器。 (2)有四個(gè)整數(shù)操作指令,就是OPI。它們是addl、subl、andl、xorl。它們只對寄存器數(shù)據(jù)進(jìn)行操作,而IA32還允許對存儲(chǔ)數(shù)據(jù)進(jìn)行這些操作。這些指令會(huì)設(shè)置三個(gè)條件ZF、SF、OF(零、符號(hào)、溢出)。 (3)七個(gè)跳轉(zhuǎn)指令。是jmp、jle、jl、je、jne、jge、jg。根據(jù)轉(zhuǎn)移指令的類型和條件代碼的設(shè)置來選擇轉(zhuǎn)移。轉(zhuǎn)移條件和IA32的一樣。 (4)call指令返回地址入棧,然后跳到目的地址。ret指令從這樣的過程中返回。 (5)pushl和popl指令實(shí)現(xiàn)了入棧和出棧,就像在IA32中一樣。 (6)halt指令停止指令的執(zhí)行。IA32中有一個(gè)與之相當(dāng)?shù)闹噶罱衕lt。IA32的應(yīng)用程序不允許使用這條指令,因?yàn)樗麜?huì)導(dǎo)致整個(gè)系統(tǒng)停止。在Y86程序中用halt指令來停止模擬器。 指令集的一個(gè)重要性質(zhì)就是字節(jié)解釋必須有唯一的解釋。任意一個(gè)字節(jié)序列要么是一個(gè)唯一的指令蓄力的編碼,要目就不是一個(gè)合法的字節(jié)序列。這個(gè)性質(zhì)保證了處理器可以無二義性地執(zhí)行目標(biāo)代碼程序。 2 IA32HE Y86的指令編碼的比較 同IA32中的指令編碼相比,Y86的編碼簡單的多,但是也沒有那么簡潔。在所有的Y86指令中,寄存器字段的位置都是固定的,而在不同的IA32指令中,它們的位置是不一樣的。即使最多只有8個(gè)寄存器,我們也對寄存器采用了4位編碼。IA32只用了3位編碼。所以IA32能將入?;虺鰲V噶罘旁谝粋€(gè)自接力,5位字段表明指令類型,剩下的3位是寄存器指示符。IA32可以將常數(shù)值編碼成1、2或4個(gè)字節(jié),而Y86總是將常熟之編碼成4個(gè)字節(jié)。 4.3 邏輯設(shè)計(jì)和硬件控制語言HCL 要實(shí)現(xiàn)一個(gè)數(shù)字系統(tǒng)需要三個(gè)主要部分:計(jì)算位的函數(shù)的組合邏輯、存儲(chǔ)位的存儲(chǔ)器元素,以及控制存儲(chǔ)器元素更新的時(shí)鐘信號(hào)。 HCL:(hardware control language),硬件控制語言。 1 HCL和C語言的區(qū)別 (1)因?yàn)榻M合電路是由一些邏輯門組成的,它有兩個(gè)屬性就是輸出會(huì)持續(xù)地響應(yīng)輸入的變化。相比之下,C表達(dá)式只會(huì)在程序執(zhí)行過程中被遇到時(shí)才進(jìn)行求值。 (2)C的邏輯表達(dá)式允許參數(shù)是任意整數(shù),0表示FALSE,其它任何值都表示TRUE。而我們的邏輯門只對位值0和1進(jìn)行操作。 (3)C的邏輯表達(dá)式有個(gè)屬性就是它們可能只被部分求值。如果一個(gè)AND或OR操作的結(jié)果只用第一個(gè)參數(shù)求值就能確定,那么就不用對第二個(gè)參數(shù)求值了。而組合邏輯沒有部分求值這條規(guī)則,邏輯門只是簡單地響應(yīng)它們輸入的變化。 2 存儲(chǔ)器和時(shí)鐘控制 組合電路從本質(zhì)上講,不存儲(chǔ)任何信息,相反,它們只是簡單地響應(yīng)輸入信號(hào),產(chǎn)生等于輸入的某個(gè)函數(shù)輸出。為了產(chǎn)生時(shí)序電路,也就是有狀態(tài)并且在這個(gè)狀態(tài)上進(jìn)行計(jì)算的系統(tǒng),我們必須引入按位存儲(chǔ)信息的設(shè)備。 時(shí)鐘寄存器:(簡稱寄存器)存儲(chǔ)單個(gè)位或字。時(shí)鐘信號(hào)控制寄存器加載輸入值。 隨機(jī)訪問存儲(chǔ)器:(簡稱存儲(chǔ)器),存儲(chǔ)多個(gè)字,用地址來選擇該讀或?qū)懩膫€(gè)字。 4.4 Y86的順序?qū)崿F(xiàn) 處理一條指令包括很多操作。我們將他們組織成某個(gè)特殊的階段序列,使即使指令的動(dòng)作差異很大,但所有的指令都遵循統(tǒng)一的序列。每一步的具體處理取決于正在執(zhí)行的指令。各個(gè)階段以及各階段內(nèi)執(zhí)行操作的簡略描述。 取指(fetch):取指階段從存儲(chǔ)器讀入指令,地址為程序計(jì)數(shù)器(PC)的值。 譯碼(decode):譯碼階段從寄存器堆讀入最多兩個(gè)操作數(shù)。 執(zhí)行(execute):在執(zhí)行階段,算術(shù)/邏輯單元(ALU)要么執(zhí)行指令指明的操作,計(jì)算存儲(chǔ)器引用的有效地址,要么增加或減少棧指針。 訪存(memory)訪存階段可以將數(shù)據(jù)寫入存儲(chǔ)器,或者從存儲(chǔ)器讀出數(shù)據(jù)。 寫回(write back):寫回階段最多可以寫兩個(gè)結(jié)果到寄存器堆。 更新PC(PC update):將PC設(shè)置成下一條指令的地址。 處理器無限制地循環(huán)執(zhí)行這些階段,只有在遇到halt指令或一些錯(cuò)誤情況時(shí),才會(huì)停下來。我們處理的錯(cuò)誤情況包括非法存儲(chǔ)器地址(程序地址或數(shù)據(jù)地址),以及非法指令。 參考文獻(xiàn) 布賴恩特, O'Hallaron D, et al. 深入理解計(jì)算機(jī)系統(tǒng)[M]. 中國電力出版社, 2004.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

MCS-51單片機(jī)的匯編語言程序由若干條匯編語言指令和偽指令構(gòu)成。指令存放在程序存儲(chǔ)器中,被單片機(jī)讀取并執(zhí)行,且執(zhí)行結(jié)果將影響單片機(jī)自身的狀態(tài)。

關(guān)鍵字: 匯編語言 偽指令

目前,結(jié)構(gòu)化是程序設(shè)計(jì)的基本要求,可以使程序結(jié)構(gòu)清晰、易于讀寫且方便調(diào)試,也能夠提高程序設(shè)計(jì)的效率。在結(jié)構(gòu)化程序設(shè)計(jì)中,程序的基本結(jié)構(gòu)有三種,即順序結(jié)構(gòu)、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu)。而子程序(也被稱為函數(shù)或過程)是一種提高程序模...

關(guān)鍵字: 匯編語言 順序程序設(shè)計(jì)

在單片機(jī)系統(tǒng)設(shè)計(jì)中,程序設(shè)計(jì)是重要的一環(huán),它的質(zhì)量直接影響到整個(gè)系統(tǒng)的功能。用匯編語言進(jìn)行程序設(shè)計(jì)的過程和用高級語言設(shè)計(jì)程序有相似之處,其設(shè)計(jì)過程大致可以分為以下幾個(gè)步驟:

關(guān)鍵字: 匯編語言 程序設(shè)計(jì) 單片機(jī)

匯編語言(Assembly Language)是任何一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號(hào)語言。在匯編語言中,用助記符代替機(jī)器指令的操作碼,用地址符號(hào)或標(biāo)號(hào)代替指令或操作數(shù)的地址。在...

關(guān)鍵字: 匯編語言 指令 單片機(jī)

C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語言...

關(guān)鍵字: C語言 匯編語言

在匯編語言程序設(shè)計(jì)中,經(jīng)常使用各種符號(hào)代替地址、變量和常量等,以增加程序的可讀性。盡管符號(hào)的命名由編程者決定,但并不是任意的.

關(guān)鍵字: ARM 匯編語言 符號(hào)

硬件設(shè)計(jì): GR8CPU是在面包板上構(gòu)建功能齊全的計(jì)算機(jī)。

關(guān)鍵字: CPU Unix 匯編語言

學(xué)習(xí)編程其實(shí)就是學(xué)高級語言,即那些為人類設(shè)計(jì)的計(jì)算機(jī)語言。 但是,計(jì)算機(jī)不理解高級語言,必須通過編譯器轉(zhuǎn)成二進(jìn)制代碼,才能運(yùn)行。

關(guān)鍵字: 匯編語言

看到這篇文章的朋友,想必大家對pic單片機(jī)均具備一定興趣,或?qū)ic單片機(jī)具備一定使用需求。前文中,小編曾對pic單片機(jī)匯編語言進(jìn)行過部分講解。本文中,將對pic單片機(jī)的清零等指令加以講解,以幫助大家更好掌握pic單片機(jī)...

關(guān)鍵字: pic單片機(jī) 指令 匯編語言

pic單片機(jī)為最常用單片機(jī)之一,許多程序均基于pic單片機(jī)進(jìn)行開發(fā)。因此,熟練pic單片機(jī)編程尤為重要。為保證大家能準(zhǔn)確、熟練掌握pic單片機(jī)的使用,本文特帶來pic單片機(jī)的各種匯編語言指令的講解上篇,下篇將在后期文章中...

關(guān)鍵字: pic單片機(jī) 單片機(jī) 匯編語言
關(guān)閉