標(biāo)題: 高級語言c [打印本頁]

作者: 51黑tt    時(shí)間: 2016-3-6 02:52
標(biāo)題: 高級語言c
       long  long ago ,對于計(jì)算機(jī)而言,大部分是數(shù)學(xué)家在玩,與數(shù)字打交道,那時(shí)候是用01代碼編寫程序,terrible,有人發(fā)現(xiàn)這樣不行呀,01代碼沒有什么規(guī)律,記不住,所以有人想到,把01代碼總結(jié)成匯編語言,這樣為了方便人家記憶,提高編程效率,但是對于每種cpu而言,匯編語言都不一樣,都煩呀。。例如intel 的奔騰系列,AMD的cpu,intel還有其他的系列cpu,01代碼對應(yīng)的功能不一樣,所以匯編語言也不一樣,以我知道的為例。arm7,和51cpu匯編語言那是相差很遠(yuǎn)呀。。。完全不是一回事。arm7.arm9,arm11的匯編也不完全相同,也有差別,也要找到差別,哎、。、、剛才arm7和51,不形象,arm7和8086.夠形象吧。。。如果從8086匯編程序員轉(zhuǎn)到arm匯編程序員上,那完全是干另一件事呀。。。所以,01代碼和匯編語言都叫底層語言,機(jī)器語言。。
        高級語言呢。。例如c語言,它是怎么運(yùn)行的了。也就是我個(gè)人的理解,例如你在IDE中寫一個(gè)c程序,IDE中包含了編譯器和編輯器,你點(diǎn)擊編譯按鈕,編譯器會把c語言編譯成bin(0,1)代碼,我估計(jì)的::編譯器有下列步驟
1.預(yù)處理  #include<stdio.h>    #ifdef   #endif   and so on
2. 編譯   把c/c++代碼翻譯成匯編語言。   (這個(gè)匯編語言是對應(yīng)平臺的匯編語言 平臺指對應(yīng)操作系統(tǒng)和cpu,對于pc機(jī),cpu就那么幾種,系統(tǒng)也是那么幾種了,例如你的pc機(jī)是xp,intelcpu ,編譯器就把c代碼翻譯成xp和inte cpu對應(yīng)的匯編語言了。
3.匯編,  把上面的匯編語言翻譯匯編成機(jī)器代碼(01)、,linux下一般表現(xiàn)為ELF目標(biāo)文件(obj文件)
4.連接。把程序的01代碼和庫文件的01代碼連接起來,構(gòu)成特定平臺上運(yùn)行的可執(zhí)行文件了。
如果 對arm_linux_gcc了解的話,就容易理解了,嘻嘻。。。arm_linux_gcc可以編譯c語言,arm匯編語言。裸機(jī)程序可以,也可以是應(yīng)用程序了,也就是arm上linux上的應(yīng)用程序。。。這就是平臺了。
     這樣也就引出了交叉編譯了,什么是交叉編譯,也就是在一個(gè)平臺上編譯生成另一個(gè)平臺上運(yùn)行的可執(zhí)行程序。
在linux和intel平臺上編譯生成arm和linux的平臺的可執(zhí)行程序。。。
     同時(shí)我回憶了下c#,先把 c# 源程序由編譯器生成中間代碼( microsoft intermediate language microsoft 中間代碼了, 我們的 exe 其實(shí)就是這個(gè)東西了,, xp 機(jī)子上點(diǎn)擊這個(gè)文件,就由。 Net framework 中的 Just-In-Time 編譯器就把這個(gè)中間代碼 MSIL 編譯為專用于 OS (這里指 xp 了)和目標(biāo)機(jī)器結(jié)構(gòu)的本機(jī)代碼了,這樣才可以執(zhí)行了。
     

記錄下平時(shí)小技巧吧:
一。。復(fù)制的文字在word下有背景怎么辦??、
1.。復(fù)制到txt,背景消失
2.word中工具欄中兩個(gè)A的格式窗口有清除格式。。選擇就行了
二。 有時(shí)候下載的word擴(kuò)展名是docx,,有些人可能會想,會不會是人家出現(xiàn)搞錯了呢。。非也。。
docx是office 2007(word 2007)的擴(kuò)展名,doc是office 2003(word 2003)的,聽說為了節(jié)省存儲空間,可以下載個(gè)docx2doc converter工具,更猛的是裝office 2007.。呵呵。;蛘哐b個(gè)office2003變成2007 的補(bǔ)丁。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1