❶ 什麼是匯編,它與編譯有什麼不同
【匯編程序】:把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序。【編譯程序】:把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言的目標程序的翻譯程序。【解釋程序】:對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。高級語言的程序的執行的途徑:1)源程序(高級語言)->【編譯程序】->目標程序(匯編語言)->【匯編程序】->目標程序(機器語言)->計算結果2)源程序(高級語言)->【編譯程序】->目標程序(機器語言)->計算結果3)源程序(高級語言)->【解釋程序】(逐條讀出源程序中的語句並解釋執行,即在解釋程序的執行過程中並不產生目標程序)->計算結果
❷ 編譯程序、解釋程序和匯編程序有什麼區別
編譯就是把高級語言變成計算機可以識別的2進制語言, 是對整個寫好的程序進行翻譯。 最終形成目標文件
解釋程序, 是一句一句翻譯的, 最終不形成目標文件
匯編程序? 你指的 是匯編語言寫的程序嗎? 匯編程序一般指編譯生成與之等價的 機器語言
❸ 編譯程序和匯編程序有什麼不同
1.機器碼是計算機的唯一標識,一般取自計算機的序列號。機器語言是計算機執行的語言,一般的高級語言只有轉化為機器語言,計算機才能識別,工作。2.機器碼和機器語言都不是一樣的,自然機器碼不是唯一的機器語言。3怎麼說呢,匯編程序和編譯程序是不能放在同一起跑線上的,兩個是不同的方面。計算機只能識別機器語言,所以當程序員用匯編語言編寫程序的時候,機器必須將匯編語言轉化為機器語言才行,這就要用到匯編程序來完成。而編譯程序應該和解釋程序放在一起,是為了將高級語言轉化為機器語言,不同在於,是否產生可執行程序。呵呵,我自己答得,如果不懂,可以追問。
❹ 解釋 編譯和編譯 匯編的區別是什麼
解釋和編譯針對的是高級語言的。是高級語言轉換成機器代碼的方式。編譯指的是一次性將程序代碼給轉換成機器代碼,這樣做好處是編譯之後的可執行程序方便移植,可以優化程序代碼,並且執行效率要比解釋語言的高!解釋是指邊解釋邊運行,解釋一條語句便執行一條。顯然這樣的程序執行效率是比較低的。比如C/C++用的是編譯,而basic用的是解釋。java既用到解釋,又用到編譯。而匯編是一種低級程序設計語言,直接操縱底層硬體。是在機器語言(0,1代碼串)的基礎上採用助記符的方式發展而來的。很多病毒都是通過匯編語言寫的。用匯編編寫的程序執行效率非常高!只是不方便寫程序。匯編語言是低級語言,沒有語法,就是一條條機器指令的助記符而已,所以匯編的時候不需要語法分析。編譯時把高級語言處理成機器指令的過程,編譯的時候需要做詞法分析和語法分析,然後是代碼生成。
❺ 編譯和匯編的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
❻ 編譯原理與匯編的區別和聯系是什麼
編譯原理與匯編的區別和聯系是什麼
編譯原理是研究各種語言轉換(不夠專業)為機器語言的過程中的各種理論。
編譯原理是將計算機語言轉化為可以在計算機硬體上直接運行的機器語言,是翻譯語言的一種。
1、將高級語言變為機器語言,包括兩種方法,編譯是一種,另一種是解釋;
2、將匯編語言變成機器語言的,叫匯編程序.
編譯: 高級語言 --> 機器語言(指令);
匯編: 匯編指令 --> 機器指令;
❼ 編譯後一定要匯編嗎
這種事情從理論層面來說:不一定要與匯編語言有什麼瓜葛。你完全可以讓你的編譯器直接編譯成機器碼。大部分C/C++編譯器(不是所有的)之所以先編譯成匯編語言,是為了解構。從C到匯編的「翻譯」相對容易(都算是抽象語言,有語義的),同時匯編語言的編譯器效率很高,可以生成質量非常高的機器碼。所以兩者結合,可以突出各自的優勢,減少復雜度。
但是如果有必要,當然也可以直接編寫產生機器碼的編譯器,實際上Java/C#這樣的半編譯語言和Js這樣的腳本語言,都沒有先轉換成匯編的這一步。前者是因為強大的虛擬機技術,直接把位元組碼轉換成機器碼執行了,後者是靈活的解釋器,實時把代碼轉換成機器碼執行,而完全沒有「編譯」這一步(當然如果深究的話,出於性能考慮,很多高性能的解釋器也會提前「預編譯」一部分代碼,但這是具體實現,不是宏觀概念)。
❽ 什麼是匯編程序和編譯程序有什麼區別
首先,簡介一下計機原理,假如有一個由磁粉組成的硬碟,那麼改變磁粉的排列,並通電,將引發電流大小的變化,這就是計機的數據來源。
那麼,查看磁粉是難以看見的,間接的表示就是:用一個如winhex的軟體打開,裡面的十六進制數就間接說明了磁粉的排列物理狀況。同樣,手動改磁粉即使生效,也未必「有用」。正如你所想,沒錯,既然電腦這機器這么麻煩,但它有人買,因為有鍵盤。一台正常的電腦由「固化」「程序」(bios)硬體去啟用主板上的各個元件,再拿個硬碟放操作系統。自然有辦法寫入數據了。
好了,回歸正題,所謂匯編,就是可以從那些有效的十六進制數據得出的東東,比如「b4....」在某一場合表示mov ......,於是乎,對照主板商等給出的文檔,想進行編寫一個程序,那麼就「mov.......」什麼的對著「b4........」什麼的堆進扇區就行了。編譯程序,動詞來說的話,是一個動作,不是程序,匯編程序是一個程序,名詞來說的話,風馬牛不相干,因為根據上述原理,把匯編代碼或c代碼轉成有效的「磁粉」數據,這就是一個編譯的過程,結果出來的就是編譯程序。
❾ 匯編和編譯程序的區別急
匯編程序是將匯編語言(低級語言)翻譯成二進制機器指令的程序
編譯程序是將高級語言(java,c++)翻譯成二進制機器指令的程序
❿ 什麼是編譯程序和匯編程序
編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
匯編程序是指把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序,是為特定計算機或計算機系列設計的一種面向機器的語言,由匯編執行指令和匯編偽指令組成。匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序。採用匯編語言編寫程序雖不如高級程序設計語言簡便、直觀,但是匯編出的目標程序佔用內存較少、運行效率較高,且能直接引用計算機的各種設備資源。它通常用於編寫系統的核心部分程序,或編寫需要耗費大量運行時間和實時性要求較高的程序段。匯編程序主要有簡單匯編程序、模塊匯編程序、條件匯編程序、宏匯編程序、高級匯編程序幾種。