日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机是怎么RUN起来的

發(fā)布時(shí)間:2024/7/23 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机是怎么RUN起来的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.實(shí)際上計(jì)算機(jī)只會實(shí)現(xiàn)輸入、運(yùn)算、輸出?

這三大模塊缺一不可,缺少輸入意味著沒有用戶能使用,缺少運(yùn)算相當(dāng)于一條電線毫無意義,缺少輸出相當(dāng)于一直堆積信息的垃圾箱

因此計(jì)算機(jī)的硬件是由大量的IC(Integrated Circuit 集成電路)組成,每塊IC上都帶有很多引腳,相當(dāng)于電線,這些引腳都是服務(wù)于輸入輸出,運(yùn)算可能有點(diǎn)難理解,但簡單來時(shí)在IC里面實(shí)際上變化的是電流變化(具體的變化慢慢了解),人類的對電流的定義,就是數(shù)字,而且只有兩個(gè)數(shù)字0和1,這樣看來計(jì)算機(jī)其實(shí)有點(diǎn)笨,但是怎么能變化出萬種功能呢?

2.程序是指令和數(shù)據(jù)的集合,無論哪個(gè)程序,內(nèi)容都是數(shù)值的羅列,每個(gè)數(shù)值要么是指令要么是數(shù)據(jù)。

一組指令操作一段數(shù)據(jù),形成最基本的程序

這一組指令統(tǒng)一推薦描述的文字是“函數(shù)”

一段數(shù)據(jù)我們可以分為兩類,一類是輸入的數(shù)據(jù),一類是輸出的數(shù)據(jù)

在編程的時(shí)候數(shù)據(jù)可以賦予名字為“變量”

y=f(x)

3.計(jì)算機(jī)的處理方式有時(shí)候與人類的思維習(xí)慣不同

當(dāng)人描述顏色的時(shí)候會形成畫面 紅色藍(lán)色綠色

當(dāng)計(jì)算機(jī)描述顏色的時(shí)候會形成顏色的數(shù)字信息 例如“255,0,0”表示紅色?

4.計(jì)算機(jī)在一直進(jìn)化

計(jì)算機(jī)的思維方式一直在改變且趨向于人類的思考方式,大家應(yīng)該由衷地歡迎技術(shù)的進(jìn)化,沒有人會稀罕一成不變的好代碼

編程方法也一直在進(jìn)化一種是組件編程(將程序的零部件組裝到一起完成程序),一種是面向?qū)ο缶幊?#xff08;先對你腦海中的東西建模,例如建一個(gè)車的模型,然后再對模型進(jìn)行私人訂制,稱為你創(chuàng)造的獨(dú)一無二的瑪莎拉蒂)

5.計(jì)算機(jī)內(nèi)部主要是IC的元件組成

只需記住三種:

CPU(中央進(jìn)程處理器):可以對數(shù)據(jù)執(zhí)行運(yùn)算并控制內(nèi)存和I/O

內(nèi)存(CPU內(nèi)的數(shù)據(jù)寄存器):看看你電腦是多少位的,32位64位86位,是由寄存器的容量和傳輸進(jìn)CPU的數(shù)據(jù)總線的條數(shù)共同決定,前者相當(dāng)于水龍頭,后者相當(dāng)于水管,水管是32位的,水龍頭也必須是32位的

I/O(Input/Output):接受用戶設(shè)備的輸入輸出

?除了以上,還需要若干輔助元件

晶振(是時(shí)鐘發(fā)生器的主要部件):晶體振蕩器,由于晶體有壓電效應(yīng),當(dāng)在晶片的兩面上加交變電壓時(shí),晶片會反復(fù)的機(jī)械變形而產(chǎn)生振動,而這種機(jī)械振動又會反過來產(chǎn)生交變電壓,晶振產(chǎn)生振蕩必須附加外部時(shí)鐘電路,一般是一個(gè)放大反饋電路,只有一片晶振是不能實(shí)現(xiàn)震蕩的.晶振為了輔助CPU的運(yùn)轉(zhuǎn)速度,會根據(jù)自身通電后振動的頻率產(chǎn)生時(shí)鐘信號頻率用來衡量CPU的運(yùn)轉(zhuǎn)速度

IC的引腳:所謂的引腳就是IC邊緣裸露出的像腿一樣的部分,按照逆時(shí)針方向依次帶有一個(gè)從1開始遞增的序號

6. 比特是作為信息的收發(fā)單位

通常將1個(gè)二進(jìn)制數(shù)稱為1比特。將8個(gè)二進(jìn)制數(shù)稱為1字節(jié)

比特是信息的最小單位,字節(jié)是信息的基本單位

例如32位的計(jì)算機(jī)就是一32比特為一個(gè)單位收發(fā)信息的

7. 連接電源、地址總線和數(shù)據(jù)總線:

首先連接電源

為了指定輸入輸出數(shù)據(jù)時(shí)的源頭或目的地(存取數(shù)據(jù)的地址),CPU上備有“地址總線引腳”,例如引腳有16個(gè),用代號A0~A15表示,其中A表示Address(地址),后面的0~15表示一個(gè)16位二進(jìn)制數(shù)中各數(shù)字的位置,0對應(yīng)最后一位,15對應(yīng)第一位,用而二進(jìn)制表示就是0000000000000000~1111111111111111,所能提供的65536個(gè)數(shù)據(jù)存取單元(內(nèi)存存儲單元或者I/O地址),進(jìn)行信息的輸入輸出。

一旦指定了存取數(shù)據(jù)的地址,就可以使用“數(shù)據(jù)總線引腳”進(jìn)行數(shù)據(jù)的輸入輸出了,數(shù)據(jù)總線引腳和地址總線引腳類似,用代號D0~D15表示。

8.連接I/O:

下面開始連接I/O,大家知道寄存器這個(gè)詞嗎?寄存器是位于CPU和I/O中的“數(shù)據(jù)存儲器”,速度很快,和CPU直接交互,假設(shè)一個(gè)并行PIO設(shè)備上有4個(gè)寄存器,2個(gè)是用于PIO本身的功能,2個(gè)是用于存儲與外部設(shè)備進(jìn)行輸入輸出的數(shù)據(jù)

?

9.連接時(shí)鐘信號:

將CPU的CLK(Clock時(shí)鐘)引腳、PIO的CLK引腳分別與時(shí)鐘發(fā)生器的引腳相連,在時(shí)鐘發(fā)生器的作用下,它們隨著滴答滴答的時(shí)鐘同步做動作,然后連上其它的引腳(這里簡單帶過)

10.CPU工作原理:

CPU 在時(shí)鐘信號的控制下解釋、執(zhí)行內(nèi)存中存儲的程序,按照程序中的指令從內(nèi)存或 I/O 中把數(shù)據(jù)輸入到 CPU 中,在 CPU 內(nèi)部進(jìn)行運(yùn)算,再把運(yùn)算結(jié)果輸出到內(nèi)存或 I/O 中

?

11.機(jī)器語言和匯編語言

機(jī)器語言就是0和1的各種組合,不同種類的CPU對各種組合的解析也不同,例如man有的人理解為“男人”,有的人理解為“慢”

匯編語言就是把操作碼(指令)和操作數(shù)(指令的對象)并排寫在一行上,僅此而已?

標(biāo)簽的作用是為該行代碼對應(yīng)的內(nèi)存地址起一個(gè)名字。

編程時(shí)如果總要考慮“這一行的內(nèi)存地址是什么來著?”就會很不方便,所以在匯編語言中用標(biāo)簽來代替地址。用匯編語言編程時(shí)可以在任何需要標(biāo)簽的地方“貼上”名稱任意的標(biāo)簽,如圖,使用了名稱“LOOP:”的標(biāo)簽

操作碼就是助記符,用來告訴計(jì)算機(jī)“做什么”的指令,匯編語言中提供多少種助記符,CPU就有多少種功能?

操作數(shù)就是指令執(zhí)行的對象

?

匯編語言和英語的祈使句很像,可以看成是英語的祈使句中開頭放置了一個(gè)表示“做什么”的動詞,?動詞后面放一個(gè)賓語表示“作用到什么上”動詞就相當(dāng)于操作碼,賓語就相當(dāng)于操作數(shù),程序的作用是向CPU發(fā)出指令。

?

12.寄存器的結(jié)構(gòu):

I/O寄存器只能作為臨時(shí)存放周邊設(shè)備進(jìn)行輸入輸出的數(shù)據(jù)

CPU的的寄存器不僅能存儲數(shù)據(jù),還具備對數(shù)據(jù)進(jìn)行運(yùn)算的能力

舉個(gè)栗子:以下是Z80的CPU所帶有的寄存器ABCD等字母是寄存器的名字

舉例來說:

A 寄存器也叫作“累加器”,是運(yùn)算的核心。所以連接 到它上面的導(dǎo)線也一定會比其他寄存器的多。

F 寄存器也叫作“標(biāo)志寄存器”,用于存儲運(yùn)算結(jié)果的狀態(tài),比如是否發(fā)生了進(jìn)位,數(shù)字大小的比較結(jié)果等。

PC 寄存器也叫作“程序指針”,存儲著指向 CPU 接下來要執(zhí)行的指令的地址。

PC 寄存器的值會隨著滴答滴答的時(shí)鐘信號自動更新,可以說程序就是依靠不斷變化的 PC 寄存器的值運(yùn)行起來的。

SP 寄存器也叫作“棧頂指針”,用于在內(nèi)存中創(chuàng)建出一塊稱為“棧”的臨時(shí)數(shù)據(jù)存儲區(qū)域

?

CPU 中有各種各樣的各司其職的寄存器。其中有一個(gè)被稱為 PC (Program Counter,程序計(jì)數(shù)器)的寄存器,負(fù)責(zé)存儲內(nèi)存地址,該地 址指向下一條即將執(zhí)行的指令。每解釋執(zhí)行完一條指令,PC 寄存器的 值就會自動被更新為下一條指令的地址。

?

13.程序像河水一樣流動著:

順序執(zhí)行是按照指令記錄在內(nèi)存中的先后順序依 次執(zhí)行的一種流程。而循環(huán)則是在程序的特定范圍內(nèi)反復(fù)執(zhí)行若干次 的一種流程。條件分支是根據(jù)若干個(gè)條件的成立與否,在程序的流程 中產(chǎn)生若干個(gè)分支的一種流程。無論規(guī)模多么大多么復(fù)雜的程序,都 是通過把以上三種流程組合起來實(shí)現(xiàn)的

?

程序的三種流程正像是河流本身。從高山的泉眼中涌出的清泉形 成了河流的源頭(程序執(zhí)行的起點(diǎn))。水流從山中緩緩流下,有時(shí)向著 63 4.1 程序的流程分為三種 一個(gè)方向流淌(順序執(zhí)行),有時(shí)中途分出了支流(條件分支),還有時(shí) 由于地勢卷起了漩渦(循環(huán))

這就意味著我們專業(yè)的程序員在編寫程序之前,會通過畫流程圖來思考程序的流程?

下面是剪刀石頭布的程序流程圖

思考算法時(shí)的要點(diǎn)是要分兩步走,先從整體上考慮程序的粗略流 程,再考慮程序各個(gè)部分細(xì)節(jié)的流程

用戶是怎樣使用程序的呢?首先,用戶啟動了程序(程序 執(zhí)行初始化處理)。接下來用戶根據(jù)自己的需求操作程序(程序進(jìn)入循 環(huán)處理階段)。最后用戶關(guān)閉了程序(程序執(zhí)行收尾處理)。這樣的使用 方法就可以直接作為程序的整體流程。

特殊的程序流程——中斷處理:

中斷處理是指計(jì)算機(jī)使程序的流程突然跳轉(zhuǎn)到程序中的特定地方, 這 樣 的 地 方 被 稱 為 中 斷 處 理 例 程(Routine)或 是 中 斷 處 理 程 序 (Handler),而這種跳轉(zhuǎn)是通過 CPU 所具備的硬件功能實(shí)現(xiàn)的

在CPU中有特定的中斷引腳,可以接受從I/O設(shè)備發(fā)出的中斷請求信號,中斷處理以從硬件發(fā)出的請求為條件,使程序的流程產(chǎn)生分支, 因此可以說它是一種特殊的條件分支

編寫的程序中并不需要編寫有關(guān)中斷處理的代碼。

因?yàn)樘幚碇袛嗾埱蟮某绦?#xff0c;或是內(nèi)置于被燒錄在計(jì)算機(jī) ROM 中的 BIOS 系統(tǒng)(Basic Input Output System, 基本輸入輸出系統(tǒng))中,或是內(nèi)置于 Windows 等操作系統(tǒng)中。只需要先記住以下兩點(diǎn)即可:計(jì)算機(jī)具有硬件上處理中斷的能力;中斷一詞的英文是 Interrupt。

?

特殊的程序流程——事件驅(qū)動

程序員們經(jīng)常用事件驅(qū)動的方式編寫那些工作在 GUI(Graphical User Inteface,圖形用戶界面)環(huán)境中的應(yīng)用程序

通常把用戶在應(yīng)用程序中點(diǎn)擊鼠標(biāo)或者敲擊鍵盤這樣的操作稱作 “事件”(Event)。負(fù)責(zé)檢測事件的是 Windows。Windows 通過調(diào)用應(yīng) 用程序的 WndProc() 函數(shù)通知應(yīng)用程序事件的發(fā)生。而應(yīng)用程序則根 據(jù)事件的類型做出相應(yīng)的處理。這種機(jī)制就是事件驅(qū)動??梢哉f事件 驅(qū)動也是一種特殊的條件分支,它以從 Windows 送來的通知為條件, 根據(jù)通知的內(nèi)容決定程序下一步的流程

事件驅(qū)動的“狀態(tài)轉(zhuǎn)化圖”

的計(jì)算器應(yīng)用程序就可以看作包含三個(gè) 狀態(tài):“顯示計(jì)算結(jié)果”“顯示第一個(gè)輸入的數(shù)”以及“顯示第二個(gè)輸入的 數(shù)”。隨著用戶按下不同種類的按鍵,狀態(tài)也會發(fā)生轉(zhuǎn)變。在狀態(tài)轉(zhuǎn)化圖 中,在矩形中寫上狀態(tài)的名稱,用箭頭表示狀態(tài)轉(zhuǎn)化的方向,并且在箭 頭上標(biāo)注引起狀態(tài)轉(zhuǎn)化的原因(事件)

程序的流程還是只有順序執(zhí)行、條件分支和循環(huán)這三種,這 一點(diǎn)是沒有改變的。

其中的順序執(zhí)行是最基本的程序流程,這是因?yàn)?CPU 中的 PC 寄存器的值會自動更新。條件分支和循環(huán),在高級語言 中用程序塊表示,在機(jī)器語言和匯編語言中用跳轉(zhuǎn)指令表示,在硬件 上是通過把 PC 寄存器的值設(shè)為要跳轉(zhuǎn)到的目的地的內(nèi)存地址來實(shí)現(xiàn)

?

未完,看書

總結(jié)

以上是生活随笔為你收集整理的计算机是怎么RUN起来的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。