計算機的CPU的指標能不能被認為是記憶體的主鍵?科技之盾2018-03-09 16:20:20

記憶體

記憶體的基本單元是一個位元組。一臺有32兆記憶體的電腦大概能容納3200萬字節的資訊。在記憶體裡的每一個位元組透過一個唯一的數字來標識作為它的地址,如圖1。4展示的一樣。

計算機的CPU的指標能不能被認為是記憶體的主鍵?

計算機的CPU的指標能不能被認為是記憶體的主鍵?

通常記憶體都是大塊大塊地使用而不是單個位元組。在PC機結構中,命名了這些記憶體大塊,如圖1。2展示的一樣。

計算機的CPU的指標能不能被認為是記憶體的主鍵?

在記憶體裡的資料都是數字的。字元透過用數字來表示字元的字元編碼來儲存。其中一個最普遍的字元編碼稱為ASCII的編碼是Unicode。在這兩種編碼中最主要的區別是ASCII使用一個位元組來編碼一個字元,但是Unicode每個字元使用兩個位元組(或一個字)。例如ASCII使用

計算機的CPU的指標能不能被認為是記憶體的主鍵?

來表示字元大寫A;Unicode使用

計算機的CPU的指標能不能被認為是記憶體的主鍵?

來表示。因為ASCII使用一個位元組,所以它僅能表示256種不同的字元。Unicode將ASCII的值擴充套件成一個字,允許表示更多的字元。這對於表示全世界所有的語言非常重要。

CPU

中央處理器(CPU)是執行指令的物理裝置。CPU執行的指令通常非常簡單。指令可能要求他們使用的資料儲存在一個CPU稱為暫存器的特殊儲存位置中。CPU可以比訪問記憶體更快地訪問暫存器裡的資料。然而,在CPU裡的暫存器是有限的,所以程式設計師必須注意只儲存現在使用的資料到暫存器中。

各類CPU執行的指令組成了該CPU的機器語言。機器語言擁有比高階語言更基本的結構。機器語言指令被編碼成未加工的數字,而不是友好的文字格式。為了更有效的執行,CPU必須能很快地解釋一個指令的目的。機器語言就是為了這個目的設計的,而不是讓人們更容易理解而設計。一個其他語言寫的程式必須轉換成CPU的本地機器語言,才能在電腦上執行。

編譯器是一個將用用程式語言寫的程式翻譯成特殊結構的電腦的機器語言的程式。通常,每一種型別的CPU都有它自己唯一的機器語言。這是為什麼為Mac寫的程式不能在IBM型別PC機執行的一個原因。

電腦透過使用時鐘來同步指令的執行。時鐘脈衝在一個固定的頻率(稱為時鐘頻率)。當你買了一臺1。5GHz的電腦,1。5GHz就是時鐘頻率。時鐘並不記錄分和秒。它以不變的速率簡單跳動。電子計算機透過使用這個跳動來正確執行它們的操作,就像節拍器的跳動如何來幫助你以正確的節奏播放音樂。一個指令需要跳動的次數(或就像他們經常說的執行週期)依賴CPU的產生和模仿。週期的次數取決於它之前的指令和其他因素。

計算機的CPU的指標能不能被認為是記憶體的主鍵?

CPU 80x86系列

IBM型號的PC機包含了一個來自Intel 80x86家族(或它的克隆)的CPU。在這個家族的所有CPU都有一些普遍的特徵,包括有一種基本的機器語言。無論如何,最近的成員極大地加強了這個特徵。

8088,8086:

這些CPU從程式設計的觀點來看是完全相同的。它們是用在早期PC機上的CPU。它們提供一些16位的暫存器:AX,BX,CX,DX,SI,DI,BP,SP,CS,DS,SS,ES,IP,FLAGS。它們僅僅支援1M位元組的記憶體,而且只能工作在真實模式下。在這種模式下,一個程式可以訪問任何記憶體地址,甚至其它程式的記憶體!這會使排除故障和保證安全變得非常困難!而且,程式的記憶體需要分成段。每段不能大於64K。

80286:

這種CPU使用在AT系列的PC機中。它在8088/86的基本機器語言中加入了一些新的指令。然而,它主要的新的特徵是16位保護模式。在這種模式下,它可以訪問16M位元組的記憶體和透過阻止訪問其它程式的記憶體來保護程式。可是,程式依然是分成不能大於64K的段。

80386:

這種CPU極大地增強了80286的效能。首先,它擴充套件了許多暫存器來容納32位資料(EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,EIP)而且增加了兩個新的16位暫存器(FS,GS)。它同樣增加了一個新的32位保護模式。在這種模式下,它可以訪問4G位元組。程式同樣分成段,但是現在每段大小同樣可以到4G。

80486/Pentium/Pentium Pro:

這些80x86家族的成員增加了不多的新的特徵。它們主要是提高了指令執行的速度。Pentium MMX: 這些處理器在Pentium基礎上增加了MMX指令(多媒體擴充套件)。這些指令可以提高普通的影象操作的速率。

Pentium II:

它是擁有MMX 指令的Pentium處理器。(Pentium III 本質上就是一個更快的Pentium II。)

8086 16位暫存器

最初的8086CPU提供4個16位通用暫存器:AX,BX,CX 和DX。這些暫存器都可以分解成兩個8位暫存器。例如:AX暫存器可以分解成AH和AL暫存器,像圖1。5展示的一樣。AH暫存器包含AX的上(或高)8位,而AL包含AX的低8位。通常AH和AL都當做獨立的一個位元組的暫存器來用;但是,清楚它們不能獨立於AX是非常重要的。改變AX的值將會改變AH和AL的值反之亦然。通用暫存器多數使用在資料移動和算術指令中。

計算機的CPU的指標能不能被認為是記憶體的主鍵?

這有兩個16位指標暫存器:SI 和DI 。通常它們都是當作指標來使用,但是在許多情況下也可以像通用暫存器一樣使用。但是,它們不可以分解成8位暫存器。

16位BP和SP 暫存器用來指向機器語言堆疊裡的資料,被各自稱為基址暫存器和堆疊指標暫存器。這些將在以後討論。

16位CS,DS,SS 和ES 暫存器是段暫存器。它們指出程式不同部分所使用的記憶體。CS代表程式碼段,DS 代表資料段,SS 代表堆疊段和ES代表附加段。ES當作一個暫時段暫存器來使用。這些暫存器的細節描述在後面的文章中。

指令指標暫存器(IP) 與CS暫存器一起使用來跟蹤CPU下一條執行指令的地址。通常,當一條指令執行時,IP提前指向記憶體裡的下一條指令。

FLAGS暫存器儲存了前面指令執行結果的重要資訊。這些結果在暫存器裡以單個的位儲存。例如:如果前面指令執行結果是0,Z位為1,反之為0。並不是所有指令都修改FLAGS裡的位,檢視附錄裡的表看單個指令是如何影響FLAGS暫存器的。

80386 32位暫存器

80386及以後的處理器擴充套件了暫存器。例如:16位AX暫存器擴充套件成了32位。為了向後相容,AX依然表示16位暫存器而EAX 用來表示擴充套件的32位暫存器。AX是EAX 的低16位就像AL是AX(EAX)的低8位一樣。但是沒有直接訪問EAX 高16位的方法。其它的擴充套件暫存器是EBX,ECX,EDX,ESI 和EDI 。

許多其它型別的暫存器同樣也擴充套件了。BP變成了EBP;SP 變成了ESP;FLAGS變成了EFLAGSEFLAGS 而IP變成了EIP。但是,不同於指標暫存器和通用暫存器,在32位保護模式下(下面將討論的)只有這此暫存器的擴充套件形式被使用。

在80386裡,段暫存器依然是16位的。這兒有兩個新的段暫存器:FS和GS。它們名字並不代表什麼。它們是附加段暫存器(像ES一樣)。術語中字的一個定義為CPU資料暫存器的大小。對於80x86家族,這個術語現在有一點混亂了。在表1。2裡,可以看到字被定義成兩個位元組。它是當8086第一次發行時被定義成這樣的。當80386開發出來後,它被決定依舊保持這個字定義不改變,即使暫存器的大小已經改變了。

如需獲取更多資訊,請關注微信公眾號: 51好購

計算機的CPU的指標能不能被認為是記憶體的主鍵?