導航:首頁 > 源碼編譯 > 計算機的編譯運行的操作

計算機的編譯運行的操作

發布時間:2022-05-11 09:05:56

1. 簡要說明計算機執行一條指令的基本操作。

通常一條指令對應著一種基本操作。一個計算機能執行什麼樣的指令,有多少條指令,這是由設計人員在設計計算機時決定的。計算機所能直接執行的全部指令,就是計算機的指令系統。

以二進制編碼表示的指令叫機器指令,它通常包括操作碼和操作數兩大部分,操作碼表示計算機執行什麼操作,操作數指明參加操作的數的本身或操作數所在的地址。

因為計算機只認識二進制數,所以計算機指令系統中的所有指令都必須以二進制編碼的形式來表示。

一般把計算機完成一條指令所花費的時間稱為一個指令周期,指令周期越短,指令執行越快。通常所說的CPU主頻或工作頻率,就反映了指令執行周期的長短。

(1)計算機的編譯運行的操作擴展閱讀:

按照馮·諾伊曼的存儲程序思想,利用計算機解題首先要把指揮計算機如何進行操作的指令序列(即程序)和原始數據通過輸入設備輸送到計算機內存儲器中,計算機運行時,依次從內存中取出一條條指令;

控制器對指令進行分析判斷,按照指令要求,發出不同的控制信號,在控制器的指揮下完成規定的操作,直到完成全部操作為止。計算機的工作原理可以概括為存儲程序和程序控制。

計算機在運行時,CPU從內存讀出一條指令到CPU內執行,指令執行完,再從內存讀出下一條指令到CPU內執行。CPU不斷地取指令、分析指令、執行指令,這就是程序的執行過程。

2. 電腦執行一條指令分什麼什麼什麼四個基本操作

分為:取指令,分析指令,執行指令,取下一條指令。指令的執行過程:首先是取指令和分析指令。按照程序規定的次序,從內存儲器取出當前執行的指令,並送到控制器的指令寄存器中,對所取的指令進行分析,即根據指令中的操作碼確定計算機應進行什麼操作。
其次是執行指令。根據指令分析結果,由控制器發出完成操作所需的一系列控制電位,以便指揮計算機有關部件完成這一操作,同時,還為取下一條指令作好准備。

3. 計算機系統的工作流程

用戶使用計算機系統算題的一般流程如圖2。
①通過系統操作員建立帳號,取得使用權。帳號既用於識別並保護用戶的文件(程序和數據),也用於系統自動統計用戶使用資源的情況(記帳,付款)。
②根據要解決的問題,研究演算法,選用合適的語言,編寫源程序,同時提供需處理的數據和有關控制信息。
③把②的結果在離線的專用設備上放入軟磁碟,建立用戶文件(也可在聯機終端上進行,直接在輔助存儲器中建立文件,此時第四步省去)。
④藉助軟盤機把軟盤上用戶文件輸入計算機,經加工處理,作為一個作業,登記並存入輔助存儲器。
⑤是要求編譯。操作系統把該作業調入主存儲器,並調用所選語言的編譯程序,進行編譯和連接(含所調用的子程序),產生機器可執行的目標程序,存入輔助存儲器。
⑥要求運算處理。操作系統把目標程序調入主存儲器,由中央處理器運算處理,結果再存入輔助存儲器。
⑦運算結果由操作系統按用戶要求的格式送外部設備輸出。
計算機內部工作(④~⑦)是在操作系統控制下的一個復雜過程。通常,一台計算機中有多個用戶作業同時輸入,它們由操作系統統一調度,交錯運行。但這種調度對用戶是透明的,一般用戶無需了解其內部細節。
用戶可用一台終端,互動式的控制③~⑦的進行(分時方式);也可委託操作員完成③~⑦,其中④~⑦是計算機自動進行的(批處理方式)。批處理方式的自動化程度高,但用戶不直觀,無中間干預。分時方式用戶直觀控制,可隨時干預糾錯,但自動化程度低。現代計算機系統大多提供兩種方式,由用戶選用。

4. c語言代碼從編寫到被計算機運行有幾步

三步。

  1. 指令提取:從程序中提取指令送到寄存器

  2. 指令分析:將指令寄存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。

  3. 指令執行:逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。

    看成單片機了。。。

5. c語言過程是怎麼樣在計算機上運行的

c語言編譯後會變成exe文件,由一條一條操作指令組成,啟動的時候cpu逐條運行。

6. 程序的編譯期,鏈接期, 運行期各執行哪些操作

參考一下:

源文件的編譯過程包含兩個主要階段,而它們之間的轉換是自動的。第一個階段是預處理階段,在正式的編譯階段之前進行。預處理階段將根據已放置在文件中的預處理指令來修改源文件的內容。#include指令就是一個預處理指令,它把頭文件的內容添加到.cpp文件中還有其他許多預處理指令
這個在編譯之前修改源文件的方式提供了很大的靈活性,以適應不同的計算機和操作系統環境的限制。一個環境需要的代碼跟另一個環境所需的代碼可能有所不同,因為可用的硬體或操作系統是不同的。在許多情況下,可以把用於不同環境的代碼放在同一個文件中,再在預處理階段修改代碼,使之適應當前的環境。
預處理器顯示為一個獨立的操作,但一般不能獨立於編譯器來執行這個操作。調用編譯器會自動執行預處理過程,之後才編譯代碼。
編譯器為給定源文件輸出的是機器碼,執行這個過程需要較長時間。在對象文件之間並沒有建立任何連接。對應於某個源文件的對象文件包含在其他源文件中定義的函數引用或其他指定項的引用,而這些函數或項仍沒有被解析。同樣,也沒有建立同庫函數的鏈接。實際上,這些函數的代碼並不是文件的一部分。這些工作是由鏈接程序(有時稱為鏈接編輯器)完成的
鏈接程序把所有對象文件中的機器碼組合在一起,並解析它們之間的交叉引用。它還集成了對象模塊所使用的庫函數的代碼。這是鏈接程序的一種簡化表示,因為這里假定在可執行模塊中,模塊之間的所有鏈接都是靜態建立的。實際上有些鏈接是動態的,即這些鏈接是在程序執行時建立的。

鏈接程序靜態地建立函數之間的鏈接,即在程序執行之前建立組成程序的源文件中所包含的函數鏈接。動態建立的函數之間的鏈接(在程序執行過程中建立的鏈接)將函數編譯並鏈接起來,創建另一種可執行模塊—— 動態鏈接庫或共享庫。動態鏈接庫中的函數鏈接是在程序調用函數時才建立的,在程序調用之前,該鏈接是不存在的。

動態鏈接庫有幾個重要的優點。一個主要的優點是動態鏈接庫中的函數可以在幾個並行執行的程序之間共享,這將節省相同函數佔用的內存空間。另一個優點是動態鏈接庫在調用其中的函數之前是不會載入到內存中的。也就是說,如果不使用給定動態鏈接庫中的函數,該動態鏈接庫就不會佔用內存空間

7. 計算機中的軟體在運行時,系統會將其先載入到哪裡

計算機正在運行的程序存放在RAM(內存)里。
RAM是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成後CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。
它的組成是:內存是由內存晶元、電路板、金手指等部分組成的。

計算機運行程序:整個過程可以總結為編譯、鏈接、裝載、執行。
1、編譯:編譯過程又可以被分為兩個階段:編譯、匯編。編譯是指編譯器讀取字元流的源程序,對其進行詞法與語法的分析,將高級語言指令轉換為功能等效的匯編代碼。匯編器是將匯編代碼轉變成機器可以執行的命令,每一個匯編語句幾乎都對應一條機器指令。
2、鏈接:鏈接的主要內容是將各個模塊之間相互引用的部分處理好,使得各個模塊之間能夠正確地銜接。
3、裝載:程序在經過鏈接後,得到了可執行文件,下一步就需要將可執行程序載入到內存中。由於現代操作系統均採用分頁的方式來管理內存,所以操作系統只需要讀取可執行文件的文件頭,之後建立起可執行文件到虛擬內存的映射關系,而不需要真正的將程序載入內存。
4、運行:載入器將可執行目標文件中的代碼和數據從磁碟復制到內存中,然後通過跳轉到程序的第一條指令或入口點來運行程序。

8. 怎樣在計算機上編程編好程序後怎樣放到計算機上使用

單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。

那程序到底是什麼呢?
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。

打個比方說,它好比指導你烹調菜品的菜譜或指揮行駛一路到達目的地的交警(或者交通路標)。沒有這些特殊的指令,就不能執行預期的任務。計算機也一樣,當你想讓計算機為你做一件事情的時候,計算機本身並不能主動為我們工作,因此我們必須對它下達指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什麼事情以及如何去做?甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存文件等等。
這么麻煩,連這些東西編程都要考慮!怪不得人家說編程好難!你錯了,其實許多這樣的指令都是現成的,包含在處理晶元中內置於操作系統中,因此我們不必擔心它們工作,他們都是由處理器和操作系統來完成的,並不需要我們來干預這些過程。

上面講到的計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。

我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。

寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
隨計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。

計算機所能識別的語言只有機器語言,即由構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。

目前通用的編程語言有兩種形式:匯編語言和高級語言。

匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。

匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。

高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。由於省略了很多細節,所以編程者也不需要具備太多的專業知識。

高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。

(1)解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。

(2)編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(*.OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
這個問題其實很簡單。前面我們講到,程序是人與計算機進行溝通的唯一方式,因此我們要讓計算機為我們服務,就必須有程序,而程序從哪裡來?當然是由我們編寫出來了。或許你又會問到另一個問題:現在要什麼程序有什麼程序,我幹嘛還要編程呢?這你就錯了,現在的程序雖然很多,需要什麼樣的程序直接到網上不需要很長時間就可以找到類似的,而且有可能就是你所需要的。但是,就好比去買衣服,雖然賣衣服的到處都是,但是哪一件是為你「量身定做」的呢!
程序還能夠做很多事情不同的程序可以完成不同的事情。從大的方面到管理國家的財務,小的方面管理家庭的帳務。

又如,如果你想要你的計算機能播放動畫,那麼你的計算機中也要有相應的動畫播放程序,下面所示的就是一個F1ssh動畫播放器。我們將會在後面的章節具體講述這個程序的編制過程。
隨著計算機的飛速發展,總會有那麼一天將不會編程的人列為「文盲」。你不希望吧?那麼就好好的學習一種程序設計語言吧。

編程會過時嗎

編程會過時嗎?這個問題,讓我先問你一個問題:計算機會消失嗎?這兩者答案是一樣的。知道了計算機會不會消失,就知道了編程會不會過時。

編程工具會過時,而編程卻不會過時

計算機系統由可以看見的硬倒:系統和看不見的軟體系統組成。要使計算機能夠正常的工作,僅僅有硬體系統是不行的,沒有軟倒系統(即沒有程序)的計算機可以說只是—堆廢鐵,什麼事情都幹不了。例如當你撰寫—篇文章的時候,你需要在操作系統中用文字編輯軟體來實現文字的輸入,但如果沒有這些文字輸入軟體的話,你是否想過如何向計算機中輸入文章呢?很難想像出如何在一個沒有任何軟體的計算機(我們稱之為裸機)上進行文字的輸入。而這些軟體其實就是通常我們所說的程序。

編程會過時嗎?我們從另一個角度來考慮這個問題,計算機有——天會消失嗎?如果有一天當世界上所有的事情處理都用不到計算機了,那麼計算機將會很快的消失,那時編程不僅過時了,而且也會隨之消失了。但是計算機會消失嗎?當然不會,如今計算機應用到每一領域,為人類的發展做出了不可估量的貢獻。試想一下如果有一天全世界的計算機突然消失了,那麼這個世界將變成什麼樣子,或許和全世界都停電了一樣恐怖,甚至還會有更大的損失。計算機的存在必須要有軟體系統來維持。因此編程永遠不會、也不可能會過時。

計算機程序設計語言發展到今天,已經從最原始的機器語言發展到如今可視化的集成開發環境,甚至集多種語言在同一開發平台上,像微軟的NET平台。回頭看看程序設計語言的發展史,不難看出對於編程來說,只會出現編程工具的過時,不會出現編程本身的過時。

不斷變化的技術需要不斷變化的程序員

從二十世紀60年代以後,計算機得到了突飛猛進的發展。似乎歷史上沒有任何一門科學的發展速度超過了計算機的發展,無論硬體、軟體、還是網路都以驚人的速度向前發展。計算機的硬體發展速度遵循「摩爾定律」每十八個月速度翻一倍(實際現在已超過了這個速度)。 軟體的發展速度和硬體一樣,二十世紀九十年代中國的軟體業還不是很成熟,而現在大大小小 的軟體企業四處聳立,共享軟體網上隨處可見。不斷發展的技術需要不斷變化的程序員,例如,如今Visual Basic可以快速構Windows下的應用程序,程序設計方面的技術不斷發展著,不斷引進新的概念、新的方法,如從結構化的C開始,當面向對象的思想被提出後,出現了C++,微軟在C++的基礎上為使用戶構建win32應用程序更加方便,推出了Visual C++。這也就需要程序員也要不斷的更新自己的技術。

計算機科學與別的學科很不一樣,不像語言學、歷史學那樣,幾乎是永久不變的東西。計算機科學要求不斷的更新自己的知識,否則很快就會被淘汰,即便是編程亦是如此。

編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。

隨著計算機軟體業的發展,誕生了「程序員」這個職位。於是便形成了一種理念,編寫程 序的人就是程序員,因此編程是程序員的事情。但程序員並不是一開始就是程序員,他們也是從現在我們的位置慢慢成為程序員的。

編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。

編程也可以作為——種愛好或興趣,如果你對它感興趣學起來就容易多了!因為如果對編程感興趣的話,就會多看些有關方面的書、多編些小程序上機實踐,這些對於學習編程的幫助是非常大的,而且隨著學習的進程不斷的推進就會覺得它並不是很困難,相反卻是很容易的。

總之,在學習編程時一定要堅持不懈,只要有信心、有毅力就一定能學好;不能因為一些似是而非的觀念就動搖了自己的信心。

我們一起來編程

面對擺在面前的計算機該如何操作,相信這個問題已經不再是困擾大家的首要問題了。現在軟體的種類那麼多,在選用的時候「電腦發燒友」的心裡是否也想過有一天自己能編寫一款屬於自己的軟體呢?想學習編程的朋友在選擇程序語言時會不會因為不知道如何選擇而大感頭痛呢?在不知如何下手的時候,朋友們的心中是不是會產生「我是不是可以編程」的思想呢?但是又有哪個程序員是不經過學習就能成功的呢!其實編寫程序並不是人們所想像的那麼困難、那麼復雜,每個有心致力於學習計算機的朋友都是可以嘗試的!

選擇適合自己的程序語言的必要性

目前常用的基本程序語言的種類比較繁多,比較簡單的有:Pascal、c語言、qBasic、 Fortran、Visual Basic等等。但前幾種都是在DOS下進行編程的工具,Visual Basic是在 Windows下進行應用程序設計的編程工具,現在一般的計算機用戶幾乎都不再使用DOS了,因此我們通常會選擇Visual Basic作為初學者的編程工具。Visual Basic是Windows應用程序設計中最容易上手的編程工具,學習步驟也比較容易被初學者接受。對於剛開始學習編程的初學者來說,還是選擇Visual Basic,學習編程語言不能想像著一步登天,一步一個腳印的學習才是最佳方法。

堅定自己學習編寫程序的信心

編寫程序並不是具有專業知識的人員才有的專利,每個學習計算機的人都可以編寫程序,每個人的靈感不同,在編寫程序的思路和作法上又有區別。但共同的想法就是編寫成功的程序。學習編程是一個漫長的過程,其中要付出艱辛的努力和汗水,不過成功者的喜悅又不是別人所能體會的。克服學習中的困難,努力去實踐,要有一個思想:別人能做到的事情自己也一定可以做到。計算機的普及讓更多的人有了學習的機會,也讓更多的人參與到編程人員的隊伍中來,每個人都有編程的權利,機遇給予每個人都是平等的。拿出自己必勝的信心,在編程的道路工勇於進取,相信成功就會在眼前。
三、我可以編程嗎
隨著計算機軟體業的發展,誕生了「程序員」這個職位。於是便形成了一種理念,編寫程 序的人就是程序員,因此編程是程序員的事情。但程序員並不是一開始就是程序員,他們也是從現在我們的位置慢慢成為程序員的。

編寫程序是一件很有趣的事情,因為編寫程序可以干很多高級的事情。例如我們在後面的章節中介紹如何使用Visual Basic編寫Flash動畫播放器,以及如何編寫下載軟體管理器等。如果你願意的話,你完全可以編寫出比這些更高級的程序來。

編程也可以作為——種愛好或興趣,如果你對它感興趣學起來就容易多了!因為如果對編程感興趣的話,就會多看些有關方面的書、多編些小程序上機實踐,這些對於學習編程的幫助是非常大的,而且隨著學習的進程不斷的推進就會覺得它並不是很困難,相反卻是很容易的。

總之,在學習編程時一定要堅持不懈,只要有信心、有毅力就一定能學好;不能因為一些似是而非的觀念就動搖了自己的信心。

四、我們一起來編程

面對擺在面前的計算機該如何操作,相信這個問題已經不再是困擾大家的首要問題了。現在軟體的種類那麼多,在選用的時候「電腦發燒友」的心裡是否也想過有一天自己能編寫一款屬於自己的軟體呢?想學習編程的朋友在選擇程序語言時會不會因為不知道如何選擇而大感頭痛呢?在不知如何下手的時候,朋友們的心中是不是會產生「我是不是可以編程」的思想呢?但是又有哪個程序員是不經過學習就能成功的呢!其實編寫程序並不是人們所想像的那麼困難、那麼復雜,每個有心致力於學習計算機的朋友都是可以嘗試的!

選擇適合自己的程序語言的必要性

目前常用的基本程序語言的種類比較繁多,比較簡單的有:Pascal、c語言、qBasic、 Fortran、Visual Basic等等。但前幾種都是在DOS下進行編程的工具,Visual Basic是在 Windows下進行應用程序設計的編程工具,現在一般的計算機用戶幾乎都不再使用DOS了,因此我們通常會選擇Visual Basic作為初學者的編程工具。Visual Basic是Windows應用程序設計中最容易上手的編程工具,學習步驟也比較容易被初學者接受。對於剛開始學習編程的初學者來說,還是選擇Visual Basic,學習編程語言不能想像著一步登天,一步一個腳印的學習才是最佳方法。

堅定自己學習編寫程序的信心

編寫程序並不是具有專業知識的人員才有的專利,每個學習計算機的人都可以編寫程序,每個人的靈感不同,在編寫程序的思路和作法上又有區別。但共同的想法就是編寫成功的程序。學習編程是一個漫長的過程,其中要付出艱辛的努力和汗水,不過成功者的喜悅又不是別人所能體會的。克服學習中的困難,努力去實踐,要有一個思想:別人能做到的事情自己也一定可以做到。計算機的普及讓更多的人有了學習的機會,也讓更多的人參與到編程人員的隊伍中來,每個人都有編程的權利,機遇給予每個人都是平等的。拿出自己必勝的信心,在編程的道路工勇於進取,相信成功就會在眼前。
一、計算機語言的發展過程

到目前為止,世界上公布的程序設計語言有上千種之多,常用的也有三十來種,為了有21於正確選擇和使用它們,下面我們做一個簡單介紹。

(1)匯編語言:

它是依賴於具體計算機的語言,用它編寫出的程序,執行效率高,但是只在一些特殊要求或特殊的場合才使用它。

(2)高級語言:

大家可能都聽過使用高級語言進行程序設計,但由於對其並不了解,所以總認為這些是很高深的東西。其實並非如此,學習了後面的章節,相信同學會產生編程原來不過如此。

但計算機是不懂得自然語言的(可以理解為高級語言),而高級語言設計出來的程序如何讓計算機去執行呢?其實很簡單,看了下圖後相信大家會明白許多。

現在我們就向大家介紹幾種常見的高級語言:

Fortran語言是科學和工程計算中使用的主要編程語言。目前國內使用版本多數是Fortran 66和Fortran77兩種。Fortran語言的主要缺點是不能直接支持結構化編程。

Cob0l語言是商業數據處理中廣泛使用的語言。由於它本身結構上的特點,使得它能有效的支持與商業處理有關的、范圍廣泛的過程技術。它的缺點是不簡潔。

Algol語言是所有結構化語言的先驅,具有豐富的過程和數據結構。但是,這種語言並沒有被廣泛採用,主要是由於它本身的歷史原因所造成的。

Basic語言是一種解釋執行的會話語言。由於它簡單易學的特點,它被廣泛應用在微型計算機系統中。

PL//1語言是一個用途廣泛的語言。能支持通常的科學工程和商業應用,能描述復雜的數據結構、多重任務處理、復雜的輸入輸出和表格處理等。

Pascal語言是70年代初期發展起來的結構化程序設計語言,具有特別豐富的數據結構類型。它自問世後,得到了眾人的贊賞,也得到了軟體開發者的廣泛支持。Pascal語言已用於科學、工程和系統程序設計中。我們教育部計算機專業教育會議曾把Pascal語言定為計算機專業程序設計語言。

★C語言是作為UNIX操作系統的主要使用語言。由於UNIX操作系統的成功,現在C語言也得到了廣泛的使用。C語言是有經驗的軟體工程師設計的,它具有很強的功能,以及高度的靈活性。它和其他的結構化語言一樣,能提供豐富的數據類型、廣泛使用的指針以及—組很豐富的計算和數據處理使用的運算符。

★C++語言是C語言的擴充。在1980年,貝爾實驗室的Bjarne Strotstrup博士及其同事開始對C語言進行改進和擴充,最初被稱為「帶類的C」,1983年才取名為C++。以及不斷完善和發展,成為目前的C++語言。一方面,它將C語言作為它的子集,使它能夠與C語言兼容。使許多C語言代碼不經修改就可以為C++語言所用以及用C語言編寫的眾多庫函數和和實用軟體可以直接用於C++語言中;另一方面。C++語言支持面向對象的程序設計這是它對C語言最重要的改進。

9. 計算機是怎麼運行的

引導過程 我們幾乎每天都要打開電源啟動機器,面對屏幕上出現的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,計算機在顯示這些啟動畫面時都做了些什麼工作呢? 打開計算機機電源後到計算機准備接受你發出的命令之間計算機所運行的過程稱為引導(Boot)過程。我們知道,當關閉電源後,RAM的數據將丟失,因此,計算機不是用RA來保持計算機的基本工作指令,而是使用另外的方法將操作系統文件載入到RAM中,再由操作系統接管對機器的控制。這是引導過程中的一個主要部分。總的說來,引導過程有下面幾個步驟: ① 加電––––打開電源開關,給主板和內部風扇供電。 ② 啟動引導程序––––CPU開始執行存儲在ROM BIOS中的指令。 ③ 開機自檢––––計算機對系統的主要部件進行診斷測試。 ④ 載入操作系統––––計算機將操作系統文件從磁碟讀到RAM中。 ⑤ 檢查配置文件,定製操作系統的運行環境––––讀取配置文件,根據用戶的設置對操作系統進行定製。 ⑥ 准備讀取命令和數據––––計算機等待用戶輸入命令和數據。 (一) 加電 引導過程的第一步就是通電。電扇開始運轉,電源指示燈應該變亮,否則說明系統電源供應有問題,或是主板等部件和機箱發生短路。 (二) 啟動引導程序 CPU是從內存地址FFFF0H處開始執行指令的,從前面的介紹可知,這個地址實際上在系統BIOS的地址范圍內,無論是哪家公司的 BIOS,放在這里的只是一條跳轉指令,跳到系統BIOS中真正的啟動代碼處。 (三) 開機自檢 系統BIOS的啟動代碼首先要做的事情就是進行POST(Power-On Self Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由於POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規內存),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤。正常情況下,POST過程進行得非常快。 POST結束之後,系統BIOS將查找顯卡的BIOS並調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形晶元類型等內容。系統BIOS接著會查找其他設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。 查找完所有其他設備的BIOS之後,系統BIOS將顯示出它自己的啟動畫面,其中包括系統BIOS的類型、序列號和版本號等內容。然後檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在屏幕上顯示內存測試的進度。 內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標准硬體設備,包括硬碟、CD-ROM、串口、並口、軟碟機等設備,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬碟參數和訪問模式等。 標准設備檢測完畢後,系統BIOS內部支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時為該設備分配中斷、DMA通道和I/O埠等資源。 經過上面幾步,所有硬體都已經檢測配置完畢,多數系統BIOS會重新清屏並在屏幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種標准硬體設備,以及它們使用的資源和一些相關工作參數。 接下來系統BIOS將根據CMOS配置更新ESCD(Extended System Configuration Data,擴展系統配置數據),ESCD是系統BIOS用來與操作系統交換硬體配置信息的一種手段。通常ESCD數據只在系統硬體配置發生改變後才會更新,所以不是每次啟動機器時我們都能夠看到「Update ESCD… Success」這樣的信息。 (四) 載入操作系統 在POST成功之後,系統BIOS的啟動代碼將進行它的最後一項工作,即根據用戶指定的啟動順序從軟盤、硬碟或光碟機啟動,定位並載入操作系統文件。首先計算機查找兩個操作系統文件:Io.sys和Msdos.sys。如果這兩個文件不存在,引導過程會顯示如下信息:「Non-system disk or disk error」或者「Invalid system disk」。 提示:如果設定的啟動順序是先軟盤後硬碟,出現上述提示時要檢查一下軟碟機中是否放的是系統盤(包含上述系統文件)。如果不是系統盤,可將軟盤取出,在按任意鍵後,計算機將從下一個驅動器(硬碟)查找系統文件。 然後,微處理器將試圖載入另外一個操作系統文件Command.com。如果載入失敗(Command.com文件不存在或版本不對),會出現故障信息:「Bad or missing command interpreter」,而且你發出的所有命令計算機都無法執行,因為Command.com是專門用來解釋這些命令的。 (五) 檢查配置文件並定製操作系統的運行環境 在引導過程初期,計算機通過檢查CMOS中的信息對硬體作初始化等工作。但具體到不同的操作系統中,計算機還需要更多的配置信息來正確使用所有的設備並創建個性化的運行環境。 我們以DOS和Windows兩種常用的PC操作系統為例,在DOS中我們常通過創建並編輯Autoexec.bat文件實現開機後自動執行某些命令,比如設置硬碟緩沖區大小、自動啟動漢字環境等;在另一個文件Config.sys中可以載入滑鼠、光碟機、音效卡等設備的DOS驅動程序等,使在DOS中可以使用這些設備。在Windows中對運行環境進行配置的方法更多,比如修改注冊表,編輯System.ini、Win.ini等系統配置文件,或將希望啟動完Windows後立即執行的內容放入Windows的啟動(Startup)組中。 (六) 准備接收命令和數據 當計算機准備好接收命令時就結束了引導過程。通常在引導結束後,計算機會顯示操作系統的屏幕或提示符。如果你使用的是Windows,那麼就會看到Windows的桌面;如果使用的是DOS,就會看到操作系統提示符(如C:\>;A:\>等)。 上面介紹的整個過程便是計算機在打開電源開關(或按Reset鍵)進行冷啟動時所要完成的引導工作。如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啟動計算機)來進行熱啟動,那麼POST過程將被跳過去,另外檢測CPU和內存測試也不會再進行。我們可以看到,無論是冷啟動還是熱啟動,系統BIOS都一次又一次地重復進行著這些我們平時並不太注意的事情,然而正是這些單調的步驟為我們能夠正常使用電腦提供了基礎。

10. 計算機程序的執行過程

執行程序的過程 :
開始執行程序時,必須先給程序計數器PC賦以第一條指令的首地址00H,然後就進入第一條指令的取令的取指令階段。

第一條指令的執行過程:
取指令階段:
①將程序計數器PC的內容(00H)送至地址寄存器AR,記為PC AR。
②程序計數器PC的內容自動加1變為01H,為取下一個指令位元組作準備,記為PC+1 PC。
③地址寄存器AR將00H通過地址匯流排送至存儲器,經地址解碼器解碼,選中00號單元,記為AR M。
④CPU發出"讀"命令。
⑤所選中的00號單元的內容B0H讀至數據匯流排DB,記為(00H) DB。
⑥經數據匯流排DB,將讀出的B0H送至數據寄存器,記為DB DR。
⑦數據寄存器DR將其內容送至指令寄存器IR,經過解碼,控制邏輯發出招待該條指令的一系列控制信號,記為DR IR,IR ID、PLA。經過解碼,CPU"識別"出這個操作碼就是MOV A,03指令,於是,它"通知"控制器發出執行這條指令的各種控制命令。

閱讀全文

與計算機的編譯運行的操作相關的資料

熱點內容
51單片機c語言應用程序設計實例精講 瀏覽:560
華為安卓手機編譯器 瀏覽:46
怎樣在打開微信前加密 瀏覽:664
旺旺聊天記錄怎麼加密 瀏覽:411
王安憶長恨歌pdf 瀏覽:619
mobile文件夾可以卸載嗎 瀏覽:280
什麼是2通道伺服器 瀏覽:346
mc正版怎麼開伺服器地址 瀏覽:408
樂高解壓朋友圈 瀏覽:14
linux軟raid性能 瀏覽:368
貼片機編程軟體下載 瀏覽:360
mooc大學樂學python答案 瀏覽:408
怎麼投訴途虎app 瀏覽:37
安卓重力感應怎麼關 瀏覽:720
我的世界ios怎麼建伺服器地址 瀏覽:759
伺服器埠ip都是什麼意思 瀏覽:263
華為主題軟體app怎麼下 瀏覽:840
我們的圖片能夠收藏加密嗎 瀏覽:979
mysql空值命令 瀏覽:213
python整點秒殺 瀏覽:885