編譯器匯編器區別
① 匯編器和編譯器有什麼區別
匯編器(比如MASM)全稱是匯編編譯器,用來編譯匯編語言的。匯編語言的大部分命令都和機器碼一一對應,而高級語言和匯編的偽指令是不和機器碼一一對應的
,因此從某種意義上說,匯編碼就相當於機器碼。
編譯器的作用是,將源文件(.c/.cpp/.pas等)轉換為目標代碼(.obj/.dcu等)。這是已經是二進制代碼了。
最後由連接器(Linker),將目標代碼連接起來,這樣就形成了可執行文件
② 匯編器和編譯器有什麼區別
匯編器(Assembler)是將匯編語言翻譯為機器語言的程序。一般而言,匯編生成的是目標代碼,需要經鏈接器(Linker)生成可執行代碼才可以執行。
匯編語言是一種以處理器指令系統為基礎的低級語言,採用助記符表達指令操作碼,採用標識符表示指令操作數。作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。常用的高級語言編譯器有Microsoft公司的MASM系列和Borland公司的TASM系列編譯器,還有一些小公司推出的或者免費的匯編軟體包等。
編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)
③ 匯編和編譯程序的區別急
匯編程序是將匯編語言(低級語言)翻譯成二進制機器指令的程序
編譯程序是將高級語言(java,c++)翻譯成二進制機器指令的程序
④ 編譯程序和匯編程序有什麼不同
1.機器碼是計算機的唯一標識,一般取自計算機的序列號。機器語言是計算機執行的語言,一般的高級語言只有轉化為機器語言,計算機才能識別,工作。2.機器碼和機器語言都不是一樣的,自然機器碼不是唯一的機器語言。3怎麼說呢,匯編程序和編譯程序是不能放在同一起跑線上的,兩個是不同的方面。計算機只能識別機器語言,所以當程序員用匯編語言編寫程序的時候,機器必須將匯編語言轉化為機器語言才行,這就要用到匯編程序來完成。而編譯程序應該和解釋程序放在一起,是為了將高級語言轉化為機器語言,不同在於,是否產生可執行程序。呵呵,我自己答得,如果不懂,可以追問。
⑤ 編譯程序和解釋程序,匯編程序有什麼區別
首先,匯編語言是一種語言,一種低級語言,和c,c++,vb......是一樣的,和編譯、解釋不是一個概念;
關於解釋程序
和編譯程序的解釋和關系如下:
a、解釋程序
所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如basic)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。
b、編譯程序
這是一類很重要的語言處理程序,它把高級語言(如fortran、cobol、pascal、c等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。
編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。
值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。
在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如basic,這樣可以大大縮短編程及調試的時間。
⑥ 匯編器、編譯器、編輯器
有鏈接器,編輯器,編譯器.
GCC的話就是把 先把源文件預處理成純C的文件,編譯器把純C文件轉換成匯編程序,匯編器再把匯編程序變成 目標文件. 連接器 去鏈接庫文件,然後生成可執行文件... ...
其實編譯器,沒有什麼功能,就和文本 TXT一樣,只不過多了一些語法高亮功能.
純C文件,說白了,就是去掉一些沒有的東西,比如注釋,還有一些用不到的東西.
然後純C文件變成匯編的代碼,
⑦ 匯編,解釋,編譯是三種不同的語言嗎有什麼什麼區別
是指三種將不同的源程序翻譯成目標程序的方式。「匯編」是指將匯編語言源程序翻譯成目標代碼,然後來執行這個目標代碼,這個翻譯過程由「匯編程序」來完成,如8086匯編;「解釋」是指將高級語言源程序的語句翻譯一行,執行一行,即便翻譯,邊執行,如QBASIC;「編譯」是指將高級語言源程序翻譯成目標代碼,然後來執行這個目標代碼,這個翻譯過程由「編譯程序」來完成,如c語言。
⑧ 匯編器和編譯器有什麼區別WINDOWS操作系統中是否包含這
匯編和編譯是兩個完全不同的概念.
匯編是指用匯編語言直接操縱機器,用匯編語言編的程序是不需要編譯器進行編譯的
編譯是指把高級語言編的程序翻譯成機器語言好讓機器執行,不同的高級語言有不同的編譯器
樓主可以看看<<匯編語言>>和<<編譯原理>>這兩本書就明白了
⑨ 匯編和編譯程序的區別急
匯編是一種語言,就像c++是一種語言一樣,是一個名詞
編譯是一個動詞,指對開發完成的源代碼進行編譯,就是把你寫的一些語句轉換為計算機能識別的機器語言
編譯需要編譯器
匯編程序就是一個程序,是用匯編語言寫的程序,可能是已經編譯過的,也可能是還沒有編譯過的(名詞)
編譯程序是對一個程序進行編譯,編譯以後程序才能運行(動詞)
如果把你的問題改為:asp程序和編譯程序有什麼區別可能就好理解了
⑩ 什麼是匯編,它與編譯有什麼不同
【匯編程序】:把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序。【編譯程序】:把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言的目標程序的翻譯程序。【解釋程序】:對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。高級語言的程序的執行的途徑:1)源程序(高級語言)->【編譯程序】->目標程序(匯編語言)->【匯編程序】->目標程序(機器語言)->計算結果2)源程序(高級語言)->【編譯程序】->目標程序(機器語言)->計算結果3)源程序(高級語言)->【解釋程序】(逐條讀出源程序中的語句並解釋執行,即在解釋程序的執行過程中並不產生目標程序)->計算結果