① 請問各位能人:c語言和匯編語言有啥聯系比如先學c再學匯編好,還是先學匯編再學c
兩者之間沒有什麼聯系,第一代C語言就是用匯編寫的。匯編是比C語言低級的語言。現在已經很少有人能夠掌握它了。C語言是其它語言的基礎。它是面向過程的語言。學好了C,以後學習其它語言就很容易了。linux下的編程主要用的還是c語言。在windows下,現在主要是用面向對像語言,如java,c++。但這兩個語言都與c語言有著千絲萬縷的關系
② 為什麼不用匯編語言編寫程序而發展為用c語言來編寫程序呢 程序設計的任務有哪些
1、提高編程的效率。匯編語言是低級語言,編製程序的過程漫長,不易掌握,使用者稀少。而c語言正好相反。
2、程序設計的任務:弄清問題,提出解決方案,畫出程序框圖,轉換成程序,上機調試運行。
③ 為什麼要C和匯編混合編程
依我的看法,上面兩位說的都不對:
一樓:匯編語言是低級語言直接往硬體的寄存器里寫入東西:
其實C語言和匯編語言都一樣,都會編譯成二進制文件機器語言燒錄到單片機中,所以沒有一樓所說的區別
二樓:在C中也不會有數據損失的,如果你定義好數據類型的話。
單片機中是將C編譯成匯編,然後根據匯編編譯成機器語言---可執行文件;
其實單片機中經常在C中嵌入匯編,主要是因為時間的關系,因為一條匯編語言執行的時間都是可以知道的,而C指令執行的時間是不可知的,因為C編譯器不一樣,編譯後的匯編也是不一樣的,如果用匯編就不會有這種情況。所以在一些精確延時的場合,要嵌入匯編
另外,C的可移植性較強,不同的單片機里,功能要求相同的可以直接拿去用
總之,匯編是程序員可以自己翻譯成機器語言的,所以單片機的運行是可以完全掌握的
④ 單片機是否經常要使用到C語言與匯編語言的混合編程
一般是不需要的。因為隨著現在單片機時鍾頻率越來越高,那麼細微的差別基本可不要考慮了。況且,現在的單片機的編譯軟體,會自動對程序代碼優化。如果你對匯編不是特別在行的話,可能用匯編的效果,還不如用C語言編寫後軟體自動優化來得好!呵呵~
⑤ 51單片機編程時匯編和C語言如何結合
c語言和匯編語言之間主要存在:相互調用、混合編程等關系,舉例來說吧:
1、C語言調用匯編子程序
此時,匯編子程序需要申明為外部程序
#include<reg51.h>
extern void delay(void)
sbit pluse=P1^0;
main()
{
while(1)
{
pluse=0;
delay();
pluse=1;
delay();
}
}
匯編子程序:
匯編部分需要做如此處理。
PUBLIC DELAY
DELAY SEGMENT CODE
RSEG DELAY
DELAY:
MOV R2,#250
DJNZ R2,$
RET
END
2:C語言中嵌入匯編,這個比較簡單用宏指令包含進來就可以實現。
void delay(void)
{
#pragma asm
mov r2,#250
djnz r2,$
#pragma endasm
}
⑥ 剛學匯編,我發現C語言和匯編比較相近,他們之間有什麼關系嗎
C極為強大,有的人覺得可以歸為高級語言。匯編相對來說是機器語言上面一層的,比C低一點。但是C語言的運行效率遠不如匯編語言編寫的程序運行效率高。嵌入式開發里有時C與匯編混合編程。可以兩個一起學,加深理解
⑦ 單片機 一般什麼情況下會用到 匯編語言和C語言的混合編程
一般很少用到的吧,匯編編程的時間代價太高,除非是特殊段的代碼需要特別優化,採用匯編編程可能起到好的效果。
但是一般人的水平估計用匯編也不會,別說用匯編優化了。
現在C的執行效率已經非常高了,不建議花太多時間搞匯編。。。
當然你是大神的話,前面的就全部忽略吧。
⑧ c語言和匯編語言的混合編程方法主要有哪些
C語言在實際應用中,為了完成某種特定的功能,或需要縮短程序的運行時間,或需要對硬體進行專直接操作屬,或需要利用操作系統的某些功能模塊,這時就會使用到匯編語言程序,即要採用C語言與匯編語言的混合編程技術實現。
C與匯編語言的混合編程方法,為C語言應用開發人員提供方便。匯編語言開發的程序代碼短、執行速度快,而C語言是應用廣泛的面向過程的開發語言。通過給出混合編程的方法、約定規則以及實現的具體步驟,說明了混合編程需要注意的問題,最後給出了相應的實例。
(8)為什麼要匯編和c語言混合編程擴展閱讀:
匯編語言具有更高的機器相關性,更加便於記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。匯編語言仍是面向機器的語言,很難從其代碼上理解程序設計意圖,設計出來的程序不易被移植,故不像其他大多數的高級計算機語言一樣被廣泛應用。所以在高級語言高度發展的今天,它通常被用在底層,通常是程序優化或硬體操作的場合。