程式計數器PC中存放的指令地址,這個地址指字地址嗎?然後需要

2022-02-08 23:00:59 字數 4791 閱讀 4330

1樓:匿名使用者

先明白定義再說區別和原理: 1、程式儲存器(program storage) 在計算機的主儲存器中專門用來存放程式、子程式的一個區域。 2、指令暫存器(ir ):

用來儲存當前正在執行的一條指令。當執行一條指令時,先把它從記憶體取到資料暫存器(dr)中,然後再傳送至ir。指令劃分為操作碼和地址碼欄位,由二進位制數字組成。

為了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。指令暫存器中操作碼欄位的輸出就是指令譯碼器的輸入。

操作碼一經譯碼後,即可向操作控制器發出具體操作的特定訊號。 3、程式計數器(pc):為了保證程式(在作業系統中理解為程序)能夠連續地執行下去,cpu必須具有某些手段來確定下一條指令的地址。

而程式計數器正是起到這種作用,所以通常又稱為指令計數器。在程式開始執行前,必須將它的起始地址,即程式的一條指令所在的記憶體單元地址送入pc,因此程式計數器(pc)的內容即是從記憶體提取的第一條指令的地址。當執行指令時,cpu將自動修改pc的內容,即每執行一條指令pc增加一個量,這個量等於指令所含的位元組數,以便使其保持的總是將要執行的下一條指令的地址。

由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對pc加1。 當程式轉移時,轉移指令執行的最終結果就是要改變pc的值,此pc值就是轉去的地址,以此實現轉移。有些機器中也稱pc為指令指標ip(instruction pointer) 4、地址暫存器:

用來儲存當前cpu所訪問的記憶體單元的地址。由於在記憶體和cpu之間存在著操作速度上的差別,所以必須使用地址暫存器來保持地址資訊,直到記憶體的讀/寫操作完成為止 。 當cpu和記憶體進行資訊交換,即cpu向記憶體存/取資料時,或者cpu從記憶體中讀出指令時,都要使用地址暫存器和資料緩衝暫存器。

同樣,如果我們把外圍裝置的裝置地址作為像記憶體的地址單元那樣來看待,那麼,當cpu和外圍裝置交換資訊時,我們同樣使用 地址暫存器和資料緩衝暫存器 基本上定義就是區別和應用。 藍屏

2樓:陽光的凌寶寶

日後需要啟用windows server 2008系統的ie增強安全配置功能

資料地址暫存器和程式計數器的區別

3樓:0李張

為了加深初學者對51微控制器指令的理解,現在把指令執行的過程在此詳細說明,希望對你有啟發!

1. 微控制器執行程式的過程,實際上就是執行我們所編制程式的過程。即逐條指令的過程。

2. 計算機每執行一條指令都可分為三個階段進行。即取指令-----分析指令-----執行指令。

3. 取指令的任務是:根據程式計數器pc中的值從程式儲存器讀出現行指令,送到指令暫存器。

程式計數器pc取指令,送給資料暫存器dr,資料暫存器送給指令暫存器ir

4. 分析指令階段的任務是:將指令暫存器中的指令操作碼取出後進行譯碼,分析其指令性質。

5. 如指令要求運算元,則尋找運算元地址。

計算機執行程式的過程實際上就是逐條指令地重複上述操作過程,直至遇到停機指令可迴圈等待指令。

一般計算機進行工作時,首先要通過外部裝置把程式和資料通過輸入介面電路和資料匯流排送入到儲存器,然後逐條取出執行。但微控制器中的程式一般事先我們都已通過寫入器固化在片內或片外程式儲存器中。因而一開機即可執行指令。

下面我們將舉個例項來說明指令的執行過程:

開機時,程式計算器pc變為0000h。然後微控制器在時序電路作用下自動進入執行程式過程。

執行過程實際上就是取出指令(取出儲存器中事先存放的指令階段)和執行指令(分析和執行指令)的迴圈過程。

例如執行指令:mov a,#0e0h,其機器碼為「74h e0h」,該指令的功能是把運算元e0h送入累加器, 0000h單元中已存放74h,0001h單元中已存放e0h。

當微控制器開始執行時,首先是進入取指階段,其次序是:

1. 程式計數器的內容(這時是0000h)送到地址暫存器;

2. 程式計數器的內容自動加1(變為0001h);

3. 地址暫存器的內容(0000h)通過內部地址匯流排送到儲存器,以儲存器中地址譯碼,使地址為0000h的單元被選中;

4. cpu使讀控制線有效;

5. 在讀命令控制下被選中儲存器單元的內容(此時應為74h)送到內部資料匯流排上,因為是取指階段,所以該內容通過資料匯流排被送到指令暫存器。

至此,取指階段完成,進入譯碼分析和執行指令階段。

由於本次進入指令暫存器中的內容是74h(操作碼),以譯碼器譯碼後微控制器就會知道該指令是要將一個數送到a累加器,而該數是在這個**的下一個儲存單元。

所以,執行該指令還必須把資料(e0h)從儲存器中取出送到cpu,即還要在儲存器中取第二個位元組。

其過程與取指階段很相似,只是此時pc已為0001h。指令譯碼器結合時序部件,產生74h操作碼的微操作系列,使數字e0h從0001h單元取出。因為指令是要求把取得的數送到a累加器,所以取出的數字經內部資料匯流排進入a累加器,而不是進入指令暫存器。

至此,一條指令的執行完畢。

微控制器中pc="0002h",pc在cpu每次向儲存器取指或取數時自動加1,微控制器又進入下一取指階段。

這一過程一直重複下去,直至收到暫停指令或迴圈等待指令暫停。cpu就是這樣一條一條地執行指令,完成所有規定的功能。

4樓:八方遊俠

告訴你這些的人太不負責了。

定義再說區別和原理:

1、程式儲存器(program storage)

在計算機的主儲存器中專門用來存放程式、子程式的一個區域。

2、指令暫存器(ir ):用來儲存當前正在執行的一條指令。當執行一條指令時,先把它從記憶體取到資料暫存器(dr)中,然後再傳送至ir。

指令劃分為操作碼和地址碼欄位,由二進位制數字組成。為了執行任何給定的指令,必須對操作碼進行測試,以便識別所要求的操作。指令譯碼器就是做這項工作的。

指令暫存器中操作碼欄位的輸出就是指令譯碼器的輸入。操作碼一經譯碼後,即可向操作控制器發出具體操作的特定訊號。

3、程式計數器(pc):為了保證程式(在作業系統中理解為程序)能夠連續地執行下去,cpu必須具有某些手段來確定下一條指令的地址。而程式計數器正是起到這種作用,所以通常又稱為指令計數器。

在程式開始執行前,必須將它的起始地址,即程式的一條指令所在的記憶體單元地址送入pc,因此程式計數器(pc)的內容即是從記憶體提取的第一條指令的地址。當執行指令時,cpu將自動修改pc的內容,即每執行一條指令pc增加一個量,這個量等於指令所含的位元組數,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對pc加1。

當程式轉移時,轉移指令執行的最終結果就是要改變pc的值,此pc值就是轉去的地址,以此實現轉移。有些機器中也稱pc為指令指標ip(instruction pointer)

4、地址暫存器:用來儲存當前cpu所訪問的記憶體單元的地址。由於在記憶體和cpu之間存在著操作速度上的差別,所以必須使用地址暫存器來保持地址資訊,直到記憶體的讀/寫操作完成為止 。?

當cpu和記憶體進行資訊交換,即cpu向記憶體存/取資料時,或者cpu從記憶體中讀出指令時,都要使用地址暫存器和資料緩衝暫存器。同樣,如果我們把外圍裝置的裝置地址作為像記憶體的地址單元那樣來看待,那麼,當cpu和外圍裝置交換資訊時,我們同樣使用 地址暫存器和資料緩衝暫存器

基本上定義就是區別和應用。

5樓:極光j掠過天邊

都說得不清楚。

我覺得pc存的是下一條指令在記憶體裡的地址,用來取下條指令。

ar是地址快取,所有型別的地址只要是在使用前,都得在這裡存一下。包括pc裡的內容。一開始取指令時,pc中的內容打入ar中,然後pc就可以+1了。

然後系統根據ar中的內容去取指令。取到指令後,指令由操作碼和地址碼構成,地址碼打入ar,然後去記憶體定址……

總之就是pc是起特定作用的暫存器,內容意義明確,就是下條指令起始地址;ar是快取,所存內容型別當然是地址,但具體意義就不確定了,所有系統用到的地址在使用前都得來過一下,包括pc。

6樓:王星晨

我給你講些最通俗易懂的。

計算機為什麼稱為計算機,是因為它有計算能力。計算能力靠誰體現?當然非cpu莫屬。cpu的處理頻率越高,當然它的計算能力就越強。

可cpu只負責計算,誰給它資料計算呢?它計算完又把資料傳給誰呢?這需要一塊儲存器來存放資料。

最重要的也就是記憶體了。不過記憶體的存取速率沒有cpu的高,幹活速率不匹配。怎麼可以協調工作呢?

cpu一秒鐘能搬100個麻袋,記憶體一秒鐘才能搬1個。這cpu總不能在這乾等著吧?

這時候就需要一個起緩衝作用的裝置來解決此問題。一般我們會放一個快取也就是cache(有一級快取,二級快取)在cpu和記憶體中間,現在情況好了點。不過還是cpu的使用效率不太高啊,最好能找個能與cpu處理速度錯不了太多了。

這時,我們就引入了「暫存器」的概念。現在的計算機一般都是cpu和暫存器整合在一起。

暫存器可以分很多種,其中指令暫存器是與cpu關係最親密的。因為cpu要執行它送來的指令。那指令暫存器的指令從**來拿呢?

是從資料暫存器中取。這個過程只是解決了waht to do。但是how to do?

cpu怎麼去執行拿資料呢?指令暫存器又怎麼在資料暫存器中去拿資料呢?

cpu通過pc(也就是程式計數器)去拿一組指令來執行。為什麼要通過pc去拿呢? 因為這樣增大了cpu的工作效率,減少了開銷。

這句話聽起來很籠統是吧?pc其實就是一個指標。指向下一組指令的指標地址。

我有了它就可以找個那一組指令在哪。每組指令都有自己的儲存地址,那這一組組地址在哪存放呢?就在「地址暫存器」中存放。

就像指令暫存器從資料暫存器中拿資料的道理一樣,pc去「地址暫存器」中拿地址。

其實你也可以理解為一個很簡單的對應關係。

cpu-->指令暫存器-->資料暫存器

↕------------↕---------------↕

cpu-->程式計數器-->地址暫存器

9,8254定時計數器的定時與計數方式有什麼區別

8254 是intel 公司生產的可程式設計間隔定時器。是8253 的改進型,比8253 具有更優良的效能。8254 具有以下基本功能 1 有3 個獨立的16 位計數器。2 每個計數器可按二進位制或十進位制 bcd 計數。3 每個計數器可程式設計工作於6 種不同工作方式。4 8254 每個計數器允許...

三菱PLC程式設計軟體中的定時器和計數器怎麼使用啊

程式末端輸入指令例如 out t1 k100 設定計時器t1,其計時時間為100.10秒 補充 三菱plc英文名又稱 mitsubish programmable logic controller,是三菱電機在大連生產的主力產品。它採用一類可程式設計的儲存器,用於其內部儲存程式,執行邏輯運算 順序控...

設Intel8253計數器的時鐘輸入頻率為1MHz,為產生

時鐘輸入週期 1 1mhz 1 s 10khz的方波的半週期 1 10khz 2 0.00005s 50 s 計數器初裝值 50 s 1 s 50d 32h 這些都屬於計數bai器簡單計算,具體du如下 zhi 時鐘輸入周 期 1 1mhz 1 s 10khz的方波的dao半週期 1 10khz 2...