當前位置:首頁 » 電腦資訊 » 啟動文件為什麼要用匯編語言

啟動文件為什麼要用匯編語言

發布時間: 2022-09-18 16:22:55

❶ ARM7的啟動代碼文件中怎麼沒有像單片機的reg52.h這樣的寄存器地址定義的頭文件

啟動代碼是用匯編語言寫的,其速度和效果相當快,而「X.H"文件是頭文件,是為C語言服務的,自然匯編語言不能用X.H文件。

❷ 匯編語言與C C++ C# VB等語言有什麼區別主要面向作用什麼

匯編語言(AssemblyLanguage)是面向機器的程序設計語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。於是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。中國著名計算機科學教育家王爽寫過一本名叫《匯編語言》的書。匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬體特性並能直接控制硬體的語言。匯編語言,作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬體精確控制的程序。
大多數情況下Linux程序員不需要使用匯編語言,因為即便是硬體驅動這樣的底層程序在Linux操作系統中也可以用完全用C語言來實現,再加上GCC這一優秀的編譯器目前已經能夠對最終生成的代碼進行很好的優化,的確有足夠的理由讓我們可以暫時將匯編語言拋在一邊了。但實際情況是Linux程序員有時還是需要使用匯編,或者不得不使用匯編,理由很簡單:精簡、高效和libc無關性。假設要移植Linux到某一特定的嵌入式硬體環境下,首先必然面臨如何減少系統大小、提高執行效率等問題,此時或許只有匯編語言能幫上忙了。
優點與缺點
優點
匯編語言直接同計算機的底層軟體甚至硬體進行交互,它具有如下一些優點:
(1)能夠直接訪問與硬體相關的存儲器或I/O埠;
(2)能夠不受編譯器的限制,對生成的二進制代碼進行完全的控制;
(3)能夠對關鍵代碼進行更准確的控制,避免因線程共同訪問或者硬體設備共享引起的死鎖;
(4)能夠根據特定的應用對代碼做最佳的優化,提高運行速度;
(5)能夠最大限度地發揮硬體的功能。
缺點
同時還應該認識到,匯編語言是一種層次非常低的語言,它僅僅高於直接手工編寫二進制的機器指令碼,因此不可避免地存在一些缺點:
(1)編寫的代碼非常難懂,不好維護;
(2)很容易產生bug,難於調試;
(3)只能針對特定的體系結構和處理器進行優化;
(4)開發效率很低,時間長且單調。
特點
匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
匯編語言的特點:
1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2.保持了機器語言的優點,具有直接和簡捷的特點。
3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。
4.目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。
5.經常與高級語言配合使用,應用十分廣泛。
對於不同型號的計算機,有著不同的結構的匯編語言
匯編語言由於採用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。
匯編語言是面向具體機型的,它離不開具體計算機的指令系統,因此,對於不同型號的計算機,有著不同的結構的匯編語言,而且,對於同一問題所編制的匯編語言程序在不同種類的計算機間是互不相通的。
匯編語言中由於使用了助記符號,用匯編語言編制的程序輸入計算機,計算機不能象用機器語言編寫的程序一樣直接識別和執行,必須通過預先放入計算機的"匯編程序"中進行加工和翻譯,才能變成能夠被計算機直接識別和處理的二進制代碼程序。用匯編語言等非機器語言書寫好的符號程序稱為源程序,運行時匯編程序要將源程序翻譯成目標程序。目標程序是機器語言程序,當它被安置在內存的預定位置上,就能被計算機的CPU處理和執行。
匯編語言像機器指令一樣,是硬體操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,匯編語言用來編制系統軟體和過程式控制制軟體,其目標程序佔用內存空間少,運行速度快,有著高級語言不可替代的用途。
應用
匯編語言作為最基本的編程語言之一,匯編語言雖然應用的范圍不算很廣,但重要性卻勿庸置疑,因為它能夠完成許多其它語言所無法完成的功能。就拿Linux內核來講,雖然絕大部分代碼是用
C語言編寫的,但仍然不可避免地在某些關鍵地方使用了匯編代碼,其中主要是在Linux的啟動部分。由於這部分代碼與硬體的關系非常密切,即使是C語言也會有些力不從心,而匯編語言則能夠很好揚長避短,最大限度地發揮硬體的性能。
1.70%以上的系統軟體是用匯編語言編寫的。
2.某些快速處理、位處理、訪問硬體設備等高效程序是用匯編語言編寫的。
3.某些高級繪圖程序、視頻游戲程序是用匯編語言編寫的。
匯編語言是理解整個計算機系統的最佳起點和最有效途徑,人們經常認為匯編語言的應用范圍很小,而忽視它的重要性。其實匯編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。所有程序,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運行於下。匯編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐應用基礎。學習匯編語言,向上可以理解軟體,向下能夠感知硬體,是我們理解整個計算機系統的最佳起點。

❸ Linux的內核引導啟動程序為什麼用匯編語言編寫

其他語言需要內存空間 比如棧 堆 等 所以跑不起來
匯編不需要 所以被用來引導啟動 其過程還包括了 分配內存空間

❹ 匯編語言是低級語言,學它有什麼用

匯編語言由於採用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器並較好地發揮機器的特性,得到質量較高的程序。


匯編語言像機器指令一樣,是硬體操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,匯編語言用來編制系統軟體和過程式控制制軟體,其目標程序佔用內存空間少,運行速度快,有著高級語言不可替代的用途。

❺ ARM的啟動代碼為什麼要用匯編語言

因為C語言執行之前,需要先設置好堆棧指針。
說以只有先用匯編,設置了堆棧指針之後才能調用C函數,這樣C函數才能執行。

❻ 匯編語言有什麼用處

匯編語言(Assembly Language)是面向機器的程序設計語言.匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬體特性並能直接控制硬體的語言。匯編語言」作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM, TASM等等為我們寫匯編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬體精確控制的程序。
在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。
使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編語言把匯編程序翻譯成機器語言的過程稱為匯編。
匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。
匯編語言的特點:
1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。
2.保持了機器語言的優點,具有直接和簡捷的特點。
3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。
4.目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。
5.經常與高級語言配合使用,應用十分廣泛。
匯編語言的應用:
1.70%以上的系統軟體是用匯編語言編寫的。
2.某些快速處理、位處理、訪問硬體設備等高效程序是用匯編語言編寫的。
3.某些高級繪圖程序、視頻游戲程序是用匯編語言編寫的。

❼ 什麼是匯編語言 計算機編程語言有哪些

匯編語言(Assembly Language)是面向機器的程序設計語言.匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬體特性並能直接控制硬體的語言。匯編語言」作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。高級的匯編器如MASM, TASM等等為我們寫匯編程序提供了很多類似於高級語言的特徵,比如結構化、抽象等。在這樣的環境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同於高級語言。現在的匯編環境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在於編寫高效且需要對機器硬體精確控制的程序。 在匯編語言中,用助記符(Mnemonic)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。因此匯編語言亦稱為符號語言。 使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理系統軟體。匯編語言編譯器把匯編程序翻譯成機器語言的過程稱為匯編。 匯編語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫復雜程序時,相對高級語言代碼量較大,而且匯編語言依賴於具體的處理器體系結構,不能通用,因此不能直接在不同處理器體系結構之間移植。 匯編語言的特點: 1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。 2.保持了機器語言的優點,具有直接和簡捷的特點。 3.可有效地訪問、控制計算機的各種硬體設備,如磁碟、存儲器、CPU、I/O埠等。 4.目標代碼簡短,佔用內存少,執行速度快,是高效的程序設計語言。 5.經常與高級語言配合使用,應用十分廣泛。 匯編語言的應用: 1.70%以上的系統軟體是用匯編語言編寫的。 2.某些快速處理、位處理、訪問硬體設備等高效程序是用匯編語言編寫的。 3.某些高級繪圖程序、視頻游戲程序是用匯編語言編寫的。 匯編語言是我們理解整個計算機系統的最佳起點和最有效途徑 人們經常認為匯編語言的應用范圍很小,而忽視它的重要性。其實匯編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。 所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。 所有程序,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。 機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運行於下。 匯編語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐應用基礎。 學習匯編語言,向上可以理解軟體,向下能夠感知硬體,是我們理解整個計算機系統的最佳起點和最有效途徑

❽ 為什麼 計算機操作系統 底層介面 要用匯編編寫

電腦是由硬體和軟體組成的,缺了任何一樣都無法運行。我們對電腦進行操作,都是利用操作系統來完成。最初的電腦沒有操作系統,人們通過各種操作按鈕來控制計算機,後來出現了匯編語言,並將它的編譯器內置到電腦中,操作人員通過有孔的紙帶將程序輸入電腦進行編譯。這些將語言內置的電腦只能由操作人員自己編寫程序來運行,不利於設備、程序的共用。為了解決這種問題,就出現了操作系統,這樣就可以實現了程序的共用,以及對計算機硬體資源的管理,使人們可以從更高層次對電腦進行操作,而不用關心其底層的運作。 操作系統是現代電腦必不可少的系統軟體,是電腦的靈魂所在。現代的電腦都是通過操作系統來解釋人們的命令,從而達到控制電腦的目的。幾乎所有的應用程序也是基於操作系統的。 一、操作系統誕生——盤古開天地 最初的操作系統出現在IBM/漆0四大型機上,而微型計算機的操作系統則誕生於二0世紀漆0年代——CP/M。 CP/M是加里.基爾達爾領導的Digisat Reseach公司為吧位機開發的操作系統,它能夠進行文件管理,具有磁碟驅動裝置,可以控制磁碟的輸入輸出、顯示器的顯示,以及列印的輸出,它是當時操作系統的標准。 二、操作系統遠古霸主——DOS DOS似乎只有現在的老鳥有過接觸,新學電腦的人對DOS只是一知半解。它曾經佔領了個人電腦操作系統領域的大部分,全球絕大多數電腦上都能看到它的身影。由於DOS系統並不需要十分強勁的硬體系統來支持,所以從商業用戶到家庭用戶都能使用。雖然用現在的眼光看它不是出色的操作系統,但微軟軟體向下兼容的特點,決定了Windows出問題的時候,很多時候需要在DOS下才能得到解決,因此了解與學習DOS還是很有必要的。點擊了解DOS操作系統…… 三、操作系統當代大亨——Windows 從微軟一9吧5年推出Windows 一.0以來,Windows系統經歷了十多年風風雨雨。從最初運行在DOS下的Windows 三.x,到現在風靡全球的Windows 9x、Windows 二000,Windows幾乎代替了DOS曾經擔當的位子,成為了新一帶的操作系統大亨。其普及性也就不用小編多言了。點擊了解Windows操作系統…… 四、誘人的小企鵝——Linux Linux是目前十分火爆的操作系統。它是由芬蘭赫爾辛基大學的一個大學生Linus B. Torvolds在一99一年首次編寫的。標志性圖標是一個可愛的小企鵝。由於其源代碼的免費開放,使其在很多高級應用中佔有很大市場。這也被業界視為打破微軟Windows壟斷的希望。點擊了解Linux操作系統…… 五、神奇的精靈——FreeBSD FreeBSD是一種運行在x吧陸平台下的類Unix系統。它以一個神話中的小精靈作為標志,由BSD Unix系統發展而來,加州伯克利學校(Berkeley)編寫,第一個版本由一99三年正式推出。BSD Unix和Unix System V是Unix操作系統的兩大主流,以後的Unix系統都是這兩種系統的衍生產品。這款操作系統主要應用於中國絡伺服器端,不太適合個人用戶。點擊了解FreeBSD操作系統…… 六、多才多藝的藝術大師——BeOS 如果說Windows是現代辦公軟體的世界,Unix是中國絡的天下,那BeOS就稱得上是多媒體大師的天堂了。BeOS以其出色的多媒體功能而聞名,它在多媒體製作、編輯、播放方面都得心應手,因此吸引了不少多媒體愛好者加入到BeOS陣營。由於BeOS的設計十分適合進行多媒體開發,所以不少製作人都採用BeOS作為他們的操作平台。點擊了解BeOS操作系統…… 七、總結 看完以上內容,我相信大家對個人電腦上的幾種常見操作系統已有比較詳細的了解了吧。在增加知識的同時,大家快去選擇一款最適合自己的操作系統吧

❾ 單片機編程用匯編好還是C語言好

單片機編程,C語言編程但很好。

大致分成三類:機器語言、匯編語言、高級語言。機器語言由於繁瑣容易出錯,大部分用戶已經不再便用。

1.單片機匯編語言

匯編語言是一種符號語言,它使用文字助記符來表示機器指令。它是最接近機器代碼的語言。它的主要優點是佔用資源少,程序執行效率高。由於每條指令對應於一個機器碼,所以每一步的執行都非常清楚。

並且程序的大小和棧調用都易於控制,調試也更加方便。但是不同類型的單片機,其匯編語言可能會有一點不同,所以移植起來並不容易,因為它們的指令系統是不同的。但掌握匯編語言可以幫助我們理解影響四川語學習效率的特殊規律。

例如,了解匯編語言指令可以讓您使用晶元內ram作為變數,因為晶元外變數需要多個指令來設置訪問的累加器和數據指針。

類似地,只有匯編編程經驗才能防止在需要浮點數和啟用函數時創建大型、低效的程序,這在沒有匯編語言的情況下是無法做到的。

2.單片機的C語言

MCUC語言是一種經過編譯的程序設計語言,它兼顧了多種高級語言的特點,具有匯編語言的功能。C語言具有豐富的庫函數,計算速度快,編譯效率高,可移植性好,並能實現對系統硬體的直接控制。

此外C語言程序具有完整的程序模塊結構,為軟體開發中的模塊化編程方法提供了強有力的保證。與組裝相比,具有以下優點:

MCU的指令系統不需要知道,只需要對51的內存結構有一個初步的了解,對於寄存器的分配,不同的內存定址和數據類型等細節都由編譯器來管理。程序有一個正式的結構,可以分為不同的功能。這使得程序可以結構化,結合變數選擇和特殊操作,並提高程序的可讀性。

大大減少了編程和調試時間,從而提高了效率。所提供的庫包含許多具有強大數據處理能力的標准子常式,由於其方便的模塊化編程技術,可以很容易地將這些子常式編程到新程序中。

功能強大靈活,庫中包含了很多標準的子程序,具有較強的數據處理能力,可以方便地編程植入新的程序,因為它具有方便的模塊化編程技術。

MCUC語言作為一種非常方便的語言而得到了廣泛的支持,(語言程序本身不依賴於機器硬體系統,基本上不根據單片機的修改就可以將U的不同之處快速移植過來。)

利用單片機c語言進行編程,已經成為單片機軟體開發的主流,作為一門綜合性的技術和參與開發的大型軟體系統,單片機開發人員最好能夠掌握基本的c語言編程。

(9)啟動文件為什麼要用匯編語言擴展閱讀:

SCM語言

MCU支持三種高級語言,即PL/M、C和BASIC。C語言是一種通用的編程語言,其碼率高,數據類型和運算符豐富,並具有良好的程序結構,適用於各種應用程序的設計,是一種廣泛應用的單片機編程語言。

單片機的C語言採用C51編譯器(簡稱C51)。C51生成的目標代碼短小、快速、存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,可與A51匯編語言或PL/M51語言目標代碼混合使用

❿ 操作系統編程是不是必須使用匯編語言或者機器語言

1、大部分是用C語言寫成的;
2、少量匯編;微處理器內核中的某些寄存器,如部分控制寄存器、狀態寄存器是不提供C函數介面的,還有對於多任務的操作系統,任務之間切換時,需要將部分寄存器和資源入棧(棧是內存中的一部分,具有特殊的數據結構),然後從棧中將即將執行的任務恢復到寄存器組中,這部分代碼對時效性要求極高,以及任務之間切換的時候不允許中斷...;這種情況下使用匯編是最好不過的。
3、推薦
好書:《深入理解計算機系統》、《數字設計和計算機體系結構》,都是外國人寫的。
簡單的便於研究的操作系統:uCos III,其中.s結尾的就是匯編文件。

熱點內容
為什麼別的充電器蘋果充不進去電 發布:2024-06-16 13:10:24 瀏覽:616
快充線為什麼這么便宜 發布:2024-06-16 12:57:35 瀏覽:917
快手為什麼比官方便宜 發布:2024-06-16 12:56:32 瀏覽:970
為什麼包拯一直瞪著眼睛 發布:2024-06-16 12:51:59 瀏覽:568
煮熟的蘋果為什麼變色 發布:2024-06-16 12:33:45 瀏覽:552
電腦上的文件為什麼很卡 發布:2024-06-16 11:31:09 瀏覽:207
為什麼不偷其他東西 發布:2024-06-16 11:27:02 瀏覽:737
為什麼蘋果手機隔空投送會中斷 發布:2024-06-16 10:33:41 瀏覽:467
淘寶界面為什麼會有天貓 發布:2024-06-16 10:16:01 瀏覽:607
為什麼蘋果耳機介面發熱 發布:2024-06-16 10:09:37 瀏覽:501