c51經過編譯還是匯編運行
Ⅰ 主流C51單片機編譯器比對
int short 的大小是因機器而異嘛(准確點應該是編譯器)。你都說了人家規定的是「最小」為16位,又不是只能是16位,也沒有說兩者應該相等(事實上是short不超過int就OK啦)。所以當然可以short類型為半個機器字長,而int類型則為一個機器字長的啦。
「C++標准規定了每個算術類型的最小存儲空間,但他並不自知編譯器使用更大的存儲空間 」
說簡單點就是C++規定了個最小的值,但是將你的代碼編譯成機器碼的編譯器則確定了你這個長度值為多少。因為C++是一種語言,一個規范,或者說只是一種規定,然後要將你按這種規范寫的代碼編譯成能在機器上運行的代碼的是編譯器。而在不同的機器上運行的程序的實際結構是不一樣的,比如單片機與PC相差就很大。要將按相同規范寫的程序在各種各樣亂七八糟的機器上運行,就需要相應的編譯器了。所以實際的大小是由你編譯代碼的編譯器確定的。
PS:當然當前一般的PC上int都是32位,short16位的。因為現在32位的機子是主流嘛。如果你不寫什麼單片機的程序可以不用太在意這個問題。但是寫單片機程序時就要注意了,因為一般一個單片機的編譯器可以編譯很多種型號晶元的代碼,而這些型號有可能從8位到32位都有……
Ⅱ C51單片機用的是C語言還是匯編語言謝謝
兩種語言都可以,因為最後燒寫到晶元中的是二進制文件,該二進制文件由編輯器(如KEIL)編譯連接C語言源碼,或者匯編語言源碼獲得
Ⅲ Keil科普教程 | Keil C51 和 MDK 的區別
Keil C51 和 MDK 之間的區別詳解
有用戶詢問Keil C51 和 MDK 的區別,讓我們來詳細解析一下。
Keil是一個公司名,也開發了一系列集成開發環境(IDE),包括MDK、C51、C251和C166。要了解更多關於Keil的歷史和分類,可以查閱相關文章。
C51 和 MDK 的異同
盡管Keil是一個總稱,C51和MDK針對的是不同類型的單片機。
- 名稱差異:早期C51被稱為PK51,而MDK則為Realview MDK,強調針對不同內核。
- MCU類型:C51專注於51內核如AT89C51和STC89C51,而MDK,即MDK-ARM,適用於ARM內核如STM32F1和LPC1788。
- 編譯器:C51使用ANSI C編譯器,而MDK使用ARM Compiler,導致對應的匯編器和鏈接器也不同。
- 組件支持:盡管兩者都支持中間組件如GUI和RTOS,但MDK支持的組件更廣泛。
相同點
盡管C51和MDK是獨立產品,但它們共享了uVision開發環境,界面和基本操作相似。並且,兩者都是收費軟體,部分版本提供免費下載。
以上就是關於Keil C51 和 MDK 基本差異的介紹,更多詳情請期待下期分享。想深入了解的觀眾,可以觀看相關視頻教程。
Ⅳ c51單片機問題C語言
單片機支持匯編編程的C51編程。
1、匯編編程,傳統的匯編代碼。缺點:可讀性不強,優點:代碼精簡
2、C51編程,使用專用C語言編程。缺點:代碼不精簡,優點:可讀性強。
KeilC和IAR等編譯軟體,同時支持C51和匯編代碼。
Ⅳ 單片機用什麼語言編寫程序
一般是C語言或者匯編語言。
1、大多數情況下,單片機運行的程序,都是C語言編寫的。不過並不是純粹的傳統C語言,而是變種後的C51語言。
單片機C51語言是由C語言繼承而來的。和C語言不同的是,C51語言運行於單片機平台,而C語言則運行於普通的桌面平台。C51語言具有C語言結構清晰的優點,便於學習,同時具有匯編語言的硬體操作能力。對於具有C語言編程基礎的工程師,能夠輕松地掌握單片機C51語言的程序設計。
2、匯編語言:
匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
匯編語言不像其他大多數的程序設計語言一樣被廣泛用於程序設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。
在一些情況下,C51並不能完美的實現功能,所以匯編語言是對C51的一個重要補充。一般來說,啟動部分(基礎硬體的初始化),往往是由匯編語言完成的。除此以外,一些要求時效性特別強,效率要求特別高時,也需要使用匯編語言完成。