匯編編譯器開源
Ⅰ .asm是什麼文件
ASM是匯編語言源程序的擴展名,匯編語言(Assembly Language)是面向機器的程序設計語言。匯編語言是一種功能很強的程序設計語言,是利用計算機所有硬體特性並能直接控制硬體的語言。打開asm文件有兩種方法即筆記本和MasmEdit軟體。
在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。
使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。
匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
(1)匯編編譯器開源擴展閱讀:
匯編語言的特點
1、面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2、保持了機器語言的優點,具有直接和簡捷的特點。
3、可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。
4、目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。
5、經常與高級語言配合使用,應用十分廣泛。
Ⅱ gcc是開源的吧代碼是用什麼寫的匯編么
gcc官方網站 http://gcc.gnu.org/
關於gcc的信息可以自己找到,源代碼也可以下到(不過官方下載有點費勁)。gcc也是用c語言寫的。
Ⅲ 小問一下GCC編譯器
gcc在windows上的移植版本有mingw和cygwin等,可以利用gcc里的binuitls中as和ld來編譯和鏈接匯編代碼,不過語法是 AT&T,很怪異,特點就是一個開源的編譯器,一般編譯器的各方面都和vc差不多,但gcc對於c/c++的標准支持要更好,至於主要的用處,它是UNIX世界的通用編譯器集合,win32也可以用gcc來使用GPL許可的gtk+,qt等圖形庫開發windows程序。
windows下我見過的有2個IDE,一個dev-c++,一個mingw studio,下面是地址:
sourceforge下載Dev-C++:http://sourceforge.net/projects/dev-cpp/
多特下載Mingw Studio:http://www.ote.com/soft/9863.html
Ⅳ 如何更好的掌握編譯器的設計與實現
1. 閱讀相關書籍:編譯原理、編譯器設計、編譯器實現等;
2. 自學相關編程語言:C、C++、Java等;
3. 實踐:可以使用開源的編譯器框架,例如ANTLR,搭建自己的編譯器;
4. 了解編譯器的各個組成部分,並學習它們的工作原理;
5. 閱讀技術文章,了解編譯器的設計和實現的最新進展;
6. 加入開源項目,編寫和維護編譯器;
7. 在論壇上交流,和更多的編譯器開發者分享心得體會;
8. 參加學術會議,接觸到最新的研究成果;
9. 嘗試著自己設計一個編譯器,用實踐來加深理解。
Ⅳ 問個白痴問題,C語言開源嗎C語言本身用什麼語言編寫的匯編嗎
C語言一開始是由匯編寫的,後來的都是由C語言(優越性)本身或C++寫的,恭喜LZ答對了···
Ⅵ 請問學x86匯編語言用什麼編譯器
編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款X語言編譯器是不是直接1010101010自己寫的那就不知道啦
一般開發編譯器的話。有兩條路選擇
1.利用yacc(或者其變種)&lex(詞法分析)-等工具自己生成語法模板
詞法語法都可以使用這些工具自己生成
然後自己編寫生成的中間碼和生成的機器碼就可以了
一般做編譯原理類似試驗都是如此的。許多編譯器也的確是這樣
2.自己寫詞法分析和語法分析。可以參考一些開源的編譯器
lcc-這個是ANSI C99標準的編譯器是開源的
或者nasm,watcom等編譯器到上不少開源的編譯器
總的來說。高級語言編譯器比較難寫
如果想快速寫出一個的話
可以採用第一種做法。利用工具生成語法詞法模板
先寫一個簡單的匯編編譯器比較簡單
開源的有nasm,jwasm(支持masm語法開源的編譯器)
fasm(這款編譯器是自舉的.就是自己可以編譯自己),
剩下的就是自己做好語言規則關鍵字map
引用高手的話。語言map做好了你的編譯器也做好一半了
剩下的都是機械性的工作了。
生成x86或者arm指令。
優化工作這個很難解釋.根據你所需要的做吧
畢竟可以做出一個無錯,又XX的編譯器已經很難得
你可以選擇使用現有的編譯器開發自己的編譯器
然後等到你的編譯器支持相當數量指令和成熟度的時候
使用自己的語法重新寫一遍編譯器.
這樣你就可以用自己的編譯器開發自己的編譯器了(是不是很邪惡?)
另外舉幾個例子
Delphi的編譯器是C++ Builder開發的。
而C++ Builder的IDE是Delphi開發的
C++ Builder的編譯器是C++ Builder開發的-這個就是編譯器自舉了。。Delphi和C++ Builder共享一個後端化優化器。
Delphi 早期的版本的編譯器是tasm直接編譯的。可見Anders的匯編功力多強悍(Anders也就是後來VJ++,C#,.NET工程的核心架構師.最關鍵的靈魂級人物)
VC++的編譯器是VC++開發的。很明顯這都說明了編譯器自舉
自己開發自己。如果一個編譯器可以做到自己編譯自己。那基本上就可以實現任何功能了。
關於編譯器開發的書籍可以看一下
龍書《編譯原理(第二版)》
虎書《現代編譯原理-C語言描述》
鯨書《高級編譯器設計與實現》
建議從鯨書看起。然後是龍書
再來是虎書--虎書裡面描述了許多現代編譯器(正如其名)技術
例如面向對象啦,優化,垃圾回收等等.
鯨書看完基本上就可以實現一個簡單的Tiny C編譯器了
然後在龍書鞏固,讀一下語言規范,自己看一些開源的匯編編譯器代碼
自己就可以嘗試做一個匯編語言編譯器了.等到技術提高了
在嘗試做一些高級語法識別,參考LCC代碼做一下ANSI C99的
C語言編譯器。再來就看你自己的興趣和領悟度拉
如果想支持C++的話就得要對編譯器做許多方便的研究
類似Java那種跨平台或者Ruby,Python等動態語言
虎書中也有描述。當然看自己功力了
Ⅶ c語言是用什麼語言編寫的匯編嗎
C語言源中信悉自Ken Thompson發明的B語言,而 B語言則源自BCPL語言坦賣。
1967年,劍橋大學的Martin Richards對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。
1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
(7)匯編編譯器開源擴展閱讀
C語言編譯器:
GCC,GNU組織開發的開源免費的賣乎編譯器
MinGW,Windows操作系統下的GCC
Clang,開源的BSD協議的基於LLVM的編譯器
Visual C++:: cl.exe,Microsoft VC++自帶的編譯器
C語言集成開發環境:
Code::Blocks,開源免費的C/C++ IDE
CodeLite,開源、跨平台的C/C++集成開發環境
Dev-C++,可移植的C/C++IDE
C-Free
Light Table
Visual Studio系列