組合語言的編譯器是用什麼語言寫的,為什麼

2022-02-27 10:13:43 字數 3890 閱讀 9175

1樓:匿名使用者

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

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

2樓:匿名使用者

前面幾樓的都說的不錯,其實還有一種辦法,就是採用交叉編譯器,也就是比如我現在是51微控制器平臺的,但是51的執行**可以在intel的32位windows下面編譯完成。

所以概括的說,什麼語言都可以用來寫編譯器。

3樓:匿名使用者

事實上幾乎可以用任何語言來寫,呵呵。

4樓:匿名使用者

樓主這個問題,提得好,真的,說明你比較有想法!

這個涉及到一個編譯器悖論的問題,你可以請教你們老師.好象《組合語言》這個教材裡面也有涉及的

某種編譯器可以是比它低階的或者高階的語言編寫的各種介面:先把使用者編寫的程式翻譯為編譯器自己能識別的語言,然後在以2進位制的形式,傳遞給cpu和記憶體,進行處理,然後返回,在反過來翻譯一遍,輸出結果,釋放緩衝區.

這裡面涉及到n多問題,在此不討論了.

組合語言是用什麼語言編寫出來的??

5樓:匿名使用者

你是說編譯器嗎? 組合語言的編譯器,用什麼語言都能寫。關鍵是**執行。

是cpu 快取進行執行。如果您問我 cpu 使用什麼語言寫的。我告訴你。

是電子電路里邊的數電寫的

6樓:ming有夢的人

組合語言(assemblylanguage)是面向機器的程式設計語言。在彙編語閤中,用助記符(memoni)代替操作碼,用地址符號(symbol)或標號(label)代替地址碼。這樣用符號代替機器語言的二進位制碼,就把機器語言變成了組合語言。

於是組合語言亦稱為符號語言。使用組合語言編寫的程式,機器不能直接識別,要由一種程式將組合語言翻譯成機器語言,這種起翻譯作用的程式叫彙編程式,彙編程式是系統軟體中語言處理系統軟體。彙編程式把組合語言翻譯成機器語言的過程稱為彙編。

因為組合語言是直接對硬體進行操作,所以能控制硬體,比如mov a,#17h

就是直接對硬體的暫存器a進行操作,所以能控制硬體。

組合語言的編譯器是用什麼寫的呢?

7樓:匿名使用者

編譯器一般是用c寫的,最初的東西肯定是用機器語言寫的,我老師曾經用在紙帶上穿孔的辦法寫過程式。

他當時的願望是用鍵盤敲一個a就能輸入一個a,而不是出來一排孔。

8樓:匿名使用者

任意一種程式設計語言都可以。

但是世界上第一款組合語言編譯器一定是機器語言寫的。哈哈。

9樓:江捷斯

你不是已經想到了沒~?

第一個編譯器就是機器碼寫的.

只要是設身處地的想一想就知道,當是的人寫的時候就跟我們現在寫c語言一樣,因為那時候只有機器碼,並沒有什麼累不累的想法.

只有感覺自己實在創造一種新的東西,在為計算機界做潛在的巨大貢獻.

組合語言編譯器是怎麼來的?

10樓:做而論道

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

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

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

11樓:

現在 c語言編譯器也可以用c語言編寫

12樓:匿名使用者

很多人都在問電腦中的很多軟體是怎麼來的,比如說作業系統怎麼來的,程式設計軟體又是怎麼來的。問這個問題的根本原因就是,認為某個軟體必須在該軟體更舊的版本存在條件下才能產生。具體化這種思想,例如:

認為新的作業系統必須在舊的作業系統存在條件下才能開發出來,那麼,最初的作業系統優勢如何開發出來的呢?又比如:c語言用組合語言開發,但是組合語言又是由什麼更老的語言開發的呢?

這兩個問題實際上都一樣的邏輯。你為什麼必須認為c語言只能用組合語言開發,組合語言只能用二進位制開發呢?電腦的進化類似於生物進化,但是,又不等於生物進化,不是說只能由低等開發高等。

作業系統也好,編譯器也罷,根本上都是程式,他們有著共同發展歷史:

程式首先出現在穿孔卡上,人們通過機械把小孔打上去,如果歷史出現一點小差錯,某個人忽然在這個時候突然想到要編一個彙編編譯器(當然,這是假設的歷史),那麼,他只需要在上面打上幾個小孔代表相應機器指令,就把彙編編譯器程式寫完了。

既然寫程式就是寫一些機器指令,然後把它儲存好讓機器執行,那麼,編寫其它任何程式包括編譯器也是同樣道理,只要把能夠實現相應功能的**寫好,並且儲存好就行,管他用什麼編寫

無論用c語言

還是組合語言。

只要產生能夠達到相應功能的**就行,管他用什麼寫,哪怕你用刀子刻上去都一樣!!

組合語言編譯器是怎麼編寫的

13樓:匿名使用者

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

14樓:匿名使用者

怎麼說呢,能寫編譯器的都是大牛了---

我認為是根據一定規則,(不是有編譯原理的理論嗎),結合硬體與組合語言--對應指令有對應的翻譯過程

15樓:腦子很笨

用匯編寫的 給你個**

www.aogosoft.com

c語言編譯器是用組合語言寫的嗎?

16樓:暴惜靈

這個是肯定的。演算法優化,首先是邏輯描述的精煉化。至於c,只是計算邏輯到計算機模式的一種對映,而彙編僅是利用特殊計算機指令的一個更深的藕荷。

不過有一點,c語言由於是計算邏輯到計算機模式的對映,所以不單單考慮演算法本身,還肩負資料組織的實現。資料流動方式,資料組織方式,對計算效能的影響也很大。這要看是否和計算機組成原理相貼近。

其實這塊也是側重邏輯的設計,而不是具體機器指令的實現,因此彙編是無能為力的。

不過在dsp等特殊cpu架構,c語言和編譯器無法很好的將上述邏輯轉換為機器指令,或者c本身的邏輯無法很好的貼近cpu的特性,那麼還是得彙編。一個典型的例子就是如何使用dsp的並行指令(通常的向量計算)和並發指令集,幾個不同的指令(隸屬不同處理單元)的同時執行。使用c語言無法描述清楚這些邏輯方式,而編譯器又太水,則還是不得不用匯編。

此時c語言僅能淪落到大的計算機組織特性的貼近,和整體框架,模組的設計上。細節方面無能為力了。

組合語言是用什麼語言開發的,開發彙編的系統又是什麼

17樓:還是別說話

如果是現在需要為某種可程式設計晶片開發一種組合語言的話,很明顯什麼語言,什麼系統下都是可以進行,不過按我理解,你的意思是想追究計算機發展初期,組合語言是怎麼來的吧。那就是用機器語言開發的。

其實無論什麼語言目的都是讓計算機執行人們所計劃的程式流程,其表現形式就是把人類認知的符號最終變成控制計算機的電訊號,你應該能理解,計算機執行程式實質就是閘電路的高低電平、電晶體通斷狀態的不斷變化。所謂指令就是你給了cpu的某個暫存器賦值了一組資料(也就是給某一些電路初始化了一組我們稱之為0101的高低電平組合),然後就導致了cpu中更多電路的變化,最終變化出我們想要的結果資料,而某個cpu的所有這種輸入與輸出的對應關係實際就是我們說的這種cpu支援的指令集。我們現在看到了語言指令都是編譯器定義的指令而已,其實就是把指令集的指令用英文字母來標識,在編譯時就轉化為二進位制的輸入碼。

那很顯然,有沒有英文字母的助記符,實際並不影響cpu的執行,沒有英文字母,用二進位制碼一樣程式設計,甚至最早的計算機是人手工直接來完成電子管開關的初始化才能執行的,連二進位制碼都不用,這也一樣是程式設計。

所以,彙編出現前人們就用打孔紙帶表示0101的二進位制碼來程式設計的,這就是機器語言了。

什麼是組合語言,什麼是彙編和組合語言?

組合語言 assembly language 是面向機器的程式設計語言。在彙編語閤中,用助記符 memoni 代替操作碼,用地址符號 symbol 或標號 label 代替地址媽。這樣用符號代替機器語盲的二進位制碼,就把機器語音變成了組合語言。於是組合語言亦稱為符號語言。使用組合語言編寫的程式,機器...

組合語言是什麼?組合語言是一種什麼語言?

組合語言,是和機器語言同一層次的程式語言。組合語言的主體,是機器語言的助記符,因此,就比機器語言易懂,好記。組合語言中,還有一些偽指令,都是英文單詞,也不難。用組合語言編寫程式,也就是用機器語言程式設計,完全是直接對 cpu 進行程式設計。用組合語言編寫程式,需要對計算機本身,有全面的瞭解,所以,難...

常見的c語言編譯器是什麼,常見的C語言編譯器是什麼?

1.c語言程式設計軟體有哪些 mcrosoft visual c microsoft visual studio dev c code blocks borland c watcom c borland c builder gnu djgpp c lccwin32 c compiler3.1 hig...