(對于PC端的開(kāi)發(fā)其平臺是各PC端的操作系統對于移動(dòng)端開(kāi)發(fā)其平臺是移動(dòng)端操作系統對于web端開(kāi)發(fā)其平臺是各類(lèi)型的瀏覽器)
你知道世界上第一臺通用計算機Eniac是怎樣用來(lái)完成不同的任務(wù)的嗎?通過(guò)插拔電纜和開(kāi)閉開(kāi)關(guān)完成硬布線(xiàn),往往幾個(gè)人還要忙上好一陣子。
這樣的硬布線(xiàn)過(guò)程可以自動(dòng)化、重復利用嗎?馮諾依曼(Von Neumann)提出了存儲程序控制的概念。
1 馮諾依曼提出的存儲程序控制概念
2 馮諾依曼機的組成
2.1 硬件組成
2.1.1 程序要運行,需要先將可執行文件從輸入設備(如磁盤(pán)),加載到內存,可執行文件執行時(shí),可將一些數據輸出到輸出設備。
2.1.2 程序和數據在存儲器的存儲:
2.1.3 控制器從存儲器中取出指令,譯碼后產(chǎn)生控制信號:
2.1.4 控制信號控制運算器做運算:

2.2 計算機軟件系統
計算機軟件系統通常被分為系統軟件和應用軟件兩大類(lèi)。計算機軟件包括程序、數據及相關(guān)的文檔資料。各軟件雖然用途不同,但他們的共同點(diǎn)是都存儲在計算機存儲器中,以某種格式編碼書(shū)寫(xiě)的程序或數據。
計算機系統軟件能保證計算機按照用戶(hù)的意愿正常運行,為滿(mǎn)足用戶(hù)使用計算機的各種需求,幫助用戶(hù)管理計算機和維護資源執行用戶(hù)命令、控制系統調度等任務(wù)。應用軟件是直接面向用戶(hù)需要的,它們可以直接幫助用戶(hù)提高工作質(zhì)量和效率,甚至可以幫助用戶(hù)解決某些難題。

系統軟件是指擔負控制和協(xié)調計算機及其外部設備、支持應用軟件的開(kāi)發(fā)和運行的一類(lèi)計算機軟件。系統軟件一般包括操作系統、語(yǔ)言處理程序、數據庫系統和網(wǎng)絡(luò )管理系統。
應用軟件是指為特定領(lǐng)域開(kāi)發(fā)、并為特定目的服務(wù)的一類(lèi)軟件。應用軟件一般分為兩類(lèi):
一類(lèi)是為特定需要開(kāi)發(fā)的實(shí)用型軟件,如會(huì )計核算軟件、工程預算軟件和教育輔助軟件等;
另一類(lèi)是為了方便用戶(hù)使用計算機而提供的一種工具軟件,如用于文字處理的Word、用于輔助設計的AutoCAD及用于系統維護的瑞星殺毒軟件等。
3 計算機的層次結構與編程語(yǔ)言
計算機系統可以從硬件到軟件抽象出不同的層次,每一個(gè)層次運行在各自的平臺(相鄰下一層)上:

需要注意的是,對于PC端的開(kāi)發(fā),其平臺是各PC端的操作系統,對于移動(dòng)端開(kāi)發(fā),其平臺是移動(dòng)端操作系統,對于web端開(kāi)發(fā),其平臺是各類(lèi)型的瀏覽器。
嵌入式編程是直接在硬件層面的編程,程序加載(固化)到可擦寫(xiě)ROM存儲器(掉電可讀),所謂的燒錄也是通過(guò)較高電壓硬性通過(guò)物理的方式改變存儲單元。隨著(zhù)硬件技術(shù)的發(fā)展,ROM與RAM的界限也已越來(lái)越模糊了。
4 計算機指令格式
計算機的設計(主要是CPU)可從指令集出發(fā),設計出對應的硬件邏輯層和微代碼層,指令集的指令格式一般可以表示為:

I 指令集與硬件邏輯層具有一一對應關(guān)系,根據一套需要設計的指令集設計出CPU(硬件邏輯層),或者說(shuō),一個(gè)CPU(硬件邏輯層)系列有對應的一個(gè)指令集。
II 在指令集的基礎上可以設計出不同的操作系統。
5 編碼與編程
指令和處理的對象都要二進(jìn)制化。
5.1 數據的編碼
5.1.1 數的編碼:包括負整數的補碼方案,浮點(diǎn)數的IEEE754方案;
5.1.2 字符編碼:ASCII、BG2312、Unicode等及Unicode的存儲方案utf;
5.1.3 聲音編碼:包括音波的采樣與量化;
5.1.4 圖像編碼:位圖的像素采樣與量化及矢量圖的數學(xué)公式表示;
5.2 指令集(指令編碼):指令集包括一套CPU可以完成的操作集合,每一條指令語(yǔ)句由操作碼和操作數(上述的數據編碼)組成(特殊指令語(yǔ)句可以沒(méi)有操作數),按指令格式編碼為1-6個(gè)字節的二進(jìn)制數序列;
5.3 機器語(yǔ)言與機器語(yǔ)言程序:機器語(yǔ)言就是符合上述指令格式編碼的語(yǔ)句集合,按指令格式編寫(xiě)二進(jìn)制序列組合便是機器語(yǔ)言程序;
5.4 匯編語(yǔ)言、匯編器、匯編程序,匯編語(yǔ)言建立與指令集的一一對應關(guān)系,按匯編語(yǔ)言編寫(xiě)匯編程序,由匯編器匯編為機器語(yǔ)言程序;

5.5 高級語(yǔ)言、編譯器或解釋器、高級語(yǔ)言程序:高級語(yǔ)言建立語(yǔ)法規則建立與匯編語(yǔ)言或機器語(yǔ)言的對應程序。由高級語(yǔ)言編寫(xiě)的高級語(yǔ)言程序由編譯器編譯或解釋器解釋為機器語(yǔ)言,由CPU執行。
5.5.1 編譯、解釋
不同的平臺(層次)、不同的領(lǐng)域,有不同的編程語(yǔ)言,當然也有不同的編譯器,都是多對多的關(guān)系。當然,相同的一份代碼,如果有不同操作系統的編譯器的話(huà),也可以編譯為用于不同平臺(操作系統)的可執行文件。
另外,即使相同的平臺,相同的源代碼,IDE環(huán)境的工程選項中,還可以選擇不同的編譯選項,如Debug、Release版就是不同的編譯選項的組合。
5.5.2 連接
對于大型程序來(lái)說(shuō),需要包含多個(gè)源程序文件,加上庫文件,這些文件需要連接到一起,形成一個(gè)整體的可執行文件。
6 C的hello.c程序的機器語(yǔ)言、匯編語(yǔ)言
C語(yǔ)言也稱(chēng)為中級語(yǔ)言,除了可 直接操作內存外,還在于其沒(méi)有中間層,與匯編、機器語(yǔ)句有較清晰的對應關(guān)系。

7 hello.c程序在硬件中的執行流程
7.1 程序由硬盤(pán)加載到內存

7.2 cpu執行程序及輸出

-End-
(對于PC端的開(kāi)發(fā)其平臺是各PC端的操作系統對于移動(dòng)端開(kāi)發(fā)其平臺是移動(dòng)端操作系統對于web端開(kāi)發(fā)其平臺是各類(lèi)型的瀏覽器)
聯(lián)系客服