程序存儲器寄存器
① 「MCS-51系列單片機中,片內程序存儲器為4KB」,而同時又說「程序存儲器的定址空間為64KB」,求區別!
片內程序存儲器+片外程序存儲器:0000~FFFFH,共 64KB。
片內數據存儲器,51 系列是:00~FFH,共 256B。
52 系列是:00~7FH,共 128B。
片外數據存儲器:0000~FFFFH,共 64KB。
特殊功能寄存器:80H~FFH,只有 21 個單元。
位定址區,RAM 功能:00~7FH,共 128 bit 。
SFR 功能:80~FFH,有效的不多。
存儲空間分布如下所示:
② 寄存器與數據存儲器,程序存儲器的區別
要想區別開來,先明白定義再說區別和原理:
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和外圍設備交換信息時,我們同樣使用 地址寄存器和數據緩沖寄存器
③ 存儲器和寄存器有什麼區別
功能的不同:
存儲器功能:存放指令和數據,並能由中央處理器(CPU)直接隨機存取。
寄存器功能:可將寄存器內的數據執行算術及邏輯運算;存於寄存器內的地址可用來指向內存的某個位置,即定址;可以用來讀寫數據到電腦的周邊設備。
使用時速度的不同:
寄存器的速度比主存儲器的速度要快很多,由於寄存器的容量有限,所以將不需要操作的數據存放在主存儲器中,主存儲器中的數據必須放入寄存器材能夠進行操作。
(3)程序存儲器寄存器擴展閱讀:
一般意義上理解,寄存器是CPU里的存儲單元,與CPU離得近,所以CPU在運算時通常都會用寄存器當中轉站。存儲器是在CPU外部的存儲器,分為RAM,ROM。對單片機來說,因為存儲器,CPU都在一個片內,所以寄存器是片內RAM的一部分。
寄存器是匯編語言里放計算數據用的臨時單元地址。比如有兩個寄存器a和b, a里放了2,b里放了3。那麼可以用匯編指令把a和b相加,並把計算結果放到c里。所以寄存器是內存范疇的。
④ 程序存儲器中的數據怎麼定址
程序存儲器指令地址使用程序計數器PC指針,PC中存放的是下一條將要從程序存儲器中取出的指令的地址。程序計數器PC變化的軌跡決定程序的流程,PC最基本的工作方式是自動加1。
在執行條件轉移或無條件轉移指令時,將轉移的目的地址送入程序計數器,程序流向發生變化。在執行調用指令或響應中斷時,將子程序的入口地址或者中斷矢量地址送人PC,程序流向發生變化。
DPTR是一個16位特殊功能寄存器,主要功能是作為片外數據存儲器或I/0定址用的地址寄存器,這時會產生RD或wR控制信號,用於單片機對外擴的數據存儲器或I/0的控制。數據指針DPTR也可以作為訪問程序存儲器時的基址寄存器,此時是定址程序存儲器中的表格、常數等單元,而不是定址指令。
⑤ 內存、程序存儲器、地址寄存器有什麼區別
先明白定義再說區別和原理:
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和外圍設備交換信息時,我們同樣使用 地址寄存器和數據緩沖寄存器
基本上定義就是區別和應用。