組合語言程式設計幾乎不能移植,而C C 等就容易移植 有點搞不明白?

2025-02-14 13:50:05 字數 2713 閱讀 8995

1樓:做而論道

組合語言,和機器語言一樣,是直接控制硬體的。

每種cpu,都有自己的機器語言,所以彙編不能移植。

c語言,並不直接控制硬體。

在不同的機器上,有相應的編譯軟體,可以把c,編譯成自己系統的機器語言。

容易移植的關鍵:c語言是不直接控制硬體的。

2樓:網友

組合語言直接和硬體相關,每個操作符都有對應的硬體。所以編譯器直接把它翻譯成了機器語言。

而c與c++的**與硬體無關,主要取決於編譯器。

無論是低階語言還是高階語言,最終都是編譯器將其翻譯成機器語言執行。

比如修房子:

一種情況:房主只需要將設計樣式及所需要的功能告訴承包商就行了,具體的實施細節由承包商做,如在哪買剛才,先修這還是先修那,僱多少人等。此時承包商就相當於c的編譯器。

二種情況:房主建房子,並親自實施,具體僱傭哪些人,買多少鋼材,地基打多深等,都由房主自己處理,只是很小的細節,由一些工人或小型包工頭完成。而此時,房主就相當於彙編的編譯器了。

因此,綜合看來,低階語言可以把握很細節的地方,主要用於對硬體有精密控制的領域,而c\c++等,就很高效,在短時間裡即可寫出很大的程式。但對應而言,c、c++的編譯器就比較複雜。

所謂的移植,比如我們在windows寫的一段c++文字**:

int i=0; cout《如果我們要移植到linux,只需要將這段文字複製貼上到linux的編譯器就行了。

儘管兩個系統編譯器的實現細節不一樣,但最終都是向螢幕列印出「0」

3樓:網友

主要在於編譯器的功能強大,高階語言的便以其本身就是建立在對應的機中上的,底層的東西也要用對應的彙編或機器碼搭建起來,最後組成可供高階語言編譯的環境,最為頂層的使用者是感覺不到不同機種的編譯區別的,所以高階語言移植性強。

你去對比下組合語言的編譯器與高階語言的編譯器,就會發現,高階語言編譯器遠比彙編的編譯器大好多倍。相應的其在編譯過程中會替使用者完成不少工作(其中包括,機器碼的對應關係與暫存器的存放方式)。

4樓:網友

關鍵是編譯器會將c翻譯成不同的機器語言。

所以儘管微處理器體系不同,但c是統一的。

那些電腦程式語言是不是都要有相應的硬體支援,比如組合語言要有編譯器的吧,c與c++是否也要有相應的硬體

5樓:魔術師_西索

彙編是低階語言,需要硬體支援。

c++是高階語言,不需要。

組合語言和c語言各自優缺點

6樓:紫翼魔狼

c語言編屬於高階語言,具有可移植性,能夠結構化程式設計。使用標準c語言的程式,幾乎都可以不作改變移植到不同的微機平臺上,對於嵌入式等的微控制晶元,屬於標準c語言的部分也很少需要修改,而且程式很容易讀懂。

c語言編寫程式結構清晰,移植性好,容易維護和修改。

組合語言針對不同的作業系統平臺,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是組合語言是針對專門的控制器的,所以執行速度可以精確到乙個指令週期。組合語言的程式讀懂需要藉助微控制器的指令手冊以及各個暫存器的說明,所以很難讀懂。

組合語言編寫**即時性強,能夠直接控制硬體的工作狀態,但是不具有可移植性,維護和修改困難。

c語言可移植性強具體指什麼?

7樓:匿名使用者

它是vb,vc語言的基礎型,可適用於多種語言。

8樓:網友

1、可以在任何機器上執行。

2、可以在任何作業系統上執行。

可移植性並不是指直接複製程式就可以用了,指的是不用改變**便可以在另一臺機器上編譯執行。

c語言就是一種可移植性比較強的語言用它編寫的程式可以不經修改在很多平臺上應用是什麼意思?

9樓:網友

對於這個,個人很窩火,c語言的可移植性並沒有那麼差,並且還非常高,對於c知道的太少。。。不要貶低每一種沒被淘汰的程式語言。。。

c++程式設計具有可移植性和安全性嗎

10樓:網友

c++具有很強的可移植性和安全性,乙個很常見的例子就是std::string::size_type變數,表示string的下標,詩歌usigned int,在不同的機器上有不同的範圍。

至於安全性,最常見的就是用建構函式和解構函式防止記憶體洩露。還有c++提倡的「異常安全」的思想。這種例子還有很多。

11樓:網友

當然了,c++變成具有非常強悍的可移植性和安全性,健壯。

遊戲需要較強的可移植性,為什麼可以用組合語言編寫?

12樓:

真不知道哪個遊戲用匯編寫的。

大型遊戲一般都愛用c或c++編寫 其可移植性還不錯 只要遊戲3d引擎用opengl

有些遊戲為了提高部分**執行效率 或 完成一些特定功能 會使用一部分組合語言 但不會大量應用組合語言。

13樓:獨孤冷瀠

誰和你說遊戲使用匯編寫的?遊戲一般用c或c++,大型的遊戲有專門的遊戲引擎來開發,但是彙編編寫遊戲是有心無力的。

14樓:網友

遊戲大部分在windows下執行,不需要什麼移植性,windows下的遊戲也一般不能在其他平臺上執行。

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

組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言.介於機器語言和高階語言之間的一種 什麼是彙編和組合語言?彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開...

組合語言題,組合語言題目,求詳解

al 0 cf 0 code segment assume cs code org 100h start push cs pop ds push cs pop es mov al,ah not al add al,ah inc al jc 1 mov dl,0 mov ah,2 int 21h jm...

如何學習組合語言,學習組合語言需要如何入門?

學習組合語言過程 一,要有一定的微機硬體基礎知識,因為彙編很底層,更加接近機器語言,往往很多的東西要從機器層面來支援理解。二,最好先學習一門高階語言,因為高階語言更接近人的語言,相對比較容易理解。掌握了一門高階語言後再學彙編,一來不易產生畏懼感,二來遇到問題,只能侷限於已學的彙編知識來來思考遇到的問...