總線
- 每一個(gè)CPU芯片都有許多管腳,這些管腳和總線相連,CPU通過總線跟外部器件進(jìn)行交互
- 總線:一根根導(dǎo)線的集合
- 總線的分類
- 地址總線
- 數(shù)據(jù)總線
- 控制總線
CPU的讀寫過程
- 地址總線
- 它的寬度決定了CPU的尋址能力
- 8086的地址總線寬度是20咐吼,所以尋址能力是1M(2^20)
- 數(shù)據(jù)總線
- 它的寬度決定了CPU的單次數(shù)據(jù)傳送量,也就是數(shù)據(jù)傳送速度
- 8086的數(shù)據(jù)總線總線寬度是16晾捏,所以單次最大傳遞2個(gè)字節(jié)的數(shù)據(jù)
- 控制總線
- 它的寬度決定了CPU對其他器件的控制能力饺窿、能有多少種控制
數(shù)據(jù)總線
-
8086的數(shù)據(jù)總線寬度是16,向內(nèi)存中寫入89D8H如下
圖:(注意:這里是16進(jìn)制,后方的H是單詞Hexadecimal的意思)
內(nèi)存
- 內(nèi)存地址空間的大小受CPU地址總線寬度的限制沈矿。8086的地址總線寬度為20上真,可以定位2^20個(gè)不同的內(nèi)存單元(內(nèi)存地址范圍0x00000~0xFFFFF),所以8086的內(nèi)存空間大小為1MB
- 0x00000~0x9FFFF:主存儲器羹膳∷ィ可讀可寫
- 0xA0000~0xBFFFF:向顯存中寫入數(shù)據(jù),這些數(shù)據(jù)會被顯卡輸出到顯示器【椭椋可讀可寫
- 0xC0000~0xFFFFF:存儲各種硬件\系統(tǒng)信息寇壳,只讀
寄存器
內(nèi)部部件之間由總線連接
- 對程序員來說,CPU中最主要部件就是寄存器妻怎,可以通過改變寄存器的內(nèi)容來實(shí)現(xiàn)對CPU的控制
- 不同的CPU壳炎,寄存器的個(gè)數(shù)、結(jié)構(gòu)是不相同的(8086是16位結(jié)構(gòu)的CPU)
- 8086有14個(gè)寄存器
- 都是16位的寄存器
-
可以存放2個(gè)字節(jié)
通用寄存器
- AX逼侦、BX匿辩、CX、DX這4個(gè)寄存器通常用來存放一般性的數(shù)據(jù)榛丢,稱為通用寄存器(有時(shí)也有特定用途)
- 通常铲球,CPU會先將內(nèi)存中的數(shù)據(jù)存儲到通用寄存器中,然后再對通用寄存器中的數(shù)據(jù)進(jìn)行運(yùn)算
-
假設(shè)內(nèi)存中有塊紅色內(nèi)存空間的值是3涕滋,現(xiàn)在想把它的值加1睬辐,并將結(jié)果存儲到藍(lán)色內(nèi)存空間
- CPU首先會將紅色內(nèi)存空間的值放到AX寄存器中:mov ax,紅色內(nèi)存空間
- 然后讓AX寄存器與1相加:add ax,1
- 最后將值賦值給內(nèi)存空間:mov 藍(lán)色內(nèi)存空間,ax
-
AX宾肺、BX溯饵、CX、DX這4個(gè)通用寄存器都是16位的锨用,如下圖所示
- 上一代8086的寄存器都是8位的丰刊,為了保證兼容,AX增拥、BX啄巧、CX、DX都可分為2個(gè)獨(dú)立的8位寄存器來使用
- H代表高位寄存器
-
L代表地位寄存器
字和字節(jié)
- 在匯編的數(shù)據(jù)存儲中掌栅,有2個(gè)比較常用的單位
- 字節(jié):byte 1個(gè)字節(jié)由8bit組成秩仆,可以存儲在8位寄存器中
- 字:word,1個(gè)字由2個(gè)字節(jié)組成猾封,這2個(gè)字節(jié)分別稱為字的高字節(jié)和低字節(jié)
-
比如數(shù)據(jù)20000(4E20H澄耍,0100111000100000B),高字節(jié)的值是78晌缘,低字節(jié)的值是32
- 1個(gè)字可以存在1個(gè)16位寄存器中齐莲,這個(gè)字的高字節(jié)、低字節(jié)分別存儲在這個(gè)寄存器的高8位寄存器磷箕、低8位寄存器中