㈠ 指令和數據都存於存儲器中,計算機如何區分它們
通過不同時間段來區分指令和數據:即在取指令階段取出的是指令,在執行指令階段取出的是數據。
通過地址來源區分:由PC提供存儲單元地址取出的是指令,由指令碼部分提供存儲單元地址取出的是操作數。
存儲器注意事項
編程器要想正確使用,必須安裝列印機驅動程序才行(以便列印埠輸出指令信號),可以隨便安裝一個驅動,大容量存儲器可代替小容量,小容量不可以代替大容量存儲器。
對於AT,ST,BR公司的24系列存儲器,在工作時,其7腳需接低電平。而KOA,KOR,KS公司的24系列存儲器,其7腳需接高電平。否則不能存台。如遇到存儲塊出現只能讀不能寫的情況下,可改變7腳的電平試試(通過10K電阻接電源正極或直接接地)。
㈡ 機器指令是存放在哪個存儲器中
所有指令是協調工作的
我想這些指令也是存儲與不同的寄存器中。
並不是孤立的哪一個上面。
~~~~~~~~
寄存器是中央處理器內的其中組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。
寄存器(Register)
寄存器是內存階層 中的最頂端,也是系統操作資料的最快速途徑。寄存器通常都是以他們可以保存的 位元 數量來估量,舉例來說,一個 "8 位元寄存器" 或 "32 位元 寄存器"。寄存器現在都以寄存器檔案 的方式來實作,但是他們也可能使用單獨的正反器、高速的核心內存、薄膜內存 以及在數種機器上的其他方式來實作出來。
寄存器通常都用來意指由一個指令之輸出或輸入可以直接索引到的暫存器群組。更適當的是稱他們為 "架構寄存器"。
例如,x86 指令及定義八個 32 位元寄存器的集合,但一個實作 x86 指令集的 CPU 可以包含比八個更多的寄存器。
寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。
寄存器的用途:
1.可將寄存器內的數據執行算術及邏輯運算。
2.存於寄存器內的地址可用來指向內存的某個位置,即定址。
3.可以用來讀寫數據到電腦的周邊設備。
8086 有8個8位數據寄存器,
這些8位寄存器可分別組成16位寄存器:
AH&AL=AX:累加寄存器,常用於運算;
BH&BL=BX:基址寄存器,常用於地址索引;
CH&CL=CX:計數寄存器,常用於計數;
DH&DL=DX:數據寄存器,常用於數據傳遞。
為了運用所有的內存空間,8086設定了四個段寄存器,專門用來保存段地址:
CS(Code Segment):代碼段寄存器;
DS(Data Segment):數據段寄存器;
SS(Stack Segment):堆棧段寄存器;
ES(Extra Segment):附加段寄存器。
當一個程序要執行時,就要決定程序代碼、數據和堆棧各要用到內存的哪些位置,通過設定段寄存器 CS,DS,SS 來指向這些起始位置。通常是將DS固定,而根據需要修改CS。所以,程序可以在可定址空間小於64K的情況下被寫成任意大小。 所以,程序和其數據組合起來的大小,限制在DS 所指的64K內,這就是COM文件不得大於64K的原因。8086以內存做為戰場,用寄存器做為軍事基地,以加速工作。
除了前面所提的寄存器外,還有一些特殊功能的寄存器:
IP(Intruction Pointer):指令指針寄存器,與CS配合使用,可跟蹤程序的執行過程;
SP(Stack Pointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。
BP(Base Pointer):基址指針寄存器,可用作SS的一個相對基址位置;
SI(Source Index):源變址寄存器可用來存放相對於DS段之源變址指針;
DI(Destination Index):目的變址寄存器,可用來存放相對於 ES 段之目的變址指針。
還有一個標志寄存器FR(Flag Register),有九個有意義的標志(
OF: 溢出標志位OF用於反映有符號數加減運算所得結果是否溢出。如果運算結果超過當前運算位數所能表示的范圍,則稱為溢出,OF的值被置為1,否則,OF的值被清為0.
DF: 方向標志DF位用來決定在串操作指令執行時有關指針寄存器發生調整的方向。
IF: 中斷允許標志IF位用來決定CPU是否響應CPU外部的可屏蔽中斷發出的中斷請求。但不管該標志為何值,CPU都必須響應CPU外部的不可屏蔽中斷所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定如下:
(1)、當IF=1時,CPU可以響應CPU外部的可屏蔽中斷發出的中斷請求;
(2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷發出的中斷請求。
TF: 狀態控制標志位是用來控制CPU操作的,它們要通過專門的指令才能使之發生改變
SF: 符號標志SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼表示法,所以,SF也就反映運算結果的正負號。運算結果為正數時,SF的值為0,否則其值為1。
ZF: 零標志ZF用來反映運算結果是否為0。如果運算結果為0,則其值為1,否則其值為0。在判斷運算結果是否為0時,可使用此標志位。
AF: 下列情況下,輔助進位標志AF的值被置為1,否則其值為0:
(1)、在字操作時,發生低位元組向高位元組進位或借位時;
(2)、在位元組操作時,發生低4位向高4位進位或借位時。
PF: 奇偶標志PF用於反映運算結果中「1」的個數的奇偶性。如果「1」的個數為偶數,則PF的值為1,否則其值為0。
CF: 進位標志CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麼,其值為1,否則其值為0。)
以上是8086寄存器的整體概況, 自80386開始,PC進入
32bit時代,其定址方式,寄存器大小, 功能等都發生了變化, 要想學習這方面知識請參考相應資料.
㈢ 計算機存儲器中的數據和指令怎樣區分
一般計算機先讀取存儲器最開始的內容(這一部分是指令),然後載入操作系統(先是LOADER)後由操作系統對硬碟文件系統結構(即是數據)以判斷其他數據和指令的位置
㈣ 指令和數據都存於存儲器中,計算機如何區分它們
計算機區分指令和數據有以下2種方法:
通過不同的時間段來區分指令和數據,即在取指令階段(或取指微程序)取出的為指令,在執行指令階段(或相應微程序)取出的即為數據。
通過地址來源區分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數。
㈤ cpu只能按指令在存儲器中的存儲順序來執行指令,這句話為什麼不對
2.完成一條指令的功能可以分成兩個主要階段:取指和執行。取指(Fetch)——從主存儲器中取出指令代碼進入CPU。 8086CPU中,指令在存儲器中的地址由代碼段寄存器CS
㈥ CPU存儲器的指令寄存器
32位CPU把指令指針擴展到32位,並記作EIP,EIP的低16位與先前CPU中的IP作用相同。
指令指針EIP、IP(Instruction Pointer)是存放下次將要執行的指令在代碼段的偏移量。用來提供指令在存儲器中的地址。在具有預取指令功能的系統中,下次要執行的指令通常已被預取到指令隊列中,除非發生轉移情況。所以,在理解它們的功能時,不考慮存在指令隊列的情況。
在實方式下,由於每個段的最大范圍為64K,所以,EIP中的高16位肯定都為0,此時,相當於只用其低16位的IP來反映程序中指令的執行次序。
㈦ 指令存儲器的作用
指令存儲器的作用是指令寄存器用於暫存當前正在執行的指令。指令寄存器的時鍾信號是clk,在clk的上升沿觸發。指令寄存器將數據匯流排送來的指令存入16位的寄存器中。
但並不是每次數據匯流排上的數據都需要寄存,因為數據匯流排上有時傳輸指令,有時傳輸數據。由CPU狀態控制器的Irena信號控制數據是否需要寄存。復位時,指令寄存器被清零。
指令寄存器功能
指令寄存器IR,InstructionRegister,用於暫存當前正在執行的指令。指令寄存器的時鍾信號是clk,在clk的上升沿觸發。
指令寄存器將數據匯流排送來的指令存入16位的寄存器中,但並不是每次數據匯流排上的數據都需要寄存,因為數據匯流排上有時傳輸指令,有時傳輸數據。由CPU狀態控制器的Irena信號控制數據是否需要寄存。復位時,指令寄存器被清零。
㈧ 指令和程序是以什麼形式存放在程序存儲器中
在存儲器中,數據和程序是以二進制形式存放的。計算機的程序和程序運行所需要的數據以二進制形式存放在計算機的存儲器中。
程序和數據存放在存儲器中,即「存儲程序」的概念。計算機執行程序時,無需人工干預,能自動、連續地執行程序,並得到預期的結果。
存儲器是計算機的記憶裝置,它的主要功能是存放程序和數據。程序是計算機操作的依據,數據是計算機操作的對象。
存儲容量的大小以位元組為單位來度量。經常使用KB(千位元組)、MB(兆位元組)、GB(千兆位元組)和TB來表示。它們之間的關系是:1KB=1024B=210B,1MB=1024KB=220B,1GB=1024MB=230B,1TB=1024G=240B。(1024 = 2^32)
(8)指令存儲器擴展閱讀
位(bit):是計算機存儲數據的最小單位。機器字中一個單獨的符號「0」或「1」被稱為一個二進制位,它可存放一位二進制數。
位元組(Byte,簡稱B):位元組是計算機存儲容量的度量單位,也是數據處理的基本單位,8個二進制位構成一個位元組。一個位元組的存儲空間稱為一個存儲單元。
根據存儲器與CPU聯系的密切程度可分為內存儲器(主存儲器)和外存儲器(輔助存儲器)兩大類。
現代計算機系統中廣泛應用半導體存儲器,從使用功能角度看,半導體存儲器可以分成兩大類:斷電後數據會丟失的易失性(Volatile)存儲器和斷電後數據不會丟失的非易失性(Non-volatile)存儲器。
微型計算機中的RAM屬於可隨機讀寫的易失性存儲器,而ROM屬於非易失性(Non-volatile)存儲器。
㈨ 單周期cpu設計verilog 指令存儲器怎麼寫
可以參考 《Verilog數字系統設計教程》夏宇聞 一書中的第17章,RSIC-CPU。
書中對怎麼設計指令,怎麼構造簡單CPU,有很詳細的解釋。
具體可以看 【17.3.2 指令寄存器】 一節, 代碼中的 register.v 文件。
附件是已經模擬好的代碼。
㈩ 指令和數據都存於存儲器中,計算機如何區分它們
計算機區分指令和數據有以下2種方法:
1、通過不同的時間段來區分指令和數據,即在取指令階段(或取指微程序)取出的為指令,在執行指令階段(或相應微程序)取出的即為數據。
2、通過地址來源區分,由PC提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的取出的是操作數。
存儲器中的每段存儲空間都會有一個地址,每個指令都包括一段操作數和一段空間地址,cpu會根據操作數去處理地址所指的數據。
一般計算機先讀取存儲器最開始的內容(這一部分是指令),然後載入操作系統(先是LOADER)後由操作系統對硬碟文件系統結構(即是數據)以判斷其他數據和指令的位置
(10)指令存儲器擴展閱讀:
構成存儲器的存儲介質,存儲元,它可存儲一個二進制代碼。由若干個存儲元組成一個存儲單元,然後再由許多存儲單元組成一個存儲器。一個存儲器包含許多存儲單元,每個存儲單元可存放一個位元組(按位元組編址)。
每個存儲單元的位置都有一個編號,即地址,一般用十六進製表示。一個存儲器中所有存儲單元可存放數據的總和稱為它的存儲容量。
假設一個存儲器的地址碼由20位二進制數(即5位十六進制數)組成,則可表示2的20次方,即1M個存儲單元地址。每個存儲單元存放一個位元組,則該存儲器的存儲容量為1MB。
動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。
使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。
當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。
當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。
由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。
PC/XT機中DRAM的刷新是利用DMA實現的。首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。
參考資料來源:網路-存儲器