065-Assembly彙編02


彙編語言有三類組成
1.彙編指令      (機器碼的助記符)
2.僞指令     (由編譯器執行)
3.其他符號      (由編譯器識別)


存儲器
CPU是計算機的核心部件,控制運作和運算
要向CPU提供指令和數據
那麼這些指令和數據就放在一個存儲器中
這個存儲器就是內存


磁盤和內存不一樣
磁盤中的數據不讀取到內存中
就無法被CPU使用


在內存或磁盤上,指令和數據沒有區別
因爲他們都是二進制信息


1.6存儲單元
存儲器被劃分成若干個存儲單元
每個存儲單元從0開始順序編號
比如
一個存儲器有128個存儲單元
那麼編號爲0-127


1.7
連接CPU和其他芯片的導線
稱爲 總線
邏輯上分爲:
1.地址總線
2.數據總線
3.控制總線


1.7三個總線如何控制
CPU這邊有3個信息
地址 3    -
數據 0    -內存3號地址100
控制 讀    -

1.CPU通過地址總線發送3,那麼內存就知道了,要操作3
2.CPU通過控制總線發送讀,那麼內存就知道了,要讀取
3.CPU現在知道了要讀取3號地址,那麼把100通過數據總線傳送給CPU

寫入也是一樣
1.地址總線給了3
2.控制總線給了寫
3.數據總線把100寫到3號地址


1.8地址總線
假設CPU有2根地址總線
那麼CPU可以同時發送2個信號
比如 00 01 10 11,
所以如果有n根地址總線
就可以同時發送n個信號
那麼就可以表示2^n個地址

我們可以說CPU的寬度爲N
最多可以尋找2的N次方個內存單元

現在的32位計算機,64位計算機
就是寬度爲32和寬度爲64
那麼32位一次可以走4個字節
那麼64位一次可以走8個字節


1.9
8088CPU一次走8位,一個字節
8086CPU一次走16位,2個字節


1.11
如果一個CPU的地址寬度爲10
那麼就可以尋址1024個內存單元
那麼這1024個內存單元構成了
內存地址空間


1.14
RAM 隨機存儲器
ROM 只讀存儲器

 

 

第二章 寄存器
8086的CPU所有的寄存器都是16位,可以存放2個字節
16位寄存器能存儲的最大值爲2^16-1

爲了保持兼容
每個寄存器都分爲2個獨立的8位寄存器
AX分爲AH,AL  (high,low)
BX分爲BH,BL
CX分爲CH,CL
DX分爲DH,DL


2.3簡單彙編指令
mov ax,18    ax=18
mov ah,18    ah=18
add ax,8        ax=ax+8
mov ax,bx    ax=bx
add ax,bx        ax=ax+bx

練習題
mov ax,8226H    ax=8226H
mov bx,8226H     bx=8226H
add ax,bx        ax=ax+bx
最後
ax=1044CH
由於只能存4位,結果ax是
044CH
那麼
AH是04
AL是4C


現在ax是044CH
add al,90H    al=al+90H
結果4C加90是13C    但是1不會進位
所以ah還是ah
所以ax是043CH,
所以ah和al是不一樣的

 

2.4物理地址
CPU訪問內存單元時要給出內存單元的地址.
所有的內存單元構成的存儲空間是一個一維的線性空間.

 

2.6.8086CPU物理地址
8086有20位地址總線,尋址能力爲1M
8086內部爲16位結構,只能傳送16位的地址,尋址能力爲64K

 

2.9 段寄存器
段寄存器提供段地址
8086CPU有4個段寄存器
CS,DS,SS,ES

CS爲代碼段寄存器
IP爲指令指針寄存器

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章