匯編復習-基礎知識

看書時不寫廢話deepin的截圖現(xiàn)在怎么有藍邊框了見諒。


匯編語言的產生

匯編語言主體是匯編指令。匯編指令和機器指令的差別在于指令的表示方法上。匯編指令是機器指令便于記憶的書寫格式。

例如
操作 寄存器BX的內容送到AX中
機器指令 1000100111011000
匯編指令 mov ax,bx

計算機只能識別機器碼所以需要編譯器將匯編指令轉化為機器指令。

編譯器

匯編語言的組成

匯編語言由以下3類指令組成

匯編語言組成
匯編指令 機器碼的助記符,有對應機器碼
偽指令 沒有對應的機器碼,由編譯器執(zhí)行,計算機并不執(zhí)行
其他符號 如+、-、*、/等,由編譯器識別,沒有對應的機器碼

存儲器

CPU(Central Processing Unit,中央處理單元)是計算機核心部件,想讓CPU工作,就必須向它提供指令和數(shù)據(jù),指令和數(shù)據(jù)存儲在內存中,內存就是存儲器。
指令和數(shù)據(jù)在內存中都是二進制數(shù)據(jù),針對不同的使用代表的意義也不同。
1000100111011000 →89D8(數(shù)據(jù))
1000100111011000 →mov ax,bx(指令)

存儲單元

內存被劃分為若干個存儲單元,存儲單元從零開始編號,每個存儲單元可以存放一個字節(jié)(byte),擁有128個存儲單元的存儲器,我們可以說它的容量是128個字節(jié)。
通常我們電腦有16G內存,那么總共有1610241024*1024 = 17179869184個單元。
注意:一個字節(jié)(byte)為8比特(bit),1個比特為1個二進制位,故一個單元可以存儲8個二進制位。

CPU對存儲器的讀寫

CPU要從內存中讀數(shù)據(jù)必須制定內存中的地址,當然在計算機中不僅有內存,還有顯卡、網(wǎng)卡等器件,它堆哪個器件進行操作,進行讀寫數(shù)據(jù)也是需要明確的。可見CPU主要進行三類信息交互:

  • 存儲單元的地址(地址信息)
  • 器件的信息選擇,讀或寫的命令(控制信息)
  • 讀或寫的數(shù)據(jù)(數(shù)據(jù)信息)

計算機中專門有鏈接CPU和其他芯片的導線,通常成為總線??偩€從物理上來講是一根導線的集合,根據(jù)傳送信息的不同,總線從邏輯上又分為3類,地址總線,控制總線和數(shù)據(jù)總線。CPU通過總線將地址、數(shù)據(jù)和控制信息傳送到內存芯片中。

總線

地址總線

CPU是通過地址總線來指定存儲器單元的。地址總線上能傳送多少個不同的信息,CPU就可以對多少個存儲單元進行尋址。
一個CPU有10根地址總線,一根導線可以傳送的穩(wěn)定狀態(tài)只有兩種,高電平或低店鋪。用二進制表示為1或0,而10位可以表示2的10次方個不同的數(shù)據(jù)。如果一個CPU有N根地址線,則可以說這個CPU地址總線寬度為N,這樣的CPU最多可以尋找2的N次方個內存單元。

數(shù)據(jù)總線

數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳送速度。8根數(shù)據(jù)總線一次可以傳送一個8位二進制數(shù)據(jù),也就是一個字節(jié)。8086CPU的數(shù)據(jù)總線寬度為16,可以一次性傳送2個字節(jié)。

控制總線

控制總線是一些不同控制線的集合,有多少根控制總線,就意味著CPU提供了對外部器件的多少種控制。

接口卡

CPU堆外部設備不能直接控制,如顯示器、音響、打印機等。直接控制想這些設備進行工作是插在擴展插槽上的借口卡。擴展插槽通過總線和CPU相連,所以接口卡也通過總線同CPU相連。CPU可以直接控制這些接口卡。從而實現(xiàn)CPU對外設的簡介控制。

各類存儲器芯片

一臺PC裝有多個存儲芯片,這些存儲芯片從物理鏈接上看是獨立的、不同的器件從讀寫屬性上看分為兩類;隨機存儲器(RAM)和只讀存儲器(ROM)。
RAM-read access memory隨機存儲器可讀可寫,但必須帶電存儲,關機后存儲的內容丟失。
ROM-read only memory只讀存儲器,只能讀取不能寫入。關機后內容不丟失。

PC機中各類存儲器的邏輯鏈接

內存地址空間

CPU在操控上述的存儲器的時候都把它們當作內存來對待,把它們看作若干存儲單元組成的邏輯存儲器,這個邏輯存儲器就是我們所說的內存地址空間。

邏輯存儲器

內存地址空間的大小受CPU地址總線寬度的限制。8086CPU地址總線寬度為20,可以傳送2的20次方個不同地址信息,即可以定位2的20次方個內存單元。8086PC的內存地址空間大小為2^20=1048576=1024×1024×1(1個單元大小為1字節(jié)、1字節(jié)=8bit)=1MB
在基于一個計算機硬件系統(tǒng)編程的時候,必須知道這個系統(tǒng)中的內存地址空間分配情況。因為當我們想在某類存儲器中讀寫數(shù)據(jù)的時候,必須知道它的第一個單元的地址和最后一個單元的地址。比如我們希望向顯示器輸出一段信息,那么必須將這段信息寫到顯存中,顯卡才能將它輸出到顯示器上。

8086PC機內存地址空間分配
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容