第一章 基礎(chǔ)知識
1.1 機(jī)器語言
機(jī)器語言是機(jī)器指令的集合邮屁,機(jī)器指令展開來講就是一臺機(jī)器可以正確執(zhí)行的命令。
由圖可見,機(jī)器語言是十分晦澀難懂和不易查錯的。
1.2 匯編語言的產(chǎn)生
匯編語言的主體是匯編指令绪穆。匯編語言和機(jī)器指令的差別在于指令的表示方法上。匯編指令時機(jī)器指令便于記憶的書寫格式虱岂。
編譯器:講匯編指令轉(zhuǎn)換為機(jī)器指令玖院。
1.3 匯編語言的組成
匯編語言的三種指令:
- 匯編指令:機(jī)器碼的助記符,有對應(yīng)的機(jī)器碼量瓜。
- 偽指令:沒有對應(yīng)的機(jī)器碼司恳,有編譯器執(zhí)行,計(jì)算機(jī)并不執(zhí)行绍傲。
- 其他符號:如+扔傅、-、*烫饼、/ 等猎塞,由編譯器識別,沒有對應(yīng)的機(jī)器碼杠纵。
匯編語言的核心是匯編指令荠耽,它決定了匯編語言的特性。
1.4 存儲器
CPU(Central Processing Unit) 是計(jì)算機(jī)的核心部件比藻,它控制計(jì)算機(jī)的運(yùn)作并進(jìn)行運(yùn)算铝量。要想讓一個 CPU 工作,必須向它提供指令和數(shù)據(jù)银亲。指令和數(shù)據(jù)在存儲器種存放慢叨,也就是常說的內(nèi)存。
1.5 指令和數(shù)據(jù)
指令和數(shù)據(jù)是應(yīng)用上的概念务蝠。在內(nèi)存或磁盤上拍谐,指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。
1.6 存儲單元
存儲器被劃分成若干存儲單元轩拨,每個存儲單元從 0 開始順序編號践瓷,例如一個存儲器有 128 個存儲單元,編號 0~127亡蓉,如圖晕翠。
微型存儲器的存儲單元可以存儲一個 Byte,即 8 個二進(jìn)制位(8 bit)寸宵。一個存儲器有 128 個存儲單元崖面,即 128 個 Byte。
1.7 CPU 對存儲器的讀寫
CPU 要想進(jìn)行數(shù)據(jù)的讀寫梯影,必須和外部器件(芯片)進(jìn)行 3 類信息的交互:
- 存儲單元的地址(地址信息)巫员;
- 器件的選擇,讀或?qū)懙拿睿刂菩畔ⅲ?/li>
- 讀或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)甲棍。
CPU 通過總線講這三類信息傳到存儲器芯片中简识。
總線:就是一根根導(dǎo)線的集合。根據(jù)傳送信息的不同感猛,從邏輯上又分為 3 類七扰,地址總線、控制總線和數(shù)據(jù)總線陪白。
(1)CPU 通過地址線將地址信息 3(黑條中有 3颈走,可能不清楚) 發(fā)出。
(2)CPU 通過控制線發(fā)出內(nèi)存讀命令咱士,選中存儲器芯片立由,并通知它,將要從中讀取數(shù)據(jù)序厉。
(3)存儲器將 3 號 單元中的數(shù)據(jù) 8 通過數(shù)據(jù)線送入 CPU锐膜。
寫操作。如何向 3 號單元寫入數(shù)據(jù) 26弛房。
(1)CPU 通過地址線將地址信息 3 發(fā)出道盏。
(2)CPU 通過控制線發(fā)出內(nèi)存寫命令,選中存儲器芯片文捶,并通知它荷逞,要向其中寫入數(shù)據(jù)。
(3)CPU 通過數(shù)據(jù)線將數(shù)據(jù) 26 送入內(nèi)存的 3 號單元中粹排。
1.8 地址總線
CPU 是通過地址線來之定存儲器單元的颅围。
在電子計(jì)算機(jī)中,一根導(dǎo)線可以傳送的穩(wěn)定狀態(tài)只有兩種恨搓,高電平或是低電平。用二進(jìn)制表示就是 0 或 1,10 根導(dǎo)線可以傳送 10 位二進(jìn)制數(shù)據(jù)斧抱。而 10 位二進(jìn)制數(shù)可以表示 210 個數(shù)據(jù)常拓,最小數(shù)為 0,最大數(shù)為 1023辉浦。
下圖展示了一個具有 10 根地址線的 CPU 向內(nèi)存發(fā)出地址信息 11 時 10 根地址線上傳送的二進(jìn)制信息弄抬。
一個 CPU 有 N 根地址線,則可以說這個 CPU 的地址總線的寬度為 N宪郊。這樣的 CPU 最多可以尋找 2N 個內(nèi)存單元掂恕。
1.9 數(shù)據(jù)總線
CPU 與內(nèi)存或其他器件之間的數(shù)據(jù)傳送是通過數(shù)據(jù)總線來進(jìn)行的。數(shù)據(jù)總線的寬度決定了 CPU 和外界的數(shù)據(jù)傳送速度弛槐。8 根數(shù)據(jù)總線依次可傳送一個 8 位二進(jìn)制數(shù)據(jù)(1 Byte)懊亡。
1.10 控制總線
CPU 對外部器件的控制是通過控制總線來進(jìn)行的『醮控制總線是個總稱店枣,它是一些不同控制線的集合。有多少根控制線叹誉,就意味著 CPU 提供了對外部器件的多少種控制鸯两。所以,控制總線的寬度決定了 CPU 對外部器件的控制能力长豁。
內(nèi)存的讀或?qū)懨罹褪怯蓭赘刂凭€綜合發(fā)出的钧唐。CPU 向一根稱為“讀信號輸出”的控制線上輸出低電平表示將要讀取數(shù)據(jù);當(dāng)然還有一根傳送寫信號的“寫信號輸出”匠襟。
(1) 13钝侠。
分析:設(shè)地址總線寬度為n,2n B=8KB宅此,n=13机错。
(2) 1024;0父腕;1023弱匪。
分析:1KB=210B=1024B;存儲單元編號從0開始璧亮,所以是0到1023萧诫。
(3) 8192;1024枝嘶。
分析:1KB=1024B=1024*8b=8192b帘饶。
(4) 230;220群扶;210及刻。
分析:1GB=230B镀裤、1MB=220B、1KB=210B缴饭。
(5) 64暑劝;1;16颗搂;4担猛。
分析:8080的尋址能力為216B=64KB、8088的尋址能力為220B=1MB丢氢、80286的尋址能力為224B=16MB傅联、80386的尋址能力為232B=4GB
(6) 1;1疚察;2蒸走;2;4稍浆。
分析:8080一次可傳送的數(shù)據(jù)為8/8=1B载碌、8088一次可傳送的數(shù)據(jù)為8/8=1B、8086一次可傳送的數(shù)據(jù)為16/8=2B衅枫、80286一次可傳送的數(shù)據(jù)為16/8=2B嫁艇、80386一次可傳送的數(shù)據(jù)為32/8=4B
(7) 512;256弦撩。
分析:8086數(shù)據(jù)總線寬度為16步咪,一次可以傳遞2個字節(jié),所以1024個字節(jié)益楼,至少要讀1024/2=512次猾漫;80386數(shù)據(jù)總線寬度為32,一次可傳送4個字節(jié)感凤,1024個字節(jié)悯周,至少要讀1024/4=256次。
(8) 二進(jìn)制陪竿。
1.11 內(nèi)存地址空間(概述)
舉例禽翼,一個 CPU 的地址總線寬度為 10,那么可以尋址 1024 個內(nèi)存單元族跛,這 1024 個可尋到的內(nèi)存單元就構(gòu)成這個 CPU 的內(nèi)存地址空間闰挡。
1.12 主板
每個 PC 機(jī)都有一個主板。主板上有核心器件和一些主要器件礁哄。
1.13 接口卡
CPU 對外部設(shè)備不能直接控制长酗,如顯示器、音箱桐绒、打印機(jī)等夺脾。直接控制這些設(shè)備進(jìn)行工作的是插在擴(kuò)展卡槽上的接口卡之拨。擴(kuò)展卡槽通過總線和 CPU 相連,所以接口卡也通過總線同 CPU相連咧叭。CPU 可以直接控制這額接口卡敦锌,從而間接控制外設(shè)。CPU 通過總線向接口卡發(fā)送命令佳簸,接口卡根據(jù) CPU 的命令控制外設(shè)進(jìn)行工作。
1.14 各類存儲器芯片
從讀寫屬性上分為兩類:隨機(jī)存儲器(RAM)和只讀存儲器(ROM)颖变。
RAM:可讀可寫生均,必須帶電存儲,關(guān)機(jī)后內(nèi)容丟失腥刹;
ROM:只能讀取不能寫入马胧,關(guān)機(jī)后內(nèi)容不丟失。
存儲器從功能和連接上又分為:
1.15 內(nèi)存地址空間
上述存儲器在物理上都是獨(dú)立的衔峰,但在一下兩點(diǎn)上相同佩脊。
- 都和 CPU 的總線相連。
- CPU 對它們進(jìn)行讀或?qū)懙臅r候都通過控制線發(fā)出內(nèi)存讀寫命令垫卤。
CPU 操控它們時威彰,把它們當(dāng)作內(nèi)存來來對待,總的看作一個由若干存儲單元組成的邏輯存儲器穴肘,即內(nèi)存空間地址歇盼。
不同的計(jì)算機(jī)系統(tǒng)的內(nèi)存地址空間的分配情況是不同的,下圖展示 8086PC 機(jī)內(nèi)存地址空間分配的基本情況评抚。