程式在沒有執行之前是儲存在外存中的。程式被執行後,載入到記憶體中為機器語言程式,由cpu進行解析和執行,進而計算機系統整體的控制和資料運算也開始執行。
程式與cpu
程式是指令和資料的組合體。例如c語言「printf("hello");「,這個簡單的程式,printf是指令,"hello"是資料。
我們使用c語言等高階語言編寫的程式需要轉化為機器語言,cpu所負責的就是解釋和執行最終轉換成機器語言的程式內容。
cpu和記憶體是由許多電晶體組成的電子部件,通常稱為ic(積體電路)。從功能方面看,cpu的內部由暫存器、控制器、運算器和時鐘四個部分構,各部分之間的電流訊號相互連通。
暫存器暫存指令、資料等處理物件;
控制器負責把記憶體上的指令、資料等讀入暫存器,並且根據指令的執行結果來控制整個計算機;
運算器負責運算從記憶體讀入暫存器的資料;
時鐘負責發出cpu開始計時的時鐘訊號。
程式啟動後,根據時鐘訊號,控制器會從記憶體中讀取指令和資料。通過對這些指令加以解釋與執行,運算器會對資料進行運算,控制器根據執行結果來控制計算機。
因為機器語言級別的程式是通過暫存器來處理的,所以對於程式設計師來說,只需要知道」cpu是各種暫存器的集合體「。程式是把暫存器作為物件來描述的。
函式的呼叫機制
函式呼叫使用的是call指令,而不是跳轉指令。在將函式的入口位址設定到程式計數器之前,call指令會把呼叫函式後要執行的指令位址儲存在名為棧的主存內。函式處理完畢後,在通過函式的出口來執行return命令。return命令的功能是把儲存在棧中的位址設定在程式計數器中。
在程式執行中調整UITableViewCell高度
最近要實現下面的效果,就是在uitableview中有很多行資料,當使用者選擇某一行之後,將該行高度調整為原來2倍,其它行高度不變,改行後面的行往後順移.這個問題困擾了很久,想過調整uitableviewcell的frame,或則調整height,或則調整origin.y,在之間插入新檢視,但發現如...
程式是在何種環境中執行的
問題 應用的執行環境,指的是什麼?作業系統 硬體 macintosh用的作業系統macos,在at相容機上能執行嗎?無法執行,不同的硬體種類需要不同的作業系統 windows上的應用,在macos上能執行嗎?無法執行,應用是為了在特定作業系統上執行而作成的 freebsd提供的ports,指的是什麼...
HelloWorld 程式執行機制
1.隨便新建乙個資料夾,存放 新建乙個j a檔案檔案字尾名為.j a helloworld.j a 注意點 系統可能沒有顯示檔案字尾名,我們需要手動開啟3.編寫 public class helloworld 4.編譯j ac j a檔案,會生成乙個class檔案 5執行class檔案,j a cl...