在很多年以前,單片機開發用的是匯編語言,在燒寫單片機之前要自己對照"單片機機器語言表"將自己的程序翻譯成"機器語言",全是數字串,那是鐘痛苦,現在都有編譯軟件搞定了,比如妳用keil,編譯之後,點仿真,就能看見對應的匯編語句和機器語句,機器語句在單片機數據手冊上有對應的碼.
問題2.不是所有的單片機都支持位運算,比如51支持位運算,在C語言中如果妳定義了有關位的運算,編譯器在"翻譯"的時候就會翻譯成對應的機器語言,這時由於51支持為運算,生成的代碼就少.如果使用了不支持位運算的單片機,那麽編譯器就會使用其他方法實現妳定義的運算,相對之下代碼要多壹些,可能要用很多條語句才能完成.
標準的C語言本來是不支持位定義的,只能用位域的方式定義,像"bit"這樣的定義是keil中擴展出來專門為像51這樣的支持位定義的單片機使用的,這樣的C語言叫做非標準C,keil中使用的C語言叫做 keil C語言,
之所以使用C來開發是為了方便,之所以在開發中允許使用位定義,是因為兼容(因為51支持)
使用C語言來開發,就去盡情的發揮C語言的優點,這些語言是怎麽轉化到單片機中的,就是編譯器的事情了.
記住"只要支持就去用,這就是優化"
但這種優化的程序不方便移植.
看不懂給我留言