汇编语言(1)- 计算机基础
一、機器語言
機器語言是機器指令的集合,機器指令就是一臺機器可以正確執(zhí)行的命令。電子計算機的機器指令就是一列二進制數(shù)據(jù),計算機將其轉(zhuǎn)換為一列高低電平,使計算機的電子器件受到驅(qū)動,進行運算。
二、匯編語言
1. 特點
匯編語言的主體使匯編指令,匯編指令和機器指令的差別在于表示的方法上,匯編指令是便于記憶的書寫格式
例如:
機器指令:1000100111011000 表示把BX寄存器的內(nèi)容發(fā)送到 AX寄存器中
匯編指令:mov ax,bx
2. 匯編語言的組成
- 匯編指令:機器碼的助記符,有對應(yīng)的機器碼
- 偽指令:沒有對應(yīng)的機器碼,由編譯器執(zhí)行
- 其他符號:如 +、-、*、/ 等
3. 存儲器
cpu是計算機的核心部件,控制整個計算機的運作并進行運算,想要cpu工作就必須提供指令和數(shù)據(jù),指令和數(shù)據(jù)就存放再存儲器中。
4. 指令和數(shù)據(jù)
指令和數(shù)據(jù)只是應(yīng)用上的概念,在內(nèi)存或磁盤上,指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息,CPU工作時把有的信息看作指令,有的信息看作數(shù)據(jù),為同樣的信息賦予了不同的意義。只有在使用時,才會有意義
5. 存儲單元
特點:存儲器被劃分成若干個存儲單元,每個存儲單元從 0 開始編號。每個存儲器可以存儲 128個Byte,而一個存儲單元可以存儲1個Byte
6. CPU對存儲器的讀寫
CPU要從內(nèi)存中讀取數(shù)據(jù)時需要與外部器件(芯片)進行下面3類的信息交互
- 存儲單元的地址(地址信息)
- 器件的選擇,讀或者寫(控制信息)
- 讀或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)
電子計算器能處理,傳輸?shù)男畔⒍际请娦盘?#xff0c;電信號需要使用導(dǎo)線進行傳送,而計算機中有專門連接CPU和其他芯片的導(dǎo)線,通常稱為 總線
- CPU通過地址線發(fā)送出存儲單元3信息
- CPU通過控制線發(fā)出內(nèi)存讀的命令,選中存儲器芯片,并且通知它,將要從中讀取數(shù)據(jù)(或者寫命令)
- 存儲器將3號單元的數(shù)據(jù)通過數(shù)據(jù)線送入CPU(或者將數(shù)據(jù)送入存儲單元3中)
如何操作CPU進行數(shù)據(jù)的讀取?
機器碼:101000010000001100000000
含義:從3號存儲單元讀取數(shù)據(jù)送入寄存器AX
匯編指令:MOV AX,[3]
7. 總線
7.1 地址總線
CPU是通過地址總線來指定存儲單元的,也就是說地址總線上能傳送多少個不同的信息,CPU就可以對多少個存儲單元進行尋址。
例如:一個CPU有10根地址總線,而一根導(dǎo)線可以傳送的穩(wěn)定的狀態(tài)為高電平和低電平兩種狀態(tài),也就是1和0,而10位二進制數(shù)據(jù)可以傳送2的10次方,最小數(shù)為0,最大數(shù)為1023。一個CPU有N根地址線,則可以說這個CPU最多可以尋找2的N次方個內(nèi)存單元
7.2 數(shù)據(jù)總線
CPU與內(nèi)存或其他器件之間的數(shù)據(jù)傳輸是通過數(shù)據(jù)總線來進行傳輸?shù)?#xff0c;數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳輸速度。8根數(shù)據(jù)總線一次可以傳送一個8位二進制數(shù)據(jù)(一個字節(jié)),16根數(shù)據(jù)總線一次可以傳輸2個字節(jié)。
8088CPU數(shù)據(jù)總線的寬度為8位,8086CPU的數(shù)據(jù)總線寬度位16位。所以8088傳輸一個 89D8 數(shù)據(jù)到內(nèi)存中,需要分成兩次傳輸
7.3 控制總線
CPU對外部器件的控制是通過控制總線進行的。控制總線是一些不同控制線的集合,有多少根控制總線,就意味著CPU提供了對外部器件的多少種控制。控制總線的寬度決定了CPU對外部器件的控制能力
前面說到的內(nèi)存讀或?qū)懨?#xff0c;是由幾根控制線綜合發(fā)出的,其中有一根稱為“讀信號輸出”,還有一根稱為“寫信號輸出”的控制線
檢測點
8. 內(nèi)存地址空間
例如:一個CPU的地址總線的寬度為10,那么就是1024個存儲單元,而這1024個可尋的存儲單元就構(gòu)成了內(nèi)存地址空間。而我們所用的 64位CPU,理論上來說尋址能力可以達到 200多wTB
9. 主板和接口卡
主板:每一臺PC機都有主板,主板上有核心器件和主要器件,這些器件通過總線相連。例如:CPU、存儲器、外圍芯片組、擴展插槽。擴展插槽一般有RAM內(nèi)存條和各類接口卡
接口卡:所有程序控制其工作的設(shè)備,必須受到CPU的控制。如顯示器、音響這類設(shè)備都是通過擴展插槽上面的接口卡與CPU想連,而接口卡又是通過總線同CPU想連。CPU可以直接通過控制這些接口卡,實現(xiàn)對外設(shè)的簡介控制
10. 各類存儲芯片
從獨寫屬性上看分為兩類:隨機存儲器(RAM)、只讀存儲器(ROM)
RAM:可讀可寫,必須帶電存儲,關(guān)機后存儲內(nèi)容丟失
ROM:只能讀取不能寫入,關(guān)機后內(nèi)容不丟失
- 隨機存儲器:存放供CPU使用的絕大部分程序和數(shù)據(jù)
- 裝有BIOS的ROM:BIOS是由主板和各類接口卡廠商提供的軟件系統(tǒng),可以通過它利用該硬件設(shè)備進行最基礎(chǔ)的輸入輸出
- 接口卡上的RAM:某些接口卡需要對大批量輸入、輸出數(shù)據(jù)進行暫時存儲,在其上裝有RAM。最典型的就是顯卡的顯存
11. 內(nèi)存地址空間
CPU在控制上訴器件的時候,都把它們當(dāng)作內(nèi)存來對待,把它們總的看作一個由若干個存儲單元組成的邏輯存儲器,這個邏輯存儲器就是我們所說的內(nèi)存地址。
假設(shè)上圖中的內(nèi)存地址空間的地址段分配如下:
- 0 - 7FFFH 的 32KB 空間為主RAM的地址空間
- 8000H - 9FFFH 的 8KB空間為顯存地址空間
- A000H - FFFFH的24KB空間為各個ROM的地址空間
cpu向地址為1000H的內(nèi)存單元中寫入數(shù)據(jù),這個數(shù)據(jù)就會被寫入主隨機存儲器中;
cpu向地址為8000H的內(nèi)存單元中寫入數(shù)據(jù),這個數(shù)據(jù)就被寫入顯卡中,然后會被顯卡輸出到顯示器上;
內(nèi)存地址空間的大小受CPU地址總線寬度的限制,總線寬度為20,那么可以傳送 2^20 個不同的地址信息,就是1MB;同理總線寬度為32,內(nèi)存地址空間的最大為 4GB。所以當(dāng)我們想在某類存儲器中讀寫數(shù)據(jù)時,必須要知道第一個單元的地址和最后一個單元的地址;比如我們要將數(shù)據(jù)顯示在屏幕上,就必須要知道顯存的內(nèi)存地址空間是多少。
不同的計算器內(nèi)存地址的分配是不同的,下面是8086CPU的內(nèi)存地址劃分
00000 - 9FFFF 相當(dāng)于在獨寫 主存儲器中的數(shù)據(jù);A0000 - BFFFF 相當(dāng)于在操作顯存中的數(shù)據(jù);C0000 - FFFFF 操作是無效的,因為ROM是只讀存儲器
最終運行程序的是CPU,我們用匯編語言的時候,必須要從CPU的角度考慮問題,系統(tǒng)中所有的存儲器的存儲單元都處于一個統(tǒng)一的邏輯存儲器中,它的容量受CPU的尋址能力的限制
總結(jié)
以上是生活随笔為你收集整理的汇编语言(1)- 计算机基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【软件工程】软件过程各种模型的理解[ 瀑
- 下一篇: 10天背单词(适用于6级、考研、考博、G