㈠ 怎麼編譯匯編語言程序
計算機硬體系統只懂自己的指令程序,而不懂其他語言程序。因此,想用匯編語言或高級語言,則必須有這樣一程序,它將用匯編語言或高級語言寫成的程序轉換成等價的機器語言程序,我們稱這種程序(轉換)為翻譯程序(Translator),把匯編語言的翻譯程序稱為匯編程序( Assembler ),把高級語言的翻譯程序稱為編譯程序( Comiler )。編譯程序也稱為編譯器,它的輸入對象稱為源程序( Source program ),輸出對象稱為目標程序( Object program )。
㈡ 程序的編譯匯編
如何被編譯的呢?
其實計算機只能識別和執行的就是0.1
編譯出來的的也都是機器碼 既0或1
怎麼是操作系統呢 他是根據cpu而編譯的
不同的CPU 都有不同的指令集
所以不同的cpu 就要選用不同的 編譯器了
編譯器本身又是程序,操作系統的運行又是靠什麼編譯的呢?
操作系統是已經被編譯好的 程序 而編譯器是運行在已經編譯好的操作系統上的·
怎麼說呢其實 以前沒有編譯器 都是手工匯編
就是人自己把 匯編語言轉變成 2進制的可執行文件
後來程序越來越大 手工匯編 出錯的幾率也越來越大
所以有了編譯器·
硬體上的匯編器和
硬體上沒有匯編器 都是人自己寫的
編譯器上的匯編器什麼關系?
編譯器的匯編器是把 高級語言轉成 計算機可執行的文件!即1.0
㈢ 如何匯編編譯
匯編代碼的存儲後綴名必須是.asm(可用記事本編輯,改後綴名!如:a.asm)然後,進入命令提示窗口,鍵入:masm a.asm如果程序正確,之後鍵入:link a.obj,之後鍵入:a.exe回車運行。
當然,在對應磁碟(一般是C盤)還應有MASM.EXE、LINK.EXE,如果需要檢查編譯還應該有DEBUG.EXE。如果需要的話再Hi我,我給你發~祝好運。
㈣ 什麼是編譯程序和匯編程序
編譯程序是把用高級程序設計語言或計算機匯編語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序,屬於採用生成性實現途徑實現的翻譯程序。編譯程序以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出;編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
匯編程序是指把匯編語言書寫的程序翻譯成與之等價的機器語言程序的翻譯程序,是為特定計算機或計算機系列設計的一種面向機器的語言,由匯編執行指令和匯編偽指令組成。匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序。採用匯編語言編寫程序雖不如高級程序設計語言簡便、直觀,但是匯編出的目標程序佔用內存較少、運行效率較高,且能直接引用計算機的各種設備資源。它通常用於編寫系統的核心部分程序,或編寫需要耗費大量運行時間和實時性要求較高的程序段。匯編程序主要有簡單匯編程序、模塊匯編程序、條件匯編程序、宏匯編程序、高級匯編程序幾種。
㈤ 怎樣將C語言編譯成匯編
編譯完了,反匯編。
你自己學匯編語言,把實現改成匯編,演算法可能要調整。
有一個在線編譯器,可以直接編譯成匯編:
很好用。
㈥ 匯編程序是怎麼編譯的
匯編語言是一種低級語言,匯編語言是匯編指令集、偽指令集和使用它們規則的統稱,使用具有一定含義的符號為助憶符,用指令助憶符、符號地址等組成的符號指令稱為匯編格式指令。
過程:
編輯:用編輯軟體(EDIT.EXE或記事本)形成源程序(.ASM)
匯編:用匯編程序(MASM.EXE)對源程序進行匯編,形成目標文件(.OBJ),格式如下:MASM LX.ASM;
連接:用連接程序(LINK.EXE)對目標程序進行連接,形成可執行文件(.EXE),格式如下:LINK LX.OBJ;
執行:如果結果在屏幕在顯示,則直接執行可執行文件。
調試:用調試程序(LINK.EXE)對可執行文件進行調試,格式如下:DEBUG LX.EXE
匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。匯編程序(如MASM)的原理實際上就是把匯編的代碼轉成電腦可以識別的二進制碼
㈦ 匯編和編譯程序的區別急
匯編程序是將匯編語言(低級語言)翻譯成二進制機器指令的程序
編譯程序是將高級語言(java,c++)翻譯成二進制機器指令的程序
㈧ 編譯和匯編的區別是什麼
1.定義區別
①編譯原理旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。
②匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。
2.處理方式區別
①編譯過程與解釋挺像,區別就在於編譯是將所有的源代碼指令一次性成翻目標代碼並執行。
②匯編過程就是把匯編指令一對一地翻譯成01機器碼的過程。而採用這種處理方式的語言只有一類:匯編語言。
3.特點區別
①編譯語言的特點就是不需要解釋器的參與,所以運行比較快,但是編譯好的程序只能在當前平台運行,是個局限性。
②匯編語言是當今世界上歷史最早,應用最廣,功能最強大,運行速度最快的編程語言。但是匯編語言開發工期長,可讀性差,並且不能跨平台編程。
㈨ 解釋 編譯和編譯 匯編的區別是什麼
解釋和編譯針對的是高級語言的。是高級語言轉換成機器代碼的方式。編譯指的是一次性將程序代碼給轉換成機器代碼,這樣做好處是編譯之後的可執行程序方便移植,可以優化程序代碼,並且執行效率要比解釋語言的高!解釋是指邊解釋邊運行,解釋一條語句便執行一條。顯然這樣的程序執行效率是比較低的。比如C/C++用的是編譯,而basic用的是解釋。JAVA既用到解釋,又用到編譯。而匯編是一種低級程序設計語言,直接操縱底層硬體。是在機器語言(0,1代碼串)的基礎上採用助記符的方式發展而來的。很多病毒都是通過匯編語言寫的。用匯編編寫的程序執行效率非常高!只是不方便寫程序。匯編語言是低級語言,沒有語法,就是一條條機器指令的助記符而已,所以匯編的時候不需要語法分析。編譯時把高級語言處理成機器指令的過程,編譯的時候需要做詞法分析和語法分析,然後是代碼生成。
㈩ 編譯後一定要匯編嗎
這種事情從理論層面來說:不一定要與匯編語言有什麼瓜葛。你完全可以讓你的編譯器直接編譯成機器碼。大部分C/C++編譯器(不是所有的)之所以先編譯成匯編語言,是為了解構。從C到匯編的「翻譯」相對容易(都算是抽象語言,有語義的),同時匯編語言的編譯器效率很高,可以生成質量非常高的機器碼。所以兩者結合,可以突出各自的優勢,減少復雜度。
但是如果有必要,當然也可以直接編寫產生機器碼的編譯器,實際上Java/C#這樣的半編譯語言和Js這樣的腳本語言,都沒有先轉換成匯編的這一步。前者是因為強大的虛擬機技術,直接把位元組碼轉換成機器碼執行了,後者是靈活的解釋器,實時把代碼轉換成機器碼執行,而完全沒有「編譯」這一步(當然如果深究的話,出於性能考慮,很多高性能的解釋器也會提前「預編譯」一部分代碼,但這是具體實現,不是宏觀概念)。