C語言程序設(shè)計課件第1章090909_第1頁
C語言程序設(shè)計課件第1章090909_第2頁
C語言程序設(shè)計課件第1章090909_第3頁
C語言程序設(shè)計課件第1章090909_第4頁
C語言程序設(shè)計課件第1章090909_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2021-8-41 高級語言程序設(shè)計 2021-8-42 第一章 計算機(jī)組成與 程序設(shè)計語言 主講主講: : 計算機(jī)學(xué)院計算機(jī)學(xué)院 朱立華朱立華 n計算機(jī)組成及工作過程 n機(jī)器語言程序設(shè)計 n由低級語言到高級語言 nC is the most beautiful language! nC程序開發(fā)過程 n計算工具計算工具: : 石器時代石器時代: :石頭、手指、繩子石頭、手指、繩子 銅器時代銅器時代: :算籌(商周時代)、格子(西方)算籌(商周時代)、格子(西方) 鐵器時代鐵器時代: :算盤算盤 n計算機(jī)計算機(jī):(:(comput+ercomput+er):):用于計算的機(jī)器用于計算的機(jī)器, ,

2、用來處理存儲用來處理存儲 的數(shù)據(jù)的數(shù)據(jù), ,處理和存儲是一個整體處理和存儲是一個整體. . n計算機(jī)的組成計算機(jī)的組成: : 硬件系統(tǒng)硬件系統(tǒng)+ +軟件系統(tǒng)軟件系統(tǒng) 物質(zhì)基礎(chǔ)物質(zhì)基礎(chǔ) 加在硬件之上加在硬件之上, ,控制控制 硬件完成功能硬件完成功能 通過程序設(shè)計語通過程序設(shè)計語 言來開發(fā)軟件言來開發(fā)軟件 n“計算機(jī)計算機(jī)之父之父” 馮馮諾依曼諾依曼的程序存儲思的程序存儲思 想想: : 計算機(jī)應(yīng)該采用二進(jìn)制計算機(jī)應(yīng)該采用二進(jìn)制 操作指令也是一種信息操作指令也是一種信息 , ,也也 用二進(jìn)制數(shù)表示用二進(jìn)制數(shù)表示 程序和數(shù)據(jù)的存儲形式可以程序和數(shù)據(jù)的存儲形式可以 完全相同完全相同 程序本身也可包含數(shù)

3、據(jù)程序本身也可包含數(shù)據(jù) n1946.2.14 1946.2.14 ENIAC(ENIAC(埃尼阿克埃尼阿克) ) n現(xiàn)在保存在賓夕法尼亞大學(xué)現(xiàn)在保存在賓夕法尼亞大學(xué) n這臺機(jī)器名為這臺機(jī)器名為“電子數(shù)值積分電子數(shù)值積分 和計算機(jī)和計算機(jī)”( (簡稱埃尼阿克,簡稱埃尼阿克, 完全是一個龐然大物,占地面完全是一個龐然大物,占地面 積達(dá)積達(dá)170m2170m2,質(zhì)量達(dá),質(zhì)量達(dá)30t30t,耗電,耗電 量也很驚人,功率為量也很驚人,功率為150kW150kW, 共使用了近兩萬個電子管,在共使用了近兩萬個電子管,在 工作時這些管子看上去活像兩工作時這些管子看上去活像兩 萬只點著的燈泡。萬只點著的燈泡。

4、n埃尼阿克主要用來進(jìn)行彈道計埃尼阿克主要用來進(jìn)行彈道計 算的數(shù)值分析算的數(shù)值分析 n圖靈機(jī)圖靈機(jī): :計算機(jī)科學(xué)之父、人計算機(jī)科學(xué)之父、人 工智能之父工智能之父,”,”圖靈獎圖靈獎” n德國人德國人ConranConran EuseEuse代號為代號為“Z”Z” 的計算機(jī)的計算機(jī) n哈佛,哈佛,IBMIBM的的MarkMark系列大型電系列大型電 子計算機(jī)子計算機(jī) n真正的第一臺計算機(jī)是上面三真正的第一臺計算機(jī)是上面三 臺中之一臺中之一, ,無從考證無從考證 控制總線控制總線 CPUCPU 計算機(jī)硬件的組成計算機(jī)硬件的組成 運算器運算器 控制器控制器 存儲器存儲器接口接口 輸入設(shè)備輸入設(shè)備 輸

5、出設(shè)備輸出設(shè)備 地址總線地址總線 數(shù)據(jù)總線數(shù)據(jù)總線 進(jìn)行各種算術(shù)運算和邏輯運算進(jìn)行各種算術(shù)運算和邏輯運算 控制和指揮整個運算過程,使控制和指揮整個運算過程,使 指令按要求一條一條執(zhí)行。指令按要求一條一條執(zhí)行。 存放程序指存放程序指 令及數(shù)據(jù)令及數(shù)據(jù) 輸入指令代碼輸入指令代碼 和原始數(shù)據(jù)和原始數(shù)據(jù) 顯示或打印顯示或打印 計算結(jié)果計算結(jié)果 處處 理理 關(guān)于二進(jìn)制問題關(guān)于二進(jìn)制問題 n“世界上有世界上有種人,一種人懂二進(jìn)制,另一種人種人,一種人懂二進(jìn)制,另一種人 不懂不懂” n這里的這里的是一個是一個二進(jìn)制數(shù)二進(jìn)制數(shù), ,就是十進(jìn)制的就是十進(jìn)制的2 2 關(guān)于二進(jìn)制等進(jìn)制問題關(guān)于二進(jìn)制等進(jìn)制問題 進(jìn)進(jìn)

6、 制制 每位每位 符號符號 逢幾逢幾 進(jìn)一進(jìn)一 位位 權(quán)權(quán) n n位數(shù)的位數(shù)的 不同個數(shù)不同個數(shù) 例子例子( (結(jié)果統(tǒng)一到十進(jìn)制結(jié)果統(tǒng)一到十進(jìn)制) ) 十十090910101010i i1010n n341=3341=3* *10102 2+4+4* *10101 1+1+1* *10100 0=341=341 二二01012 22 2i i2 2n n101=1101=1* *2 22 2+0+0* *2 21 1+1+1* *2 20 0=5=5 八八07078 88 8i i8 8n n127=1127=1* *8 82 2+2+2* *8 81 1+7+7* *8 80 0=87=87

7、 十十 六六 0909 AFAF 16161616i i1616n n31D=331D=3* *16162 2+1+1* *16161 1+13+13* *16160 0=797=797 另另:3:3位二進(jìn)制數(shù)相當(dāng)于位二進(jìn)制數(shù)相當(dāng)于1 1位八進(jìn)制數(shù)位八進(jìn)制數(shù): 101 011B=(53): 101 011B=(53)8 8=53Q=53Q 4 4位二進(jìn)制數(shù)相當(dāng)于位二進(jìn)制數(shù)相當(dāng)于1 1位十六進(jìn)制數(shù)位十六進(jìn)制數(shù): 1101 1001B=(D9): 1101 1001B=(D9)16 16=D9H= =D9H=d9Hd9H n存儲器的組成:由存儲器的組成:由存儲單元存儲單元組成,每個單元組成,每個單

8、元1 1個字節(jié)個字節(jié) (1B1B),),1B=8bit1B=8bit,每個單元有一個地址。,每個單元有一個地址。 n存儲單元中的存儲單元中的內(nèi)容內(nèi)容與存儲單元的與存儲單元的地址地址是兩個概念,其是兩個概念,其 區(qū)別如同房間里的東西與房間號碼。區(qū)別如同房間里的東西與房間號碼。 n存儲器的大小指它有多少個字節(jié),也就是有多少個不存儲器的大小指它有多少個字節(jié),也就是有多少個不 同的地址號,取決于同的地址號,取決于地址總線的根數(shù)地址總線的根數(shù),n n根地址總線,根地址總線, 存儲器容量為:存儲器容量為:2 2n n n常用存儲單位:常用存儲單位:1TB=1TB=2 210 10GB= GB=2 220

9、20MB= MB=2 230 30KB= KB=2 240 40B B n存儲器按功能分為存儲器按功能分為3 3大區(qū)域:大區(qū)域:程序存儲區(qū)、數(shù)據(jù)存儲程序存儲區(qū)、數(shù)據(jù)存儲 區(qū)和棧區(qū)和棧 存放程序中的指令 存放程序中的數(shù)據(jù) 存取數(shù)據(jù)都在一端,無 需計算地址,速度快 nCPUCPU:Central Processor Unit,Central Processor Unit,中央處理器,中央處理器,完成各完成各 種種處理(運算處理(運算+ +控制),控制),是計算機(jī)最是計算機(jī)最核心核心部件。部件。 nCPUCPU中設(shè)寄存器的目的:存放數(shù)據(jù)或計算的中設(shè)寄存器的目的:存放數(shù)據(jù)或計算的中間結(jié)果中間結(jié)果, 不

10、通過地址總線和數(shù)據(jù)總線不通過地址總線和數(shù)據(jù)總線 ,處理速度快,處理速度快 。 n寄存器有兩種:寄存器有兩種:通用寄存器通用寄存器和和專用寄存器專用寄存器。 n熟悉兩個專用寄存器:熟悉兩個專用寄存器: (1 1)累加器累加器A A:與算術(shù)邏輯運算器與算術(shù)邏輯運算器ALUALU一起完成各種運算一起完成各種運算 (2 2)程序計數(shù)器程序計數(shù)器PCPC:寄存指令的地址,寄存指令的地址,CPUCPU通過通過PCPC取來一條取來一條 指令執(zhí)行時,指令執(zhí)行時,PCPC便便“指向指向”下一條指令,即下一條指令,即PCPC的值變?yōu)橄乱坏闹底優(yōu)橄乱?條將要執(zhí)行的指令的地址。條將要執(zhí)行的指令的地址。除非遇到除非遇到

11、轉(zhuǎn)移指令轉(zhuǎn)移指令或或子程序調(diào)用子程序調(diào)用 指令指令,CPUCPU都是通過都是通過PCPC順序地順序地提取指令。提取指令。 是運算器的組成部是運算器的組成部 分,暫存操作數(shù)及分,暫存操作數(shù)及 運算的中間結(jié)果運算的中間結(jié)果 每一個都有特定的作用每一個都有特定的作用 n程序程序是一組是一組指令指令,指令聯(lián)系著,指令聯(lián)系著存儲器存儲器和和CPUCPU,每條指,每條指 令有令有操作碼操作碼,有的指令有,有的指令有操作數(shù)操作數(shù),指令存儲在程序存,指令存儲在程序存 儲區(qū),操作數(shù)存儲在數(shù)據(jù)存儲區(qū)。儲區(qū),操作數(shù)存儲在數(shù)據(jù)存儲區(qū)。 n例:求和程序例:求和程序y=3+4y=3+4所包含的指令如下:所包含的指令如下:

12、 操作碼操作碼 操作數(shù)操作數(shù)指令含義指令含義 01H3000H將地址為將地址為3000H的單元中的數(shù)據(jù)放入累加器的單元中的數(shù)據(jù)放入累加器A 03H3001H將地址為將地址為3001H單元中的數(shù)據(jù)與累加器單元中的數(shù)據(jù)與累加器A中的中的 數(shù)據(jù)相加,結(jié)果留在數(shù)據(jù)相加,結(jié)果留在A 02H3002H將累加器將累加器A中的數(shù)據(jù)存入地址為中的數(shù)據(jù)存入地址為3002H的單元的單元 07H停機(jī)停機(jī) 動動 態(tài)態(tài) 演示演示 過過 程程 n對計算機(jī)而言對計算機(jī)而言:它的各個硬件部分存在的意義和相互:它的各個硬件部分存在的意義和相互 的聯(lián)系通過指令來體現(xiàn)。的聯(lián)系通過指令來體現(xiàn)。 n對程序設(shè)計而言對程序設(shè)計而言:計算機(jī)就

13、是指令系統(tǒng)。:計算機(jī)就是指令系統(tǒng)。 n用機(jī)器語言進(jìn)行程序設(shè)計用機(jī)器語言進(jìn)行程序設(shè)計: 首先要首先要熟悉熟悉計算機(jī)的計算機(jī)的指令系統(tǒng)指令系統(tǒng),熟悉每一條指令的含義及用,熟悉每一條指令的含義及用 法。法。 設(shè)計算法設(shè)計算法,根據(jù)算法編寫程序。,根據(jù)算法編寫程序。 所編寫的計算機(jī)程序體現(xiàn)為一系列指令的集合,每條指令的所編寫的計算機(jī)程序體現(xiàn)為一系列指令的集合,每條指令的 操作碼和操作數(shù)都用操作碼和操作數(shù)都用二進(jìn)制二進(jìn)制數(shù)表示。數(shù)表示。 用機(jī)器語言編寫的用機(jī)器語言編寫的源程序源程序就是機(jī)器能識別并執(zhí)行的就是機(jī)器能識別并執(zhí)行的目標(biāo)程序目標(biāo)程序。 指令名稱指令名稱 操作碼操作碼|操作數(shù)操作數(shù)說明說明 取數(shù)取

14、數(shù) 01H NA(N),將地址為將地址為N的單元的數(shù)據(jù)存入累加器的單元的數(shù)據(jù)存入累加器A 存數(shù)存數(shù)02H N(N)A,將累加器將累加器A的數(shù)據(jù)存入地址為的數(shù)據(jù)存入地址為N的單元的單元 加法加法 03H N將地址為將地址為N的單元的數(shù)據(jù)和的單元的數(shù)據(jù)和A中的相加,結(jié)果存入中的相加,結(jié)果存入A 乘法乘法 04H N將地址為將地址為N的單元的數(shù)據(jù)和的單元的數(shù)據(jù)和A中的相乘,結(jié)果存入中的相乘,結(jié)果存入A 比較比較05H NA(N) 比較兩個數(shù)據(jù)(相減),結(jié)果存入寄存器比較兩個數(shù)據(jù)(相減),結(jié)果存入寄存器F 轉(zhuǎn)移轉(zhuǎn)移 06H NPCN 用地址用地址N更新程序計數(shù)器更新程序計數(shù)器PC的值的值 停機(jī)停機(jī) 0

15、7H停機(jī)停機(jī) 子程序調(diào)子程序調(diào) 用用 08H N斷口地址進(jìn)棧,用地址斷口地址進(jìn)棧,用地址N更新程序計數(shù)器更新程序計數(shù)器PC的值的值 返回主程返回主程 序序 09H斷口地址出棧,用來更新程序計數(shù)器斷口地址出棧,用來更新程序計數(shù)器PC的值的值 壓棧壓棧 0aH T寄存器寄存器T中的數(shù)據(jù)進(jìn)棧保存(中的數(shù)據(jù)進(jìn)棧保存(T表示任意寄存器表示任意寄存器) 出棧出棧 0bH N出棧,出棧數(shù)據(jù)進(jìn)入寄存器出棧,出棧數(shù)據(jù)進(jìn)入寄存器T 步驟步驟方法一方法一方法二方法二( (y=y=x(ax+b)+cx(ax+b)+c) ) 1取數(shù)取數(shù)a 取數(shù)取數(shù)a 2計算計算a*x 計算計算a*x 3 計算計算a*x*x 計算計算a

16、*x+b 4 計算計算b*x計算計算x*(a*x+b) 5計算計算a*x*xb*x 計算計算x*(a*x+b) +c 6 計算計算a*x*xb*x+c(書中未講,此方法無需調(diào)用子程序)書中未講,此方法無需調(diào)用子程序) 說明:說明:方法一的第方法一的第4步,也需要用步,也需要用累加器累加器A,而此刻,而此刻A中中 是第是第3步的結(jié)果。這時,只能將第步的結(jié)果。這時,只能將第4步定義為一個子程步定義為一個子程 序,結(jié)果受主程序調(diào)用,因此以上步驟實質(zhì)上變成:序,結(jié)果受主程序調(diào)用,因此以上步驟實質(zhì)上變成: 計算計算z=b*x(子程序子程序) z z 動動 態(tài)態(tài) 演示演示 過過 程程 方方 法法 一一 動

17、動 態(tài)態(tài) 演示演示 過過 程程 方方 法法 二二 n入口地址入口地址:第一條指令在程序存儲區(qū)中的地址。第一條指令在程序存儲區(qū)中的地址。 n中斷中斷:一個程序在執(zhí)行過程中去執(zhí)行另一個程序。一個程序在執(zhí)行過程中去執(zhí)行另一個程序。 n斷口地址斷口地址:程序中斷時的下一條指令的地址。程序中斷時的下一條指令的地址。 n保護(hù)現(xiàn)場保護(hù)現(xiàn)場:程序中斷時,有些寄存器存放著中間結(jié)果,程序中斷時,有些寄存器存放著中間結(jié)果, 將寄存器中的中間結(jié)果放入某地將寄存器中的中間結(jié)果放入某地( (堆棧堆棧) )暫存。暫存。 n恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 :子程序執(zhí)行完畢,再將主程序的中間結(jié)子程序執(zhí)行完畢,再將主程序的中間結(jié) 果放回寄存器

18、。果放回寄存器。 n第第1 1步步:將主程序的斷口地址壓入堆棧保存。將主程序的斷口地址壓入堆棧保存。 n第第2 2步步:將子程序的入口地址送入將子程序的入口地址送入PCPC。 n第第3 3步步:進(jìn)入子程序后,首先保護(hù)主程序現(xiàn)場。進(jìn)入子程序后,首先保護(hù)主程序現(xiàn)場。 n第第4 4步步:執(zhí)行子程序。執(zhí)行子程序。 n第第5 5步步:子程序執(zhí)行完畢,恢復(fù)主程序現(xiàn)場。子程序執(zhí)行完畢,恢復(fù)主程序現(xiàn)場。 n第第6 6步步:將主程序的斷口地址從棧頂送回將主程序的斷口地址從棧頂送回PCPC。 ny=ax2+bx+c 方法一的清單方法一的清單 n及執(zhí)行過程見動態(tài)演示。及執(zhí)行過程見動態(tài)演示。 動動 態(tài)態(tài) 演示演示 過

19、過 程程 方方 法法 一一 n機(jī)器語言機(jī)器語言:是第一代程序設(shè)計語言,是計算機(jī)硬件系是第一代程序設(shè)計語言,是計算機(jī)硬件系 統(tǒng)能識別和執(zhí)行的唯一語言統(tǒng)能識別和執(zhí)行的唯一語言。 n機(jī)器語言的機(jī)器語言的3 3個局限性個局限性: (1 1)程序不容易讀寫,操作碼和操作數(shù)都是二進(jìn)制數(shù)程序不容易讀寫,操作碼和操作數(shù)都是二進(jìn)制數(shù) (2 2)對計算機(jī)硬件的依賴性很強(qiáng),可移植性差對計算機(jī)硬件的依賴性很強(qiáng),可移植性差 (3 3)指令功能簡單,沒有按照數(shù)據(jù)類型分類)指令功能簡單,沒有按照數(shù)據(jù)類型分類 改進(jìn):改進(jìn):用助記符代替機(jī)器的數(shù)字指令,用符號地址表示存儲用助記符代替機(jī)器的數(shù)字指令,用符號地址表示存儲 單元的數(shù)字

20、地址單元的數(shù)字地址匯編語言匯編語言( (第二代程序設(shè)計語言第二代程序設(shè)計語言) ) 改進(jìn):改進(jìn):面向問題而非面向機(jī)器,與計算機(jī)硬件結(jié)構(gòu)無關(guān)面向問題而非面向機(jī)器,與計算機(jī)硬件結(jié)構(gòu)無關(guān) 改進(jìn):改進(jìn):提供豐富的數(shù)據(jù)類型,語句一般都采用自然語匯,提供豐富的數(shù)據(jù)類型,語句一般都采用自然語匯, 一條語句往往相當(dāng)于多條指令。一條語句往往相當(dāng)于多條指令。 n第一種高級程序設(shè)計語言第一種高級程序設(shè)計語言:FortranFortran語言語言(1954(1954年年) ) n高級語言的發(fā)展高級語言的發(fā)展: (1 1)從早期語言到結(jié)構(gòu)化程序設(shè)計語言)從早期語言到結(jié)構(gòu)化程序設(shè)計語言 (2 2)從面向過程到非過程化程序

21、設(shè)計語言從面向過程到非過程化程序設(shè)計語言( (面向?qū)ο螅┟嫦驅(qū)ο螅?(3 3)發(fā)展趨勢:面向應(yīng)用)發(fā)展趨勢:面向應(yīng)用 n第一種結(jié)構(gòu)化程序設(shè)計語言第一種結(jié)構(gòu)化程序設(shè)計語言:PascalPascal語言語言(1970(1970年年) ) n高級語言的種類有數(shù)百種,比高級語言的種類有數(shù)百種,比較熟悉的有:較熟悉的有: FortranFortran、BasicBasic、PascalPascal、C C、FoxBASEFoxBASE、FoxProFoxPro、LispLisp、 PrologProlog 、C+C+、JavaJava、C#C#等等 n區(qū)分兩組概念:區(qū)分兩組概念: n(1 1)程序設(shè)計語

22、言與程序)程序設(shè)計語言與程序( (類似于漢語與文章的關(guān)系類似于漢語與文章的關(guān)系) ) 程序設(shè)計語言是進(jìn)行程序設(shè)計的工具,是計算機(jī)全部指令的程序設(shè)計語言是進(jìn)行程序設(shè)計的工具,是計算機(jī)全部指令的 集合;而任何計算機(jī)程序都需要用程序設(shè)計語言來編寫,是集合;而任何計算機(jī)程序都需要用程序設(shè)計語言來編寫,是 為實現(xiàn)某個算法從該語言中選擇所需要指令組成的集合。為實現(xiàn)某個算法從該語言中選擇所需要指令組成的集合。 n(2 2)源程序與目標(biāo)程序)源程序與目標(biāo)程序: 源程序:源程序:程序員編寫的程序程序員編寫的程序 目標(biāo)程序:目標(biāo)程序:計算機(jī)最終能識別并運行的程序計算機(jī)最終能識別并運行的程序( (二進(jìn)制二進(jìn)制) )

23、 源源 程程 序序 目目 標(biāo)標(biāo) 程程 序序用機(jī)器語言編寫用機(jī)器語言編寫用匯編語言編寫用匯編語言編寫 匯匯 編編 程程 序序 用高級語言編寫用高級語言編寫 編編 譯譯 程程 序序 匯編匯編編譯編譯 nC C 語言最早的原型是語言最早的原型是 ALGOL 60ALGOL 60 n1973 1973 年,年,AT&T AT&T 貝爾實驗室的貝爾實驗室的 Dennis RitchieDennis Ritchie n(D.M.RITCHIE(D.M.RITCHIE,被尊為,被尊為“C C語言之父語言之父”) ) 在在 BCPL BCPL 和和 B B 語言的基礎(chǔ)上設(shè)計出了一種新的語言語言的基礎(chǔ)上設(shè)計出了

24、一種新的語言C C語言,語言, 開發(fā)開發(fā)UNIXUNIX操作系統(tǒng)操作系統(tǒng)及其上的應(yīng)用程序。及其上的應(yīng)用程序。 n 1999 1999 年,年,ANSI ANSI 和和 ISO ISO 通過了最新版本的通過了最新版本的 C C 語言語言 標(biāo)準(zhǔn)標(biāo)準(zhǔn)C99C99,這是關(guān)于,這是關(guān)于 C C 語言的最新、最權(quán)威的定義。語言的最新、最權(quán)威的定義。 n選擇學(xué)習(xí)選擇學(xué)習(xí)C C語言的理由:語言的理由:C C語言不僅是面向過程的程序語言不僅是面向過程的程序 設(shè)計語言中功能最強(qiáng)、效率最高的語言,更是面向?qū)υO(shè)計語言中功能最強(qiáng)、效率最高的語言,更是面向?qū)?象程序設(shè)計語言象程序設(shè)計語言C+C+、JavaJava和和C#

25、C#的基礎(chǔ)。的基礎(chǔ)。 nC C語言具有很多優(yōu)點:語言具有很多優(yōu)點: 簡潔緊湊、靈活方便簡潔緊湊、靈活方便 運算符豐富(運算符豐富(3434個)個) 數(shù)據(jù)類型豐富數(shù)據(jù)類型豐富 C C是結(jié)構(gòu)式語言,程序?qū)哟吻逦墙Y(jié)構(gòu)式語言,程序?qū)哟吻逦?C C語法限制不太嚴(yán)格,語法比較靈活。語法限制不太嚴(yán)格,語法比較靈活。 C C語言允許直接訪問物理地址,可直接對硬件進(jìn)行操作語言允許直接訪問物理地址,可直接對硬件進(jìn)行操作 ,既,既 可以開發(fā)系統(tǒng)軟件,又可以開發(fā)應(yīng)用軟件可以開發(fā)系統(tǒng)軟件,又可以開發(fā)應(yīng)用軟件(中級語言)(中級語言) C C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 C

26、 C語言適用范圍大,可移植性好,適合多種操作系統(tǒng),多種語言適用范圍大,可移植性好,適合多種操作系統(tǒng),多種 機(jī)型機(jī)型 開 始 編 輯 編 譯 連 接 執(zhí) 行 有錯? 結(jié)果正確? 結(jié) 束 有 源程序 file.c 目標(biāo)程 序 file.obj 庫函數(shù)和 其它目標(biāo) 程序 可執(zhí)行 目標(biāo)程 序 無 正確 不正確 file.exe 編輯編輯 程序代碼的錄入程序代碼的錄入, , 生成源程序生成源程序* *.c.c 編譯編譯 鏈接鏈接 運行運行 源程序源程序目標(biāo)程序目標(biāo)程序可執(zhí)行程序可執(zhí)行程序 內(nèi)容內(nèi)容程序設(shè)計程序設(shè)計 語言代碼語言代碼 機(jī)器語言代碼機(jī)器語言代碼機(jī)器語言代機(jī)器語言代 碼碼 可執(zhí)行?可執(zhí)行?不可

27、以不可以不可以不可以可以可以 擴(kuò)展名擴(kuò)展名 .c.c. .objobj.exe.exe 語法分析查錯,翻譯語法分析查錯,翻譯 生成目標(biāo)程序生成目標(biāo)程序* *. .objobj 與其它目標(biāo)程序或庫與其它目標(biāo)程序或庫 鏈接裝配鏈接裝配, ,生成可執(zhí)行生成可執(zhí)行 程序程序* *.exe.exe nC C程序的開發(fā)在特定的集成開發(fā)環(huán)境下進(jìn)行程序的開發(fā)在特定的集成開發(fā)環(huán)境下進(jìn)行 n本教材中所有的程序在本教材中所有的程序在VC+6.0VC+6.0下通過,并且課程配下通過,并且課程配 套實驗也要求在套實驗也要求在VC+6.0VC+6.0下下 nVC+6.0VC+6.0集成環(huán)境中提供了編輯器、編譯器、鏈接器、集成環(huán)境中提供了編輯器、編譯器、鏈接器、 調(diào)試器等多種工具,使得程序員從源程序的編輯到最調(diào)試器等多種工具,使得程序員從源程序的編輯到最 后的運行均可在集成環(huán)境中完成后的運行均可在集成環(huán)境中完成 n舉例:舉例:一個一個C C程序在程序在VC+6.0VC+6.0下開發(fā)的全過程下開發(fā)的全過程 (請任課教師在(請任課教師在VC+6.0VC+6.0現(xiàn)場演示一個程序從編輯到運現(xiàn)場演示一個程序從編輯到運 行的全過程)行的全過程) n重點掌握:馮重點掌握:馮 諾依曼體系結(jié)構(gòu)的計算機(jī)諾依曼體系結(jié)構(gòu)的計算機(jī) 程序存儲思想程序存儲思想的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論