匯編定義
匯編大多數是指 ** 匯編語言 , 匯編程序 。把機器語言翻譯成機器語言**的過程稱為匯編。
</br>
高級語言與計算機交互
91FEEFE7-BCB9-4AA8-B9CC-57713B731A8B.png
- 匯編語言與機器語言一一對應,每一條機器指令都有與之對應的匯編指令
- 匯編語言可以通過編譯得到機器語言,機器語言可以通過反匯編得到匯編語言
- 高級語言可以通過編譯得到匯編語言、機器語言,但匯編和機器語言幾乎無法還原成高級語言
</br>
APP/程序執行過程
AF97957D-654E-40C6-A855-FD0DC18AD816.jpeg
總線
總線:一根根導線的集合
-
總線分類
- 地址總線
- 數據總線
- 控制總線
對三種分類總結
* CPU根據地址總線去內存找對應的內存地址取出對應的值,然后在根據控制總線拿到此次操作是讀取還是存儲,如果存儲CPU會通過數據總線把要存儲的數據存到內存中地址總線給的地址。如果是讀取數據,內存會通過數據總線將相應的內存地址對應的值傳輸給CPU(如下圖摘自書籍)。
482EECCA-3A9A-4C1C-BA39-CA3AF44EFF57.png
-
地址總線
- 它的寬度決定CPU的尋址能力
- 8086的地址總線寬度是20(根線),他的尋址能力是1M
- 地址總線按照 20根線 是1M來計算
1M是數量單位,1MB是容量單位
計算公式
2^10 == 1024
2^20 == 2^10 * 2^10 == 1M
2^30 == 2^10 * 2^10 * 2^10 == 1M * * 2^10 == 1M * 1024 == 1G
2^32 == 1G * 2^2 = 1G * 4 = 4G
2^40 == 1G * 2^10 = 1G * 1024 = 1024G
10\20\30\32\40均為地址總線寬度后面是其對應的尋址能力
-
數據總線
- 它的寬度決定了CPU得單次數據傳輸量,也就是數據得傳輸速度
- 8086的數據總寬度是16,所以單次最大傳輸2個字節的數據
- 數據總線按照一根線是1位來計算 相當于8位一字節,1024字節1M
1Byte == 8 bit
1KB == 1024 Byte
1M == 1024 * 1024 Byte
-
控制總線
- 它的寬度決定了CPU對其他器件的控制能力,能有多少種控制
</br>
- 它的寬度決定了CPU對其他器件的控制能力,能有多少種控制
寄存器
- 內部部件之間由總線連接
- 對程序員來說,CPU中最重要的就是寄存器,可以通過改變寄存器的內容來實現對CPU的控制
- 不同的CPU,寄存器的個數結構是不同的(8086是16位結構的cpu)
- 8086是14個寄存器
- 都是16位的寄存器
- 都可以存放2個字節
**下圖摘自HK **
C7086A98-C2CE-42B4-B342-8108239D8EC1.png
0DD5655C-7CA2-4053-9E42-9379FD00F367.png
通用寄存器
- AX、BX、CX、DX這4個寄存器通常用來存放一般性的數據,稱為通用寄存器(有時也有特定用途)
- 通常,CPU會先將內存中的數據存儲到通用寄存器中,然后再對通用寄存器中的數據進行運算
- AX、BX、CX、DX這4個通用寄存器都是16位的
- 上一代8086的寄存器都是8位的,為了保證兼容, AX、BX、CX、DX都可分為2個獨立的8位寄存器來使用
- H代表高位寄存器
- L代表低位寄存器