組合語言編譯時出現如下問題,求大神告知怎麼破

2021-05-15 22:23:50 字數 5370 閱讀 5858

1樓:匿名使用者

第一沒有定義入口地址需要加org 0000h

第二,end要放在程式的末尾,不然end之後的程式段就沒有意義了。

2樓:匿名使用者

把第三行end刪掉,並且放到最後一行就ok

什麼是彙編和組合語言?

3樓:揚落

彙編語copy言是一種低階計算bai機程式語言,說"低階du"並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用於計算機開發領域,應為它是絕大多數語言的基礎.再者,它是一種面向機器的語言,即它執行與操作都與計算機硬體密切相關.

c語言是一種高階語言,它有利於人為操作,近於物件導向與面向機器之間(vb就是一種物件導向的程式語言),它的功能更加強大,可移植性高,是當今最廣泛的語言之一.

dos彙編是說組合語言的操作介面是dost系統,這也說明是彙編是更低階一些,但執行速度是其它語言無法相比的,就是可移植性較差.

4樓:匿名使用者

簡單點說是一種低階語言,c語言是高階語言,dos是老的一種作業系統,不是程式設計

5樓:忘忘忘啊

組合語言是最底層的語言。

c已經可以說是高階語言,一般認為是中級語言

6樓:匿名使用者

組合語言和

baic語言的不同在於du彙編是低階語言,zhi程式設計者直接控制dao機器硬體。專

彙編的**和機屬

器碼有關,不同的機器使用不同的彙編碼。

而不同的機器可以使用相同的c語言**,翻譯成不同的機器碼。

彙編的優勢在於,你可以控制程式的長度與速度間的平衡,而高階語言很難。

dos彙編實際上並不確切,可以理解為:

intel 8086彙編+dos中斷服務程式(一般指int 21h)相對於windows,32位彙編

但是,組合語言可能有上千種,家用電腦僅是intel 80x86彙編。

7樓:邱茗蔣和豫

就是最接近機器碼的語言,所有程式最後都要被翻譯成組合語言才能執行。

組合語言直接操作硬體,對cpu內的暫存器、運算器進行控制。

c語言和組合語言的區別是什麼?

8樓:哇哎西西

區別如下:

1、效率不同

彙編效率高,c語言效率比較低。

2、對硬體的可操控性不同

彙編對硬體的可操控性強,c語言硬體可操控性比較差。

3、**體積大小不同

彙編目標**體積小,c語言目標**體積大。

4、維護性不同

彙編不易維護,c語言容易維護。

5、可移植性不同

彙編可移植性很差,c語言可移植性很好。

9樓:哇哎西西

1、兩者編譯組成不同。組合語言是將由0、1組成的機器語言用具有簡單語義的英文**表示,而c語言不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆疊、暫存器等。

2、兩者被計算機識別的路徑不同。組合語言通常用於對硬體的直接操控。而且c語言所編制的程式不能直接被計算機識別,必須經過轉換才能被執行。

3、兩者用處不同。組合語言通常用在程式中最核心的、控制硬體的**,一方面是安全,另一方面提高執行速度。而c語言通常用在計算機外用功能上。

10樓:會飛的小兔子

1、操作複雜程度的不同

c語言,與組合語言相比,c語言在更加接近人的一般思維,因此在程式的設計過程中比較容易操作,此外在進行一些複雜的操作,運算時,c語言比彙編就要簡單很多,尤其是c語言中的豐富的函式庫,可以直接實現一些原本很複雜的功能,並且從**量來說任意一個c語言程式,通過反彙編之後變成組合語言程式,其長度都可能要增加好幾倍。

2、使用範圍的不同

c語言程式的事件將會只是編寫組合語言程式的幾分之一,從編寫程式的效率上來說c語言無疑更高,此外c語言是高階程式語言因此可移植性較好,不太受到到硬體裝置的限制。

在實現一個功能時,組合語言可以直接奔著目標去,而c語言則是給你提供了一種對於對於這種問題的普遍處理辦法,不具有針對性,因此會有許多多餘的在這個問題中不需要的過程,因此可能回事程式較大,執行較慢。相對與組合語言,c語言更加適合一些較大型專案的開發。

3、執行的速度和效率不同

程式沒有了組合語言計算機直接就無法執行,因為組合語言是基於計算機底層硬體的程式設計,通過它實現了對cpu,記憶體,硬碟以及外界裝置的直接操作,因為直接所以組合語言在程式的大小,執行的速度與效率方面幾乎無可比擬,但是也是因為直接,所以彙編程式難以移植,且完成相同的操作**量太大,在進行一些大的專案是,單獨使用匯編進行程式設計幾乎不可能實現。

11樓:雄鷹耀

c語言和組合語言的指令集、定址方式不同,相當於兩個機器各有各的操作方式。第一、

組合語言是低階語言,在編寫程式的時候會把根據不同的情況指定使用不同的定址方式,能夠對記憶體和cpu裡的通用暫存器直接操縱。不同的計算機系列會有不同的組合語言;而c語言是高階語言,可以實現跨平臺。編寫程式無需指定cpu的指令執**況,一段程式可以在不同體系結構的計算機上使用。

第二、c語言是一種比較高階的語言,作者可以直接命令計算機在不考慮硬體的情況下實現這種控制效果。組合語言是語言對硬體的直接控制,硬體間接實現了一定的控制效果。換句話說,組合語言更關注描述過程,而高階語言(比如c)更側重於描述結果。

第三、例如,組合語言中變數的賦值語句是mov a b,可以解釋為將暫存器中的值複製到b暫存器。在c語言中,b=a直接表示,這被解釋為使b=一個由柵極電路組成的晶片。有一個斷點,對應於計算機**中的二進位制1或0。

第四、如果您有一個直接的人機對話,您只能輸入包含0和1的**來進行通訊。這段**太長,很難記住。因此人們想出了一種相互協議的方式,人們可以很容易地閱讀特定的方式來表達特定的計算機**,然後翻譯成計算機可以直接讀取二進位制**的表示式。

這樣一組方便的表示式被稱為計算機語言。

12樓:匿名使用者

組合語言屬低階語言,而c語言是高階語言,所謂高階語言就是更容易被人們理解的語言,其實組合語言能實現的功能往往也能通過c語言來實現,甚至用c語言會更簡單,但是組合語言有一個優勢是其他任何語言所不具備的,這也是為什麼組合語言一直能在程式設計中佔有一席之地,那就是組合語言對硬體的直接控制,也就是說他能直接對硬體操作,可以繞過作業系統等等之類。雖然有的領域其他程式設計也能實現,但是在很多地方往往是組合語言能更加簡單,更加完美的完成。而且學好了組合語言你就能對cpu是怎麼工作的有了清晰的認識,所以學計算機專業的一般都會學組合語言。

13樓:匿名使用者

c語言是高階語言,可移植性較高,與裝置相關性較低。

組合語言是低階語言,可以移植性較低,與cpu具有極強的相關性。

14樓:匿名使用者

組合語言是用語言直接控制硬體,由硬體間接達到某種控制效果。而c語言是一種比較高階的語言,編寫者可以不用去考慮硬體而直接去命令計算機達到這種控制效果。換而言之,組合語言對描述過程更注重,c語言之類的高階語言更注重描述結果。

例如組合語言中變數的賦值語句為 mov a b 可以解釋為將a暫存器中的值複製至b暫存器。而c語言中直接表示為 b=a,解釋為使b=a 晶片都是由閘電路構成。門有通有斷,對應在計算機**裡是二進位制的1或0。

如果直接進行人機對話,只能輸入由0和1組成的**才能交流。這樣的**太長,而且難記。所以人們想出一個辦法,相互約定,用人們易讀懂的特定表達方式去表達特定的計算機**,再將此表達方式翻譯成計算機能直接讀懂的二進位制**。

這樣的一套方便人們表達的表達方式被稱為計算機語言。

15樓:沙裡波特

語言又是怎麼回事?

------

語言是怎麼回事,你都不懂?

那麼,你還是別來瞎問了。

大家都告訴你「c和彙編的區別」了,你肯定還是弄不懂。

16樓:柱子小柱子

1.組合語言實質上是機器語言的助記符。 cpu只能執行它所支援的指令集,而這些指令集當中的每條指令都是一些二進位制數的序列,也就是「0」和「1」的有序組合;「0」和「1」的組合不便於程式設計師的記憶因此有了「mov a 0x40」等這樣的助記符。

2.c語言編寫完程式後,需要通過編譯器將c語言編譯成與相應cpu指令集對應的機器語言。組合語言與機器語言是一一對應的。

c語言的語法是固定的,c語言編寫的程式要編譯成cpu能讀懂的機器語言指令沒辦法一一對應,因此需要有編譯規則了,所以執行效率低一些。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

組合語言是彙編指令集、偽指令集和使用它們規則的統稱,使用具有一定含義的符號為助憶符,用指令助憶符、符號地址等組成的符號指令稱為彙編格式指令。

組合語言是一門重要的程式設計語言。下面列舉了至少4本名叫《組合語言》的圖書和教材,並簡要介紹了高校計算機相關專業在開設「組合語言」課程方面的一些情況。

17樓:蓋辜苟

c語言和組合語言的區別在於他們之間優缺點幾乎是相反的。

c語言和組合語言的優缺點:以c來舉例

優點:c的執行效率高;

c可以實現硬體的直接訪問;

c**的移植性好;

缺點:c的**複用性差;

c的**維護性差;

c的擴充套件性差,即如果想增加新功能,需要修改較多的**;

c語言的可讀性差;

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言;儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

組合語言:是一種用於電子計算機、微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用助記符(mnemonics)代替機器指令的操作碼,用地址符號(symbol)或標號(label)代替指令或運算元的地址。

在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。普遍地說,特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。

c和彙編的選擇:

若只有較簡單的邏輯操作、邏輯演算法、簡單運算,使用匯編會得到較為精準的**,但用c也同樣可以做到。

若摻有複雜運算、浮點運算、非線性方程等,彙編恐怕無能為力了(最起碼難度很大)。

微控制器種類繁多,各自的彙編語法大都不一樣,若僅使用匯編,可擴充性、可移植性都很差,用c就會好的多。

組合語言程序,組合語言程式

變數名 str1 str1 str1 str2 str2 str2 numb numb 偏移地址 0000h 0001h 0002h 0003h 0004h 0005h 0006h 0007h 單後設資料 00h 01h 02h 48h 49h 4ah 00h 00h 變數名 numb numw n...

組合語言中csdsss的區別,組合語言中 cs ds ss的區別是什麼?

cs ds ss 分別是 段暫存器 資料段暫存器 棧段暫存器。簡單的8086彙編程式可以直接使用系統棧 或者預設的棧 所以 可以不用 ss 暫存器。即簡單的程式通常包括一個 段和一個資料段。資料通常放在資料段中,一般只需在程式的開始對資料段暫存器ds賦值 mov ax,seg data mov ds...

組合語言程式設計,組合語言程式設計步驟 有那幾步

申請記憶體 輸入數字 設定一個變數,初始是0 將接收的數字分別寫到3個申請的記憶體中,然後分別比較,符合條件修改這個變數。輸出回到dos 組合語言程式設計步驟 有那幾步 組合語言程式設計步驟 1 分析問題,抽象出描述問題的資料模型 2 確定問題的演算法思想 3 畫出流程圖或結構圖 4 分配儲存器和工...