計算機如何區分指令和資料

時間 2021-09-02 04:45:43

1樓:木木疋

其實這個很簡單的,通過不同的時間段來區分指令和資料,即在取指令階段(或取指微程式)取出的為指令,在執行指令階段(或相應微程式)取出的即為資料。如果通過位址**區分,由pc提供儲存單元位址的取出的是指令,由指令位址碼部分提供儲存單元位址的取出的是運算元。

拓展資料:

指令和資料都是應用上的概念。組合語言,通過編譯器編譯,最後送給cpu的都是二進位制數,那麼cpu在一堆紛繁複雜的二進位制,0110000110001中如何區分指令和資料呢?

我們還需要明白以下幾點:

每台機器的指令,其格式和**所代表的含義都是硬性規定的,故稱之為面向機器的語言,也稱為機器語言。二進位制,作為一種機器碼,計算機可以直接識別,不需要進行任何翻譯。

計算機硬體主要通過不同的時間段來區分指令和資料,即:取指週期(或取指微程式)取出的既為指令,執行週期計算機載入的第一條肯定是指令,然後根據這條指令去取二進位制數,如果這條指令要取運算元,那麼取出來的就是運算元;如果這條指令要取下一條指令,那麼取出來得就是指令。

把指令和資料分開放是為了安全和邏輯結構清晰。

雖然指令和資料存放的格式一樣,但是訪問他們的時機不同。在取指令時期,cpu通過指令流取指令,存放在指令暫存器, 然後解釋並執行指令;在執行指令時期,cpu通過資料流取資料, 存放在資料暫存器。 所以指令流取的是指令,資料流取的是資料。

2樓:清風雅悅

區分指令和資料的具體方法:

一、指令用來確定「做什麼」和「怎樣做」,資料是「做」的時候需要原始數。

二、計算機可以從時間和空間兩方面來區分指令和資料。在時間上,取指週期從記憶體中取出的是指令,而執行週期從記憶體取出或往記憶體中寫入的是資料;在空間上,從記憶體中取出指令送控制器,而執行週期從記憶體從取的資料送運算器、往記憶體寫入的資料也是來自於運算器。

比如:要計算機做1+2=?中,「+」表示要做什麼和怎樣做,1和2則是做的時候需要的原始數。

現在假設某cpu中,「+」用二進位制「00000001」來表示,「1、2」分別用「00000001、00000010」來表示。那麼,這段程式存入記憶體中就是這樣的:

***x1:00000001

***x2:00000001

***x3:00000010 前面的***x1 ***x2

***x3表示記憶體的位址

從上面可以看出,「+」指令和被加數是完全相同的,當然,這是我故意這樣假設的,但是,在實際情況中,這種情況是大量存在的。在正常情況下,cpu只能把***x1記憶體中的00000001作為指令,***x2記憶體中的00000001作為被加數才能得到正確的結果。那麼cpu如何才能做到不把第二個00000001也當成「+」呢?

1.人們把記憶體的某個位址規定為起始位址(又稱為復位位址),也就是說,當計算機開機或者被強行復位(也就是機箱上那個重啟動按鈕按下的的時候),cpu立即跳轉到這個位址中,並且把它裡面的**作為指令來執行,同時根據這個指令的長度和格式判斷下一條指令在什麼地方。

對於x86系列cpu(也就是現在人們常用的什麼奔xx、賽xx系列),它的復位位址是ffff0,如果表示成邏輯位址則是:ffff:0000。

對debug比較熟悉的朋友或者會在一些高階語言中嵌入組合語言的朋友可以這樣做乙個試驗:

用debug執行一條指令(這是一條無條件跳轉指令):jmp  ffff:0000,或者在高階語言中嵌入這條彙編指令,執行後,你就會發現,計算機重新啟動了。

其實,用程式控制計算機重啟的最本質的操作就是這樣的。

2.給各種指令規定了相應的長度和格式。比如:

某數+某數這條指令就規定:這條指令的長度是3個位元組,其中第乙個位元組表示「+」,後面兩個位元組表示被加數和加數。於是,當cpu到達這個指令後,就自動把第乙個**作為指令,後面兩個**作為資料,依次類推,第4個**就必然是指令.....

拓展資料:

一、計算機指令

計算機指令就是指揮機器工作的指示和命令,程式就是一系列按一定順序排列的指令,執行程式的過程就是計算機的工作過程。

原理:控制器靠指令指揮機器工作,人們用指令表達自己的意圖,並交給控制器執行。一台計算機所能執行的各種不同指令的全體,叫做計算機的指令系統,每一台計算機均有自己的特定的指令系統,其指令內容和格式有所不同。

通常一條指令包括兩方面的內容:操作碼和運算元,操作碼決定要完成的操作,運算元指參加運算的資料及其所在的單元位址。

在計算機中,操作要求和運算元位址都由二進位制數碼表示,分別稱作操作碼和位址碼,整條指令以二進位制編碼的形式存放在儲存器中。

指令的種類和多少與具體的機型有關,在此不詳述,請參見具體的機器資料手冊。

指令的順序執行,將完成程式的執行,因而有必要了解指令的執行過程。首先是取指令和分析指令。按照程式規定的次序,從記憶體儲器取出當前執行的指令,並送到控制器的指令暫存器中,對所取的指令進行分析,即根據指令中的操作碼確定計算機應進行什麼操作。

程式流程圖其次是執行指令。根據指令分析結果,由控制器發出完成操作所需的一系列控制電位,以便指揮計算機有關部件完成這一操作,同時,還為取下一條指令作好準備。

二、計算機資料

計算機資料表示是指處理機硬體能夠辨認並進行儲存、傳送和處理的資料表示方法。

處理機硬體能夠辨認並進行儲存、傳送和處理的資料表示方法。一台處理機的資料表示方法是處理機設計人員規定的,儘管資料的**和形式有所不同,但輸入這台處理機並經它處理的全部資料都必須符合規定。軟體設計人員還可以依此來規定各資料型別(如虛數、向量等)和組織複雜的資料結構(如記錄、文捲等)。

早期的機械式和繼電式計算機都用具有10個穩定狀態的基本元件來表示十進位制資料位0,1,2,…,9。乙個資料的各個資料位是按10的指數順序排列的,如386.45=3×10+8×10+6×10+4×10+5×10。

但是,要求處理機的基本電子元件具有10個穩定狀態比較困難,十進位制運算器邏輯線路也比較複雜。多數元件具有兩個穩定狀態,二進位制運算也比較簡單,而且能節省裝置,二進位制與處理機邏輯運算能協調一致,且便於用邏輯代數簡化處理機邏輯設計。因此,二進位制遂得到廣泛應用。

定點表示法 在二進位制中,0和 1分別由處理機電子元件的兩個穩定狀態表示, 2為數的基底。二進位制字元資料表示法用二進位制位序列組成供輸入、處理和輸出用的編碼稱為字元資料。字元資料報括各種運算符號、關係符號、貨幣符號、字母和數字等。

中國通用的是2023年頒布的國家標準 gb1988-80《資訊處理交換用的七位編碼字符集》(見表),它以7個二進位制位表示 128個字元。它包括32個控制字符集、94個圖形字符集、乙個間隔字元和乙個抹掉字元。

3樓:惰惰先森

計算機載入的第一條肯定是指令,然後根據這條指令去取二進位制數,如果這條指令要取運算元,那麼取出來的就是運算元;如果這條指令要取下一條指令,那麼取出來得就是指令。

把指令和資料分開放是為了安全和邏輯結構清晰。

隨便指令和資料存放的格式一樣,但是訪問他們的時機不同在取指令時期,cpu通過指令流取指令,存放在指令暫存器,然後解釋並執行指令,在執行指令時期,cpu通過資料流取資料,存放在資料暫存器。

所以指令流取的是指令,資料流取的是資料。

在計算機中cpu如何區分指令和資料

更上百層樓 在計算機中cpu通過運算器區分指令和資料,具體如下 1 算術邏輯單元 alu 算術邏輯單元是指能實現多組 算術運算與邏輯運算的組合邏輯電路,其是 處理中的重要組成部分。算術邏輯單元的運算主要是進行二位元算術運算,如加法 減法 乘法。在運算過程中,算術邏輯單元主要是以計算機指令集中執行算術...

計算機的指令系統是什麼,什麼是計算機的指令系統?機器指令通常有哪些型別?

月似當時 資料處理指令 包括算術運算指令 邏輯運算指令 移位指令 比較指令等。資料傳送指令 包括暫存器之間 暫存器與主儲存器之間的傳送指令等。程式控制指令 包括條件轉移指令 無條件轉移指令 轉子程式指令等。輸入 輸出指令 包括各種外圍裝置的讀 寫指令等。有的計算機將輸入 輸出指令包含在資料傳送指令類...

如何取消 保護我的計算機和資料不受未授權程式的活動影響

方法一 關閉資料保護,編輯boot.ini檔案,將 noexecute optin 改為 noexecute alwaysoff。要編輯boot.ini,請在開始中我的電腦上點右鍵 屬性 高階,啟動和故障恢復設定,編輯 即可!方法二 win xp sp2具備資料執行保護 dep 功能,要實現此功能,...