




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第八章大型趣味程序設(shè)計第1節(jié)大型趣味程序設(shè)計基礎(chǔ)主要內(nèi)容計算機硬件組成80x86微機系統(tǒng)TurboC編譯方式BIOS和DOS調(diào)用高級編程的硬件基礎(chǔ)計算機系統(tǒng):由硬件和軟件兩部分組成硬件體系結(jié)構(gòu):經(jīng)典的馮
諾依曼體系結(jié)構(gòu)
由三個子系統(tǒng)組成處理器子系統(tǒng)存儲器子系統(tǒng)輸入/輸出子系統(tǒng)計算機硬件組成高級編程的硬件基礎(chǔ)馮
諾依曼體系輸入/輸出子系統(tǒng)處理器子系統(tǒng)存儲器子系統(tǒng)地址總線數(shù)據(jù)總線控制總線計算機硬件體系結(jié)構(gòu)高級編程的硬件基礎(chǔ)處理器CPU子系統(tǒng)控制單元寄存器組數(shù)據(jù)總線控制總線CPU示意圖ALU地址總線CPU組成:算術(shù)邏輯單元、控制單元和寄存器組高級編程的硬件基礎(chǔ)存儲器子系統(tǒng)存儲器子系統(tǒng):由主存儲器和輔助存儲器組成主存儲器:隨機存取存儲器(RAM)和只讀存儲器(ROM)兩種類型。輔助存儲器:簡稱外存,具有外設(shè)的特性,以I/O總線的方式和主機連接。比較:輔助存儲器與主存儲器相比,具有存儲容量大,存儲的信息不會因斷電而消失,價格便宜的特點,但存取速度慢。高級編程的硬件基礎(chǔ)輸入/輸出子系統(tǒng)輸入/輸出子系統(tǒng):簡稱I/O系統(tǒng),包括多種類型的輸入輸出設(shè)備(外設(shè)),以及這些設(shè)備和處理器、存儲器進行數(shù)據(jù)通信的接口電路。注意:輸入輸出設(shè)備的工作速度比CPU和存儲器慢許多,因此需要接口在中間起緩沖的作用,實現(xiàn)主機和外設(shè)交換數(shù)據(jù)速度的匹配。高級編程的硬件基礎(chǔ)80X86微機系統(tǒng)按字長分類:4位微處理器8位微處理器16位微處理器32位微處理器64位微處理器高級編程的硬件基礎(chǔ)Intel系列微處理器:80x86系列8086、808880186、8028680386、80486Pentium、Pentium2Pentium3、Pentium4等80x86微機系統(tǒng)高級編程的硬件基礎(chǔ)8080處理器:16位微處理器,地址總線為20位,直接尋址能力為220=1048576=1024K=lM80286、80386和80486處理器:尋址范圍增大,例如80286可達16M,80386(80486)可達4G。對低1M存儲空間的尋址是為了和8088處理器兼容而設(shè)置的實地址方式,即DOS下的尋址方式。80x86系列主存儲器分為:低1M部分稱為系統(tǒng)存儲器,高于1M的部分稱為擴展存儲器和擴充存儲器。主存儲器結(jié)構(gòu)
高級編程的硬件基礎(chǔ)系統(tǒng)存儲器:分為低地址部分(0~640K)和高地址部分(640K~1024K)兩個部分。640K范圍內(nèi)的低地址部分又稱為基本內(nèi)存或常規(guī)內(nèi)存,640K~1024K
部分稱為高端內(nèi)存。系統(tǒng)存儲器
高級編程的硬件基礎(chǔ)高端內(nèi)存:384K的高地址部分,供視頻顯示和BIOS等使用,分布情況如下圖。高端內(nèi)存高級編程的硬件基礎(chǔ)地址范圍及功能:A0000到BFFFF:顯示緩沖區(qū),CGA顯示緩沖區(qū)開始于B8000,VGA、EGA顯示緩沖區(qū)開始于A0000。這些空間也稱作視頻存儲器,簡稱VRAM。C0000到DFFFF:ROM擴充區(qū),主要存放視頻顯示器適配器和磁盤的BIOS,一些網(wǎng)絡(luò)控制板、I/O接口板和擴充內(nèi)存分頁幀也要用到此部分地址。E0000到EFFFF:保留區(qū)。F0000到FFFFF:系統(tǒng)ROM,該部分裝有系統(tǒng)引導(dǎo)程序,還有系統(tǒng)基本輸入輸出系統(tǒng)(BIOS)。高端內(nèi)存高級編程的硬件基礎(chǔ)80x86微處理器:14個基本寄存器,用于進行運算,控制指令的執(zhí)行,處理內(nèi)存尋址等。8088/80286微處理器的寄存器是16位長,在386、486中擴展為32位長(段寄存器除外)。80386/80486增加了特殊的內(nèi)部寄存器,TurboC僅支持這14個基本寄存器,且長度認為是16位,即按照8088的14個內(nèi)部寄存器來進行操作。寄存器
高級編程的硬件基礎(chǔ)寄存器按其功能分類:通用寄存器地址指針寄存器變址寄存器段寄存器指令指針寄存器標志寄存器寄存器分類
高級編程的硬件基礎(chǔ)AX、BX、CX、DX:16位數(shù)據(jù)寄存器,可分成高字節(jié)部分和低字節(jié)部分來使用。高字節(jié)部分對應(yīng)于AH、BH、CH、DH,低字節(jié)部分對應(yīng)于AL、BL、CL、DL,即四個16位寄存器可看作八個8位寄存器。AX:累加器,用于所有的輸入/輸出操作BX:基址寄存器,用于擴展尋址,起變址作用CX:計數(shù)寄存器,在循環(huán)操作中用作計數(shù)器DX:數(shù)據(jù)寄存器,用于字乘法和除法,還用來提供輸入輸出操作中的口地址。通用寄存器高級編程的硬件基礎(chǔ)CS、DS、SS、ES:段寄存器,在實模式下的內(nèi)存尋址是段左移4位+偏移,每個段最大尋址范圍為64K字節(jié),段的首地址保存在段寄存器中。CS:代碼段寄存器DS:數(shù)據(jù)段寄存器SS:堆棧段寄存器ES:附加段寄存器段寄存器高級編程的硬件基礎(chǔ)(1)指針寄存器SP寄存器:棧指針寄存器。在訪問堆棧時,段地址在SS中,SP表示偏移地址。BP寄存器:基址指針寄存器。通過堆棧傳遞數(shù)據(jù)地址時,段地址在SS中,BP存放要傳遞的數(shù)據(jù)地址的偏移地址。BP也可作為通用寄存器用。(2)變址寄存器SI源變址寄存器:表示字串的源地址,段地址在DSDI目的變址寄存器:表示目的地址,它常和附加段寄存器ES相關(guān)聯(lián),表示目的地址偏移。其他寄存器高級編程的硬件基礎(chǔ)(3)IP指令指針寄存器IP寄存器存放要執(zhí)行的下條指令的偏移地址。(4)標志寄存器l6位寄存器,其中6位作為指令執(zhí)行結(jié)果的狀態(tài)標志,3位用作控制標志。其他寄存器高級編程的硬件基礎(chǔ)存取存儲器時,選擇一個段寄存器的值作為該段的開始地址,將其左移4位,再加上偏移地址,得到20位物理地址,即存儲器的真實地址。實地址尋址高級編程的硬件基礎(chǔ)I/O接口的尋址:有兩種方法:一種是將接口地址和存儲器地址統(tǒng)一編址;一種是I/O接口地址和存儲器地址分別獨立編址。80x86CPU采用I/O獨立編址方式,采用專門的I/O指令來對接口地址進行操作。I/O接口的尋址高級編程的硬件基礎(chǔ)TurboC的內(nèi)存模式
微小模式(Tiny)微小模式編譯C程序時,代碼段、數(shù)據(jù)段、堆棧段的段地址均相同,即CS=DS=SS=ES。一般小程序可采用此編譯模式進行編譯。小模式(Small)TurboC的缺省模式。在該模式下,程序中的代碼放在64K的代碼段內(nèi),數(shù)據(jù)放在64K的數(shù)據(jù)段內(nèi)。棧段、附加數(shù)據(jù)段和數(shù)據(jù)段均指向同一地址,即DS=SS=ES。高級編程的硬件基礎(chǔ)TurboC的內(nèi)存模式
中模式(Medium)數(shù)據(jù)須在64K的數(shù)據(jù)段內(nèi),代碼段不再限制在一個段內(nèi),即程序長度可以超過64K(允許達到1M),程序代碼尋址必須用20位地址碼。這種編譯模式適用于大代碼量,小數(shù)據(jù)量的大程序。緊湊模式(Compact)
緊湊模式與中模式是互補的。在該模式下,數(shù)據(jù)量可超過64K,放在多個數(shù)據(jù)段里。數(shù)據(jù)尋址必須用20位地址碼。代碼量不超過64K,在一個段內(nèi)。這種編譯模式適用于程序短而數(shù)據(jù)量大的場合。高級編程的硬件基礎(chǔ)TurboC的內(nèi)存模式
大模式(Large)在該模式下代碼長度和數(shù)據(jù)長度均可達1MB,即各占多個段的內(nèi)存。靜態(tài)數(shù)據(jù)不能超過64K字節(jié)。該模式適合于需要處理大量數(shù)據(jù)的大程序。程序的運行速度大大慢于上述的幾種模式。巨模式(Huge)該模式和大模式基本相同,代碼分布在不同的代碼段內(nèi),數(shù)據(jù)也分布在不同的數(shù)據(jù)段內(nèi),它們來自于不同的源程序,但堆棧只有一個。TurboC一般限制靜態(tài)數(shù)據(jù)不超過64K,但巨模式允許超過64K。高級編程的硬件基礎(chǔ)當一個程序較大時,可將一個程序分成幾個部分,每個部分可單獨成為一個源文件,這些文件通過全局變量或函數(shù)相聯(lián)系。它們可進行單獨編譯,形成.OBJ文件??梢圆捎脙煞N方法將這些文件組合成一個完整的應(yīng)用程序。多文件編譯高級編程的硬件基礎(chǔ)假設(shè)一個程序分成了A1.c和A2.c兩個源文件A2.c文件中定義了函數(shù)A2()
:#include<string.h>voidA2(){ ...}include方法高級編程的硬件基礎(chǔ)A1.c中的main()函數(shù)調(diào)用A2()函數(shù),則A1.c寫成:#include<stdio.h>#include“A2.c”/*include預(yù)處理命令*/main() { ... A2(); ...}include方法高級編程的硬件基礎(chǔ)假設(shè)一個程序分成了A1.c和A2.c兩個源文件,project工程文件法生成可執(zhí)行程序的步驟如下:(1)用TC編輯器建立一個文本文件,內(nèi)容為:A1.cA2.c保存于文件AA.prj中。(2)在TC環(huán)境中,按ALT+P,選擇Project菜單中的Projectname項,填入文件名AA.prj后,按F9鍵,即可生成AA.exe的可執(zhí)行文件。Project工程文件法高級編程的硬件基礎(chǔ)中斷概念
中斷:CPU在正常運行程序時,由于程序預(yù)先安排或內(nèi)外部事件(稱為中斷源),引起CPU中斷正在運行的程序,并根據(jù)中斷源提供的地址信息(稱為中斷向量)而轉(zhuǎn)到事件中斷服務(wù)程序中執(zhí)行。中斷向量:微機采用中斷類型號來標識中斷源。微機的中斷分為軟中斷和硬中斷兩種類型。軟中斷也稱為內(nèi)中斷,是由執(zhí)行某些指令引起;硬中斷也稱為外中斷,是由接口設(shè)備引起的。高級編程的硬件基礎(chǔ)中斷向量表:80x86內(nèi)存的前1024個字節(jié)為中斷向量表(地址00000—003FFH)
,可存儲256個中斷向量。中斷向量:每個中斷向量占用4個字節(jié),前兩個字節(jié)為中斷服務(wù)程序的入口地址偏移量,后兩個字節(jié)裝入了段地址。將中斷向量的這四個字節(jié)分別裝入IP及CS中,便可轉(zhuǎn)入中斷服務(wù)程序。中斷概念高級編程的硬件基礎(chǔ)BIOS(即基本輸入輸出系統(tǒng)):Intel80x86微機高端內(nèi)存的ROM中固化的對鍵盤、顯示器、磁盤驅(qū)動器、打印機、異步通訊、時鐘等操作的子程序。BIOS程序本身直接與外部設(shè)備進行通訊,并為編程人員提供了一個簡單的接口。利用BIOS程序,不僅可以有效利用系統(tǒng)資源,而且能大大提高程序的開發(fā)效率和質(zhì)量。BIOS的調(diào)用比較簡單,通過中斷號調(diào)用BIOS中的各個程序,即每個外部設(shè)備均有一個軟中斷調(diào)用號,每個中斷號下有許多不同的子功能號,控制設(shè)備的不同功能。BIOS調(diào)用
高級編程的硬件基礎(chǔ)BIOS調(diào)用
BIOS主要功能簡表中斷調(diào)用號主要功能中斷調(diào)用號主要功能05H屏幕拷貝17H打印機服務(wù)09H鍵盤中斷1AH日期時間服務(wù)10H顯示器服務(wù)1BH鍵盤終止地址11H設(shè)備檢查1CH定時器信號12H確定內(nèi)存容量1EH軟盤參數(shù)表13H磁盤服務(wù)21HDOS系統(tǒng)功能14H串行口通訊服務(wù)27H駐留內(nèi)存16H鍵盤服務(wù)33H鼠標功能高級編程的硬件基礎(chǔ)TC2.0標準頭文件頭文件用途頭文件用途alloc.h動態(tài)地址分配函數(shù)math.h數(shù)學(xué)庫使用的各種定義assert.h定義assert()宏mem.h內(nèi)存操作函數(shù)bios.hROM基本輸入輸出函數(shù)process.hspawn()和exec()函數(shù)conio.h屏幕操作函數(shù)setjmp.h非局部跳轉(zhuǎn)ctype.h字符操作函數(shù)share.h文件共享dir.h目錄操作函數(shù)sign
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年吉林省建筑安全員C證考試(專職安全員)題庫及答案
- 2025-2030年中國衣物柔順劑行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國薺藍油市場發(fā)展現(xiàn)狀規(guī)劃研究報告
- 2025-2030年中國硅酸鋯行業(yè)前景趨勢及發(fā)展規(guī)劃分析報告
- 2025-2030年中國礦物棉市場營運狀況及發(fā)展策略研究報告
- 2025波蘭數(shù)學(xué)奧林匹克(第二輪)試題
- 2025遼寧省建筑安全員B證考試題庫
- 合肥幼兒師范高等??茖W(xué)校《漢字文化與創(chuàng)新設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北美術(shù)學(xué)院《中小學(xué)教學(xué)名師論壇》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南電氣職業(yè)技術(shù)學(xué)院《現(xiàn)代辦公技能訓(xùn)練A》2023-2024學(xué)年第二學(xué)期期末試卷
- 多聯(lián)機空調(diào)系統(tǒng)設(shè)計課件
- 螺紋牙強度校核計算
- 技術(shù)規(guī)范書柴油發(fā)電機組
- 青島科技大學(xué)成人大專《工商企業(yè)管理實訓(xùn)報告》
- 低鉀血癥最新版本最新課件
- 獸醫(yī)外科手術(shù)學(xué)與獸醫(yī)外科學(xué)章節(jié)測試及答案
- 2023年陜西延長石油礦業(yè)有限責(zé)任公司招聘筆試題庫及答案解析
- YY/T 1792-2021熒光免疫層析分析儀
- GB/T 39235-2020豬營養(yǎng)需要量
- GB/T 30799-2014食品用洗滌劑試驗方法重金屬的測定
- 染廠公司簡介(4個范本)
評論
0/150
提交評論