導航:首頁 > 源碼編譯 > 匯編語言做編譯器

匯編語言做編譯器

發布時間:2022-07-28 19:08:39

① 匯編語言編譯器是怎麼編寫的

最開始的編譯器是機器語言寫的,然後寫出來支持部分之後,就可以用這部分繼續編譯其他部分的。

② 關於匯編語言的編譯器

給你個假設的例子看能說明白不:
咱國某型計算機研製,指令系統確定後,
(1)先用機器語言編寫一個「小匯編」編譯器,它能編譯該機所有的機器指令相對應的匯編符號語言
(2)然後用小匯編語言編寫該機的匯編編譯器和FORTRAN編譯器
(3)……再PASCAL…
另,再多說幾句。:以上說的是幾十年前是這么做的,現在用的是交叉匯編等其它一些技術,比如:可以用成熟的機器的C語言寫個某種機器編譯器(可以是任何語言),,用這個交叉編譯器再編寫目標機的各種語言編譯器。

③ 寫編譯器必須要會匯編語言嗎

這種事情從理論層面來說:不一定要與匯編語言有什麼瓜葛。你完全可以讓你的編譯器直接編譯成機器碼。大部分C/C++編譯器(不是所有的)之所以先編譯成匯編語言,是為了解構。從C到匯編的「翻譯」相對容易(都算是抽象語言,有語義的),同時匯編語言的編譯器效率很高,可以生成質量非常高的機器碼。所以兩者結合,可以突出各自的優勢,減少復雜度。
但是如果有必要,當然也可以直接編寫產生機器碼的編譯器,實際上Java/C#這樣的半編譯語言和Js這樣的腳本語言,都沒有先轉換成匯編的這一步。前者是因為強大的虛擬機技術,直接把位元組碼轉換成機器碼執行了,後者是靈活的解釋器,實時把代碼轉換成機器碼執行,而完全沒有「編譯」這一步(當然如果深究的話,出於性能考慮,很多高性能的解釋器也會提前「預編譯」一部分代碼,但這是具體實現,不是宏觀概念)。

④ 匯編語言編譯器的MASM編譯器介紹

MASM是Microsoft公司推出的匯編編譯器。它的版本從低到高經過了很多次的升級(微軟的通病,升級補丁多如牛毛)。每次升級除了例行的錯誤修正外都增加了一些新的功能,以至於到最後高版本和低版本的語法和功能相差很多,向下兼容性也不好。低版本的MASM固然無法編譯高版本的源程序,但高版本的MASM也可能無法正常編譯低版本的源程序,如MASM 4.0寫的源程序常常無法在MASM 6.x上編譯成功。在使用MASM系列編譯器時,如果不先搞清楚特定的語法和編譯選項可以在哪個版本上用,編譯中就會錯誤連篇。所以在這里有必要了解一下MASM各版本的演變過程
下表列出了不同版本MASM編譯器的區別。
版 本
簡 介
MASM 4.00
這是最先廣泛使用的一個MASM版本,適用於DOS下的匯編編程。它很精巧,但使用起來不是很智能化,需要用戶自己一板一眼地寫出所有的東西。很多教科書上講的8086匯編語法都是針對這個版本的,對程序員來說。它只比用Debug方便一點點。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,並將段定義的偽指令簡化為類似 .code與.data之類的定義方式,同時增加了對80386處理器指令的支持,對4.00版本的兼容性很好
MASM 5.10
對程序員來說,這個版本最大的進步是增加了對@@標號的支持。這樣,程序員可以不再為標號的起名花掉很多時間。另外,MASM 5.10增加了對OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一個版本更穩定、更快,它是傳統的DOS匯編編譯器中最完善的版本
MASM 6.00
1992年發布,有了很多的改進。編譯器可以使用擴展內存,這樣可以編譯更大的文件,可執行文件名相應從Masm.exe改為Ml.exe。從這個版本開始可以在命令行上用*.asm同時編譯多個源文件,源程序中數據結構的使用和命令行參數的語法也更像C的風格。最大的改進之一是開始支持 .if/.endif這樣的高級語法,這樣,使用復雜的條件分支時和用高級語言書寫一樣簡單,可以做到幾千行的代碼中不定義一個標號;另外增加了invoke偽指令來簡化帶參數的子程序調用。這兩個改進使匯編代碼的風格越來越像C,可讀性和可維護性提高了很多
MASM6.00A
未發售的版本
MASM 6.00B
最後一個支持OS/2的MASM版本,修正了上一版本中的一些錯誤
MASM 6.10
修正了一些錯誤,同時增加了/Sc選項,可以在產生的list文件中列出每條指令使用的時鍾周期數
MASM6.10A
1992年發布,修正了一些內存管理方面的問題
MASM 6.11
1993年11月發布,支持Windows NT,可以編寫Win32程序,同時支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年發布,增加了對Windows 95 VxD的支持
MASM 6.12
1997年8月發布,增加 .686,.686P,.MMX聲明和對相應指令的支持
MASM 6.13
1997年12月發布,增加了 .K3D聲明,開始支持AMD處理器的3D指令
MASM 6.14
這是一個很完善的版本,它在 .XMM中增加了對Pentium III的SIMD指令集的支持,相應增加了OWORD(16位元組)的變數類型
MASM 6.15

⑤ 匯編語言的編譯器是用什麼語言寫的,為什麼

直接用指令碼寫出第一個匯編語言編譯器,然後就可以用匯編語言寫新的編譯器,其實很多語言都可以寫匯編編譯器

比如第一個C語言編譯器可能是用匯編寫的,但是以後的C編譯器都可以用C語言來寫,神奇吧,哈哈

⑥ 匯編語言是用什麼軟體編譯的

《匯編語言》清華大學出版社 王爽版,這是比較全面的匯編教材,適合初學者。你以前學的是高級軟體編程,現在學匯編需要了解計算機的組成知識。編譯器就用masm 5.0就可以。是在dos下的。

⑦ 匯編語言用什麼當編譯器給個中文下載地址

匯編語言集成編譯器
V1.2
大小:1.55MB
格式:ZIP
下載地址:
http://download.pansend.com/M26e8?p=.html
速度很快哦!
點一下我想要,只要幾分鍾內就給你發過去~

⑧ 製作一個簡單的編譯器

還能編譯匯編。。。
我暈。。。
我想這個不是一般人可以做到的,祝你好運!
如果你僅僅針對文本編輯器的話就好辦了。

⑨ 匯編語言編譯器是怎麼來的

第一個軟體,顯然是用機器語言寫的。

當用機器語言寫成了文字處理軟體,才能用屏幕、鍵盤打字。

當用機器語言寫成了編譯軟體,才能把打好的字,編譯成機器碼。

⑩ 匯編語言編譯器的介紹

匯編語言是一種以處理器指令系統為基礎的低級語言,採用助記符表達指令操作碼,採用標識符表示指令操作數。作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。常用的高級語言編譯器有Microsoft公司的MASM系列和Borland公司的TASM系列編譯器,還有一些小公司推出的或者免費的匯編軟體包等。

閱讀全文

與匯編語言做編譯器相關的資料

熱點內容
單片機6502 瀏覽:765
自助洗車有什麼app 瀏覽:937
程序員離職率多少 瀏覽:322
程序員那麼可愛電視劇今天沒更新 瀏覽:337
我的世界地形演算法 瀏覽:343
台灣dns的伺服器地址雲空間 瀏覽:288
音樂噴泉軟體要什麼加密狗 瀏覽:501
androidhttpmime 瀏覽:774
威科夫操盤法pdf 瀏覽:981
演算法可以用圖表表示 瀏覽:949
山西太原php 瀏覽:274
常用cmd網路命令 瀏覽:677
hashmap7源碼分析 瀏覽:899
搜索引擎原理技術與系統pdf 瀏覽:362
運動估計演算法python 瀏覽:861
java正則1 瀏覽:539
redhatlinux最新 瀏覽:182
python字典編程詞彙 瀏覽:147
微信和伺服器如何通訊 瀏覽:13
百家號伺服器配置有什麼用 瀏覽:601