從程式設計到微指令
從學語言開始我就就覺得很神奇,
乙個機器怎麼能實現這麼多豐富的功能呢?
機器到底是怎麼設計出來的?
我想明白:從c++到機器的01**到底發生了什麼?硬體都做了什麼?
以前一直覺得這是很難的,我甚至為自己準備了好多學習計畫。
8086組合語言,微機原理,51微控制器,數字邏輯電路。
我想最少得把上面4本書完全弄通了,才能解決上面的問題吧。
但是最近學了jvm的原理,後又補充了點8086的知識,似乎就豁然開朗了。
無論什麼樣的軟體,什麼樣的程式。無外乎作如下三件事
1.輸入
2.處理
3.輸出
輸入輸出,無非就是資料,
處理的過程無非就是處理資料。
所以我做了乙個簡單的歸納:使用者關心的是資料,而電腦給我們加工資料。
電腦本質上就像乙個函式,我們給他一些資料,他給我們輸出一些資料。
那麼我們寫的程式機器到底是什麼執行的呢?
首先我們無論用什麼語言寫的程式都最終程式設計二進位制**,二進位制是啥呢?
先說說我們寫的函式程式設計了啥,實際上就是指標,有就是說程式設計電腦執行的乙個位置。
那我們寫的跳轉語句程式設計啥了呢,還是指標,指向程式跳轉的位置。
那麼電腦訪問到某個位置執行啥呢?
就是微指令,電腦也只能執行他是微指令。
到這來我把我們的程式怎麼比電腦執行的過程整理一下
寫程式編譯,連線,將程式程式設計01**。(這個過程就是把我們寫的任何語句對最終轉換成微指令)
執行,將我們的程式匯入記憶體。
cpu執行記憶體中的一條條指令,具體內容如下:
a.指令計數器會控制執行微指令的順序
b.遇到分支處理會根據資料狀態會有跳轉
c.幾乎沒一條指令的處理都會有資料的變化
d.在處理的過程中,也包括io系統對處理資料的讀取和表示
要點:
1.我們寫的程式最終會轉換成微指令
2.微指令就像函式一樣,不同的指令對資料進行不同成處理
3.我們看到豐富多型的輸入輸出(動畫,遊戲,計算…),都是資料的表現形式。
4.豐富的源泉在於微指令的設計和硬體對資料的表現力(多**等)
C語言程式設計,從菜鳥到高手
it行業,應屆畢業生不能順利地找到理想工作的原因在於,沒有程式設計的實戰經驗,即使是計算機科班出身的也會有相當的困惑!就是說,即使你不是計算機科班出身,通過自己的積極努力,照樣可以提高自己的程式設計技能,找到稱心如意的工作。成為高手,必須經歷的幾個歷程 一 研讀c語言程式設計教程,特別是經典教程 推...
從程式設計到工程
語言只是工具 我曾經是非常執著的開發人員。我有連續幾天幾夜coding 的經歷,也曾經為了乙個技術問題耗上三四個星期而導致專案一再延遲,還曾經為了乙個實現細節與專案相關的人員逐一爭論。我也曾經像大多數的開發人員一樣熱衷於爭論語言之間孰優孰劣。我在 delphi大富翁論壇 上寫過乙個簡介,其中個人特長...
從 Scratch 到程式設計
目前很多孩子在學 scratch 程式設計,但是覺得有些教育的方向有問題,大多數是在做遊戲設計,與演算法層面的培訓不多。實際上,作為一種兒童程式語言,當我第一次看到兒子用scratch,我就意識到這是乙個非常不錯的適合孩子用的程式語言。scratch的 控制 模組中包含的 迴圈重複執行 如果那麼條件...