通過機器碼程式理解馮諾依曼體系

2022-05-07 12:06:13 字數 2304 閱讀 4893

這篇文章的排版和內容都很糟糕,我會找個時間重寫他。

簡介現今所有的商用計算機都是基於馮諾依曼體系的計算機。

馮·諾依曼體系結構馮·諾依曼理論的要點是:計算機的數制採用二進位制;計算機應該按照程式順序執行。儲存程式原理,把程式本身當作資料來對待,程式和該程式處理的資料用同樣的方式儲存,二者地位是相等的。

通過機器碼程式理解 馮諾依曼 計算機

首先介紹 馮諾依曼週期

乙個馮諾依曼週期包含 5 個操作:

指令和暫存器

每種計算機都有自己的指令集,固化在cpu中。pep8有39條指令,這些指令分為兩類,由乙個位元組(8位二進位制)組成的 指令指示符,或者由乙個 指令指示符 和乙個由乙個字(兩個位元組)組成的 運算元指示符 組成。

pep8中包含不限於pc(程式指令計數器),sp(棧指標計數器),ir(24位指令暫存器(3位元組))等暫存器。

將要用到的指令:

0000

0000 停止執行

0100

1aaa 字元輸入

0101

0aaa 字元輸出

注(aaa表示乙個字段,a可為0或1,表示定址方式)

乙個字元輸出程式

位址         機器語言(bin)

---- -------

0000

0101

0001

0000

0000

0000

0111

0003

0101

0001

0000

0000

0000

1000

0006

0000

0000

0007

0100

1000

0008

0110

1001

位址 機器語言(hex)

---- --------

0000

510007

0003

510008

0006

000007

480008

69

輸出----

hi這兩段**是等價的,只不過是前者更利於計算機識別和讀取,後者利於人類,但是計算機最終是要儲存二進位制的序列,而非其他任何形式的結果。(注:位址為了便於表示使用四位十六進製制數表示)

分析程式

首先將上面**輸入pep8虛擬機器後,首先要做的是,裝載。即將每條指令(每行右側序列)裝載到左側序列標識的位址。如果裝載的指令是一元指令即 指令指示符 ,那麼他佔據乙個記憶體單元即乙個位元組。如果指令是乙個二元指令也即 運算元指示符 那麼他佔據三個記憶體單元,所以第一條指令被裝載到 0000、0001、 0002 所標識的記憶體。

當所有的指令裝載完成後,也就意味著乙個程式在記憶體中,並處於可執行狀態。注意一點,這個程式的指令在記憶體中是逐條緊鄰的。

執行程式

根據 馮諾依曼週期,程式是順序執行的,所以初始化程式指令計數器pc,

pc:

0000

cpu根據pc的值作為記憶體位址索引,找到該記憶體並將該記憶體的值(二進位制序列)複製,通過匯流排傳輸到cpu的指令暫存器ir中,

ir:mem[pc]

// 模擬 陣列索引值 a[i];

此時cpu解釋ir中的指令,指令:0101 0001 0000 0000 0000 0111

我們來解釋一下這個指令,首先這是乙個二元指令,所以前乙個位元組是指令指示符,後兩個位元組是運算元指示符。第乙個位元組 0101 0001 (原指令模式 0101 0aaa)代表以直接定址的方式輸出字元,後兩個位元組指示要輸出的字元的位址,可以看出,這塊位址就是之前我們裝載程式時 0007 這塊記憶體,而記憶體中的值正是 『h』 的ascii碼值 48 。到此我們可以看出,其實 程式 和 程式的資料 對於計算機來說沒有區別,都是儲存在記憶體中的二進位制數,計算機只單純的將他們作為二進位制數處理,而是作為 指令 被解釋還是作為 資料 被解釋是需要我們來定義。

接下來繼續程式的執行,當獲取到 運算元指示符 標識記憶體中的值後,將這個值傳送到輸出裝置,此時由輸出裝置負責將該二進位制數解釋為字元。

下一步,根據取出指令的長度進行pc的自增。重複上述過程,直到

pc:0006
索引值為指令

0000

0000 ;結束指令

程式結束。

馮諾依曼體系

馮諾依曼體系 將程式指令和資料一起設計的計算機設計概念結構 必須有乙個儲存器 必須有乙個控制器 運算器 輸入裝置 輸出裝置 馮諾伊曼瓶頸 儲存器的速度跟不上cpu的速度,指磁碟 記憶體 暫存器。程式翻譯與程式解釋 較為高階的計算機語言通過編譯器生成較為低階的計算機語言。1g 1024mb 10241...

馮諾依曼體系

1.馮 諾依曼體系結構 也是現代計算機的 硬體 體系結構,它包括五大硬體單元 a 輸入裝置 鍵盤 b 輸出裝置 顯示器 c 儲存器 記憶體 d 運算器 用於完成 算術運算 和 邏輯運算 e 控制器 其中 運算器 和 控制器 組成 處理器,也叫 cpu。2.計算機所具備的功能 a 把需要的程式和資料送...

馮諾依曼體系

馮諾依曼 john von neumann,1903.12.28 1957.02.08 美籍匈牙利數學家 計算機科學家 物理學家,是20世紀最重要的數學家之一。在現代計算機 博弈論 核 和生化 等領域均有貢獻,被後人稱之為 現代計算機之父 博弈論之父 馮諾依曼體系的要點是 數字計算機的數制採用二進位...