當前位置:首頁 » 打標機器 » 怎麼理解機器語言

怎麼理解機器語言

發布時間: 2021-01-27 18:00:56

A. 機器語言是如何在計算機內部被執行的呢

你該看看這個:

一、引言
在計算機科學中,編程語言是用來編寫可被計算機運行的一系列指令(計算機程序)的人工語言。與英語等自然語言相類似,編程語言具有詞彙、語法和句法。然而,自然語言不適合計算機編程,因為它們能引起歧義,也就是說它們的詞彙和語法結構可以用多種方式進行解釋。用於計算編程的語言必須具有簡單的邏輯結構,而且它們的語法、拼寫和標點符號的規則必須精確。
編程語言在復雜性和通用程度上大相徑庭。有些編程語言是為了處理特定類型的計算問題或為了用於特定型號的計算機系統而編寫的。例如,FORTRAN和COBOL等編程語言是為解決某些普遍的編程問題類型而編寫的——FORTRAN為了科學領域的應用,而COBOL為了商業領域的應用。盡管這些語言旨在處理特定類型的計算機問題,但是它們具有很高的可移植性,也就是說它們可以用來為多種類型的計算機編程。其他的語言,譬如機器語言,是為一種特定型號的計算機系統,甚至是一台特定的計算機,在某些研究領域使用而編寫的。最常用的編程語言具有很高的可移植性,可以用於有效地解決不同類型的計算問題。像C、PASCAL和BASIC這樣的語言就屬於這一范疇。
二、語言類型
編程語言可劃分為低級語言和高級語言。低級編程語言或機器語言,是編程語言中最基礎的類型,能被計算機直接理解。機器語言的區別取決於製造商和計算機的型號。高級語言是在計算機能夠理解和處理之前必須首先翻譯成機器語言的編程語言。C、C++、PASCAL和FORTRAN都是高級語言的例子。匯編語言是中級語言,非常接近於機器語言,沒有其他高級語言所表現出的語言復雜程度,但仍然得翻譯成機器語言。
1、機器語言
在機器語言中,指令被寫成計算機能夠直接理解的被稱之為比特的1和0的序列。機器語言中的一條指令通常告訴計算機4件事情:(1)到計算機主存儲器(隨機訪問存儲器)的哪個位置去找一或兩個數字或者簡單的數據段;(2)要執行的一個簡單操作,例如將兩個數字加起來;(3)將這個簡單操作的結果存放在主存儲器的什麼位置;以及(4)到哪裡找要執行的下一條指令。雖然所有的可執行程序最終都是以機器語言的形式被計算機讀取,但是它們並非都是用機器語言編寫的。直接用機器語言編程極端困難,因為指令是1和0的序列。機器語言中的一條典型的指令可能是10010 1100 1011,意思是將存儲寄存器A的內容加到存儲寄存器B的內容中。
2、高級語言
高級語言是利用人類語言中的詞和句法的一套相對復雜的語句。它們比匯編語言和機器語言更類似於正常的人類語言,因此用來編寫復雜的程序更容易。這些編程語言允許更快地開發更龐大和更復雜的程序。然而,在計算機能夠理解之前,高級語言必須被稱之為編譯器的另外一種程序翻譯成機器語言。因為這個原因,與用匯編語言編寫的程序比較起來,用高級語言編寫的程序可能運行的時間更長,佔用的內存更多。
3、匯編語言
計算機編程人員使用匯編語言使機器語言程序編寫起來更簡單一些。在匯編語言中,每條語句大致對應一條機器語言指令。匯編語言的語句是藉助易於記憶的命令編寫的。在典型的匯編語言的語句中,把存儲寄存器A的內容加到存儲寄存器B的內容中這一命令,可以寫成ADD B, A。匯編語言與機器語言具有某些共同特徵。例如,對特定的比特進行操作,用匯編語言和機器語言都是可行的。當盡量減少程序的運行時間很重要時,程序員就使用匯編語言,因為從匯編語言到機器語言的翻譯相對簡單。當計算機的某個部分必須被直接控制時,如監視器上的單個點或者流向列印機的單個字元,這時也使用匯編語言。
三、高級語言的分類
高級語言通常分為面向過程的、函數式的、面向對象的或邏輯的語言。當今最常見的高級語言是面向過程的語言。在這種語言中,執行某個完整功能的一個或多個相關的語句塊組成一個程序模塊或過程,而且被給予諸如「過程A」的名稱。如果在程序的其他地方需要同樣的操作序列,可以使用一個簡單的語句調回這個過程。實質上,一個過程就是一個小型程序。一個大程序可以通過將執行不同任務的過程組合在一起而構成。過程語言使程序變得比較短,而且更易於被計算機讀取,但是要求程序員將每個過程都設計得足夠通用,能用於不同的情況。
函數式語言像對待數學函數一樣對待過程,並允許像處理程序中的任何其他數據一樣處理它們。這就使程序構造在更高、更嚴密的水平上得以實現。函數式語言也允許變數——在程序運行過程中可以被用戶指定和更改的數據符號——只被賦值一次。這樣,通過減少對語句執行的確切順序給予關注的必要性,就簡化了編程,因為一個變數沒有必要每次在一個程序語句中用到,都重新定義或重新賦值。函數式語言的許多觀點已經成為許多現代過程語言的關鍵部分。
面向對象的語言是函數式語言的發展結果。在面向對象的語言中,用來編寫程序的代碼和程序處理的數據,組合成叫做對象的單元。對象進一步組合成類,而類則定義對象必須具有的屬性。類的一個簡單例子就是書這個類。這個類中的對象可能是小說和短篇小說。對象還有某些與其相關的功能,稱為方法。計算機通過使用對象的某種方法來使用這個對象。方法對對象中的數據執行某個操作,然後將值返回給計算機。對象的類也可更進一步組合成層,而在層中一個類的對象可繼承另一個類的方法。面向對象的語言中所提供的這種結構,使面向對象的語言對於復雜的編程任務非常有用。
邏輯語言將邏輯用作其數學基礎。一個邏輯程序由一系列的事實與「如果……則」規則組成,來具體說明一系列事實如何可以從其他實事中推斷出來,例如:
如果X語句為真,則Y語句為假。
在這樣一個程序的執行過程中,一條輸入語句可以按照邏輯從程序中的其他語句推斷出來。許多人工智慧程序使用這種語言編寫。
四、語言的結構與成分
編程語言使用特定類型的語句或指令,來給程序提供功能結構。程序中的一條語句是表達一個簡單意思的基本句子,其目的是給計算機一條基本指令。語句對允許的數據類型、數據如何處理以及過程和函數的工作方式進行定義。程序員利用語句來操作編程語言的常見成分,如變數和宏(程序中的小型程序)。
數據聲明語句給予稱為變數的程序元素以名稱和屬性。變數在程序中可以賦予不同的值。變數可以具有的屬性被稱作類型,它們包括:變數中可能存儲什麼樣的值,值中使用何種程度的數值精度,以及一個變數可以如何以有組織結構的方式——如以表或數組的形式——代表一組比較簡單的值等等。在許多編程語言中,一種關鍵的數據類型是指示字。指示字變數本身沒有值;相反,它們含有計算機可以用來查找某個其他變數的信息——也就是說,它們指向另一個變數。
表達式是語句的一段,描述要對一些程序變數執行的一系列運算,如X+Y/Z,其中X、Y和Z為變數,運算方法為加和除。賦值語句給一個變數賦予得自某個表達式的值,而條件語句則指定要被測試、然後用於選擇接下來應該執行的其他語句的表達式。
過程與函數語句將某些代碼塊定義為以後可在程序中返回的進程或函數。這些語句也規定程序員可以選擇的變數與參數種類,以及當一個表達式使用過程或函數時代碼將返回的值的類型。許多編程語言也容許叫做宏的小型翻譯程序。宏把使用程序員定義的語言結構編寫的代碼段翻譯成編程語言可以理解的語句。
五、歷史
編程語言幾乎可以追溯到20世紀40年代數字計算機發明之時。最早的匯編語言,隨著商業計算機的推出,出現於20世紀50年代末。最早的過程語言是在20世紀50年代末到20世紀60年代初開發的:FORTRAN語言由約翰•巴克斯創造,然後由格雷斯•霍珀創造了COBOL語言。第一種函數式語言是LISP,由約翰•麥卡錫於20世紀50年代末編寫。這3種語言今天仍在廣泛使用,但經歷過大量修改。
20世紀60年代末,出現了最早的面向對象的語言,如SIMULA語言。邏輯語言在20世紀70年代中期隨著PROLOG語言的推出而變得廣為人知;PROLOG語言是一種用於編寫人工智慧軟體的語言。在20世紀70年代,過程語言繼續發展,出現了ALGOL、BASIC、PASCAL、C和Ada等語言。SMALLTALK語言是一種具有高度影響力的面向對象的語言,它導致了面向對象的語言與過程語言在C++和更近期的JAVA語言中的結合。盡管純粹的邏輯語言受歡迎的程度有所下降,但其變體以現代資料庫所使用的關系語言——如結構化查詢語言——的形式,變得至關重要。

B. 機器語言是怎樣工作的

這個問題要說的可就多了,因為現在的計算機有好多種結構體系的,就以我們最常見的X86結構的計算機來簡單的說說。
首先我們按下開機鍵,計算機通電,電源部分給各個部件加電,這是個脈沖升壓過程,很快的。然後每個部件都返回一條指令給主板的負責自檢的模塊BIOS(BASIC Input Output System)表示加電成功,准備就緒。
然後,BIOS進行系統自檢,詳細的檢查如內存、cpu等部件的工作是否正常。自檢通過後,啟動的所有權交給磁碟上的啟動扇區,啟動扇區的數據將引導計算機執行最基本的啟動指令,然後啟動磁碟上已有的操作系統(OS,operating system),操作系統啟動成功後,將出現人機交互界面,這時計算機會接受操作員給出的指令,並進行處理,最後返回給操作員結果。
工作完畢後,操作員給出關機指令,計算機關閉。

計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。

電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。

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

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

匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。

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

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

高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:

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

編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。

C. 機器語言該怎麼學有人會嘛

機器語言?厲害。0和1俗稱是唯一兩個能被計算機識別的機器語言,因為很容易專用高低電平或者接通/斷開屬狀態表示。如果你想用類似於機器語言的機制,去設計卡發什麼,無疑要精通數字邏輯,電路分析,信號處理,計算機組成原理以及微機原理等這類知識。

D. 怎麼把C語言轉化為相應對機器語言

以GCC編譯器為例,可以分為四步。
第一步是預處理,包括語法檢查等工作。
gcc -P abc.c
第二內步由源程序容生產匯編語言代碼。
gcc -S abc.c
會生成abc.s文件,這個文件里就是匯編代碼。
第三步編譯器生成目標代碼,一個源文件生成一個目標代碼。
gcc -c abc.c
會生成abc.o
第四步連接器從目標代碼生成可執行文件。
gcc abc.o

目標代碼包括機器碼和符號表(函數及變數名)。連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標代碼中引入或未定義的符號(函數及變數名),將幾個目標代碼合成可執行文件。

E. 機器語言該怎麼學有人會嘛

屬於機器語言的可讀的文字形式你可以去學對深刻理解計算機體系有極大幫助建議,看匯編語言編程的藝術 王爽的 匯編語言這兩本書追問: 學了C後,我發現我的興趣已不僅限於可以編程了,我聽說機器語言古老,所以打算去學!是不是先要學好數學和物理?回答: 89 76 23 14 這些是機器語言的組成,都是數字補充: 實際些吧,大哥。 願意學,去學匯編,研究匯編原理, 那個真的能研究一輩子的。 很復雜,對你胃口的補充: 學機器語言,你連程序都運行不起來,exe程序,很復雜的文件頭,你手工寫?我服你追問: 我不打算考學機器語言賺錢生活,只是打算長期研究,只到會!我不能也不甘心讓它連放到博物管的機會都沒了吧回答: 問題是你老哥連啥是機器語言都沒搞懂啊。補充: 機器語言是編譯程序把高級語言翻譯為機器可以理解的二進制序列。 或者匯編程序把匯編翻譯成機器可以理解的二進制序列 注意,是一些二進制數字的序列。 目前,光是序列還不能執行,還要加上程序頭,資源,等等的 然後才組成一個完整程序。 目前,任何計算機,都不支持純機器語言的手工生成了,一切語言包括匯編都是 機器編譯生成的,人工很難,那要涉及到復雜的操作。 包括CPU的設計也是一種程序設計語言了。 也不是人手工設計電路,電路都是編程自動生成的了。補充: 換句話說,你先穿越到50年代,才有工具可以去學機器語言追問: 就是不會才學,會了我會再去浪費時間,那真是傻!人生還有三四十年,不信到死我都學不會?回答: 你這好比不用計算機格式化磁碟,自己用小磁鐵去刻磁碟,然後要硬碟啟動XP 知道多難了么?補充: 呵呵…你懂機器語言嘛?我挺想找人教我的!你是那老師?我今年高考看管靠近你點不!好想學機器語言啊!回答: 我說的很清楚了,用二進制碼(0和1)表示電路信號,讓計算機實現相應的功能,那些是必備知識。

F. 匯編語言是一種機器語言嗎怎麼有的說不是有的說是啊

匯編不是機器語言。
匯編語言(Assembly Language)是面向機器的程序設計語言.匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬體特性並能直接控制硬體的語言。匯編語言」作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM, TASM等等為我們寫匯編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬體精確控制的程序。
在匯編語言中,用助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。
使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編語言編譯器把匯編程序翻譯成機器語言的過程稱為匯編。
匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
匯編語言的特點:
1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2.保持了機器語言的優點,具有直接和簡捷的特點。
3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。
4.目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。
5.經常與高級語言配合使用,應用十分廣泛。
匯編語言的應用:
1.70%以上的系統軟體是用匯編語言編寫的。
2.某些快速處理、位處理、訪問硬體設備等高效程序是用匯編語言編寫的。
3.某些高級繪圖程序、視頻游戲程序是用匯編語言編寫的。
匯編語言是我們理解整個計算機系統的最佳起點和最有效途徑
人們經常認為匯編語言的應用范圍很小,而忽視它的重要性。其實匯編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。
所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。
所有程序,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。
機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運行於下。
匯編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐應用基礎。
學習匯編語言,向上可以理解軟體,向下能夠感知硬體,是我們理解整個計算機系統的最佳起點和最有效途徑。

G. 機器語言

學習匯編語言編程有助於編寫用於增強高級語言程序的高效代碼。這也是如今高級編程語言層出不窮的時代、匯編語言依然保持他那元老的風採的原因之一。
在學習匯編語言之前,必須先了解計算機本身的機器語言,機器語言都是由二進制數0和1來表示的,且一位二進制數字習慣稱之為一個位(bit),機器語言程序的表達式就由這些位串組成,這些位串被之為位模式(bit pst-terns)。如:
101110000000010100000000
這些機器語言位模式代表指令、數據和指令數據的地址。上面位模式的前8位代表8088機器語言指令,後16位代表一個數據值。如下面的指示:
101110000000010100000000
位模式的前8位命令計算機把指令後面的16位數字送到名叫AX的存儲單元(這些存儲單元叫寄存器registers),機器語言指令命令CPU在AX寄存器中存放數值3。雖然機器語言很吸引人,但是大家可以通過上面的例子看到,太難以理解了,即使最優秀的程序員恐怕也會感到困難,於是漸漸地就產生了匯編語言。
在匯編語言中,機器語言指令的專用名稱為助記符(mnemonics)。另外,數據可以用數字值(例如:3,8,11,666,0bdh)或者符號名稱(例如:MAX,count,line,RESULT)表示,下面我們來看一看匯編語言是怎樣表達機器語言位模式的:
mov ax,3
上面的匯編語言語句要比機器語言
101110000000010100000000
好記得多,不過,計算機不知道上述匯編語言語句的含義。所以必須經過編譯,把上述簡單的語句翻譯成計算機能夠理解的格式,我們就必須使用匯編程序。也就是說,我們要藉助匯編程序把匯編語言程序語句翻譯成等價的機器語言位模式。

H. 機器語言是怎麼樣讓計算機讀懂的. 我不明白.計算機語言具體是什麼誰舉個例子.然後人類怎麼輸入到計算機里

1.x86的話就是intel匯編指令集,例如90代表nop,CC代表int 3等等,2.編譯器把高級語言最終編專譯為與匯編語言向對應屬的intel指令,在程序運行的時候windows裝載器把程序裝入內存,初始化完成後跳到程序入口點運行機器語言。3.cpu是intel製造的,自己的規則當然能夠理解。

I. 機器語言是什麼

機器語言(machine language)是一種指令集的體系。這種指令集,稱機器碼(machine code),是電版腦的CPU可直接解讀權的數據。

機器碼有時也被稱為原生碼(Native Code),這個名詞比較強調某種編程語言或庫,它與運行平台相關的部份。機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能。

(9)怎麼理解機器語言擴展閱讀:

機器語言具有靈活、直接執行和速度快等特點。不同型號的計算機其機器語言是不相通的,按著一種計算機的機器指令編制的程序,不能在另一種計算機上執行。

機器語言的缺點:大量繁雜瑣碎的細節牽制著程序員,使他們不可能有更多的時間和精力去從事創造性的勞動,執行對他們來說更為重要的任務。如確保程序的正確性、高效性。

程序員既要駕馭程序設計的全局又要深入每一個局部直到實現的細節,即使智力超群的程序員也常常會顧此失彼,屢出差錯,因而所編出的程序可靠性差,且開發周期長。

J. 機器語言有哪些不都是0和1組成的代碼嗎一種機器語言只適用一類特定的計算機,怎麼理解

機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是由有意義的二進制代碼組成,二進制代碼也有「0」和「1」組成。

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506