计算机基础原理知识,计算机基础知识之计算机的工作原理
1.3?計算機的工作原理
到目前為止,微機的工作原理均采用馮.若依曼的存儲程序方式,即把程序存儲在微機內,由微機自動存取指令并執行它。微機的工作過程就是執行程序的過程,而程序由指令序列組成,因此,執行程序的過程,就是執行指令序列的過程,即逐條地執行指令;由于執行每一條指令,都包括取指令與執行指令兩個基本階段,所以,微機的工作過程,也就是不斷地取指令和執行指令的過程。微機執行程序過程示意圖如下圖所示。
假定程序已由輸入設備存放到內存中。當計算機要從停機狀態進入運行狀態時,首先應把第一條指令所在的地址賦給程序計數器PC,然后機器就進入取指階段。在取指階段,CPU從內存中讀出的內容必為指令,于是,數據寄存器DR便把它送至指令寄存器IR;然后由指令譯碼器譯碼,控制器就發出相應的控制信號。CPU便知道該條指令要執行什么操作。在取指階段結束后,機器就進入執指階段,這時,CPU執行指令所規定的具體操作。當一條指令執行完畢以后,就轉入了下一條指令的取指階段。這樣周而復始地循環一直進行到程序中遇到暫停指令時方才結束。
取指階段都是由一系列相同的操作組成的,所以,取指階段的時間總是相同的,它稱為公操作。而執指階段將由不同的事件順序組成,它取決于被執行指令的類型,因此,執指階段的時間從一條指令到下一條指令變化相當大。
應當指出的是,指令通常包括操作碼(operationcode)和操作數(operand)兩大部分。操作碼表示計算機執行什么具體操作,而操作數表示參加操作的數的本身或操作數所在的地址,也稱之為地址碼。在8位機中,由于一個存儲單元只能存放一個字節,而指令根據其所含內容不同而有單字節、雙字節、三字節乃至最多四字節之分,因此,在執行一條指令時,就可能要處理1—4個不等字節數目的代碼信息,包括操作碼、操作數或操作數的地址。
為了進——步說明微機的工作過程.我們來具體討論一個模型機怎樣執行一段簡單的程序。例如,計算機如何具體計算3十2=?雖然這是一個相當簡單的加法運算,但是,計算機卻無法理解。人們必須要先編寫一段程序,以計算機能夠理解的語言告訴它如何一步一步地去做,直到每一個細節都詳盡無誤,計算機才能正確地理解與執行。
在編寫程序之前,必須首先查問所使用的微處理器的指令表(或指令系統),它是某種微處理器所能執行的全部操作命令匯總。不同系列的微處理器各自具有不同的指令表。假定查到模型機的指令友中可以用三條指令求解這個問題:表1示出了這三條指令及其說明。
表中第—列為指令的名稱。編寫程序時,寫指令的全名是不方便的,因此,人們給每條指令規定了—個縮寫詞,或稱作助記符。第二列即助記符。第三列為機器碼,機器碼用二進制和十六進制兩種形式表示,計算機和程序員用它來表示指令。最后一列,確切地說明了執行一條指令時所完成的具體操作。
表1 模型機指令表
名稱
助記符
機器碼
說明
立即數取入累加器
LD A,n
00111110?n
3E?n
這是一條雙字節指令,把指令第二字節的立即數n取入累加器A中
加立即數
ADD A,n
11000110?n
C6?n
這是一條雙字節指令,把指令第二字節的立即數n與A中的內容相加,結果暫存A
暫停
HALT
01110110
76
停止所有操作
現在我們來編寫3十2=?的程序。根據指令表提供的指令,用助記符形式和十進制數表示的加法運算的程序可表達為二制數
LD A,3
ADD A,2
HALT
但是,模型機卻并不認識助記符和十進制數,而只認識用二進制數表示的操作碼和操作數。因此,必須按二進制數的形式來寫程序,即用對應的操作碼代替每個助記符,用相應的二進制數代替每個十進制效。
LD
A,3?變成?0011
1110;操作碼(LD A,n)
0000 0011;操作數(3)
ADD A,2
變成?1100 0110;操作碼(ADD A,n)
0000 0010;操作數(2)
HALT?變成?0111 0110;操作碼(HALT)
總結
以上是生活随笔為你收集整理的计算机基础原理知识,计算机基础知识之计算机的工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html随页面移动固定,div设置了po
- 下一篇: 图片竖轮播html,JS实现纵向轮播图(