關於組合語言和高階語言的問題

2025-02-07 03:00:22 字數 2859 閱讀 5355

1樓:網友

這個東西不是簡單明瞭能夠說明白的,原諒!

我們的計算機能夠執行的是一條一條用二進位數字寫成的指令,在cpu讀取這些指令時會用其內部的解碼部件把這些數字翻譯成一定的操作,從而指導計算機完成該做什麼,怎麼做的問題。

在同一架構的cpu中,機器指令是相同的,或是向下相容的。硬體工程師們在設計cpu時,綜合考慮各方面的情況,最終形成了若干條指令(就像我們所寫的程式都可以用三種基本結構寫成一樣),然後再把這若干條指令鐫刻在cpu中,用硬體部分予以實現(電子電路中能夠講到).

由於每種cpu的設計者和設計理念不同,因此,形成了各種各樣的cpu或微控制器品牌,像我們常用的pentium和amd都是屬於80x86架構的,此外還有mcs51單片,arm晶元,motorola的680x00系列等。

再說下組合語言:

由於機器指令是一串可執行的數字**,因而我們一般人是不會記也很難記住的,為了解決這個問題,所以才發明了組合語言,用助記符來代替相應的機器語言。所以組合語言與機器語言是一一對應的,cpu內部有多少條機器指令,就會相應有多少條彙編指令。

高階語言:由於組合語言只是機器語言的符號化,雖說相對簡單了,但是還是得要求人們學習相應的內部結構,對於複雜的內部結構,有很大一部分人還是無從著手的。所以就出現了高階語言,當程式設計師用高階語言指令寫完源程式後,只需用編譯器編譯就可執行了。

此時編譯器所做的工作就是把高階語言指令翻譯成組合語言(機器語言).由於每種機器對應的指令不同,所以在不同架構的機器下,就會有著不同的編譯器。

從上我們可以知道,機器語言 組合語言是基於機器的,在80x86下能夠執行的程式,放到arm下肯定沒法執行,為什麼?因為其機器結構不同,內部的硬體實現不同。所以說其移植性差。

那為什麼說高階語言移植性就好呢?是因為他不是用組合語言寫的。在80x86下用c寫了乙個程式,我們可以用mcs51下用mcs51的c編譯器進行編譯,將關鍵字翻譯成mcs51的彙編指令就可以了。

打的太多了,希望你能明白。

2樓:網友

其實很簡單,彙編-》程式,是編譯器查表,把對應的彙編**直接轉換成二進位機器碼。

高階語言-》程式,是先把高階語言**先把你寫的源**生成目標檔案。obj檔案,再連線生成程式的。

生成obj檔案其實就是根據機器的不同生成了不同的中間**。

再link連線生成應用程式的時候,才是查表生成機器碼。

也就是說,你寫c語言程式的時候,要呼叫printf在螢幕上顯示一句話,無論在哪臺機上都是寫同樣的**。

但是用匯編寫的時候,實現同樣的功能,在16位的機器裡和在32位的機器裡寫的**就不同了。

3樓:網友

組合語言只是機器語言的指令助記符,可以說是簡化了的機器語言,和機器語言是乙個級別的。當然和機器語言一樣是依賴機器的了。

高階語言那就不同了。機器無法直接識別的。

組合語言是低階語言嗎

4樓:機器

品牌型號:華為matebook d15

系統:windows 11

組合語言。是低階語言,是任何一種用於電子計算機。

微處理器、微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在不同的裝置中,組合語言對應著不同的機器語言指令集。

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

組合語言是計算機提供給使用者的最快最有效的語言,也是能夠利用計算機的所有硬體特性並能夠直接控制硬體的唯一語言。但是由於編寫和除錯組合語言程式要比高階語言。

複雜,因此目前其應用不如高階語言廣泛。

組合語言比機器語言的可讀性要好,但跟高階語言比較而言,可讀性還是較差。不過採用它編寫的程式具有儲存空間佔用少、執行速度快的特點,這些是高階語言所無法取代的。在實際應用中,是否使用組合語言,取決於具體應用要求、開發時間和質量等方面作權衡。

組合語言是高階語言嗎

5樓:爵爺

組合語言不是高階語言。

組合語言是面向機器的語言,它用一些特殊的符號表示指令。高階語言是面向使用者的語言,它是一種接近於人們使用習慣的語言,直觀,通用,與具體機器無關。一種組合語言專用於某種計算機系統結構,而不像許多高階語言,可以在不同系統平臺之間移植。

使用組合語言編寫的源**。

然後通過相應的彙編程式將它們轉換成可執行的機器**。這一過程被稱為彙編過程。

高階語言主要介紹:

高階語言具有可移植性,就是說在一種型號的機器上編寫了程式到另外的機器上一樣能夠執行。局頌悔而組合語言不具有可移植性。這是最主要的區別。

高階語言易學易懂易上手,而且容易維護。組合語言正好相反。高階語言基本上不能對硬體直接程式設計,而組合語言可以。

所以一般微控制器。

開發或者嵌入式系統。

的開發一般就選擇組合語言和語言程式設計。組合語言是一種用於電子計算機。

微處理器、微控制器或其他可程式設計器件的低階語言。

高階語言相桐正對於機器語言是一種指令集。

的體系。這種指令集,稱機器碼,是電腦的可直接解讀的資料而言。是高度封裝了的程式語言。

與櫻圓低階語言相對。

高階語言與組合語言的差異在**?

6樓:網友

高階語言可讀性、可維護性較佳;因為考慮到諸多因素,所以程式的佔用空間與執行速度 不如組合語言。另外一點,高階語言最終還是會被編譯成機器語言,這個過程都是。

編譯程式完成,這中間隱含著不少未知因素,需要注意。

組合語言相對高階語言,可讀性、可維護性低很多;不過,針對性撰寫程式,可以得到。

速度快、佔用空間小、穩定性高的結果。

假設,針對某一封閉環境撰寫程式,組合語言程式執行效率絕對高於高階語言!

組合語言和c 語言哪個更難學,組合語言和C語言,誰更難學?

組合語言和c語言哪個更難是一個見仁見智的事情,每個人都會有不同的答案,綜合而言,有以下幾個因素供參考 1 從閱讀性上看,c語言更容易理解,因此組合語言難度大些,同時接觸一個別人編制的程式,量一樣的話,肯定讀懂c語言花費的時間要少些。2 從程式設計來說,究竟哪個難就不一定了,如果對彙編瞭解深入一些,那...

組合語言問題求解,組合語言問題求解

我也是學這門課,我試試吧。本人學的不是很精通,僅供參考。1 code segmentassume cs codemov cx,offset datamov dx,offset max 用lea指令也可 專以mov ax,cx mov bx,cx 1 cmp ax,bxja loop1mov dx,b...

組合語言,急急急,組合語言問題,急急急急!!!!!!!!!

題目沒有寫完吧?將其裝換成十進位制的asc 碼形式,之後,是顯示,還是儲存,還是.組合語言問題,急急急急!你的那段是80x86的彙編.還有微控制器的彙編,思想差不多,但語言差的很多.組合語言問題,急急急!arm 的啊 我也剛學哈 組合語言問題 急急急急急急!組合語言習題,急急急!cdab adcdc...