1. 程式人生 > >彙編學習記錄之三

彙編學習記錄之三

資料來源:組合語言第二版-王爽

1.記憶體中字的儲存

在CPU中,用16位暫存器來儲存一個字。高8位存放高位位元組,低8位存放低位位元組。

記憶體單元:記憶體單元是位元組單元,一個單元存放一個位元組。

字單元:存放一個字型資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成。

2.ds和[address]

ds是資料段暫存器

在8086CPU中,記憶體地址由段地址和偏移地址組成(cs/ds/es/ss:[address])

mov ax, ds:[0]

mov al, ds:[0]

mov ds:[0], ax

mov ds:[0], es:[1]

3.修改ds的內容

mov ax, 1000H

mov ds, ax

4.字的傳送

因為8086CPU是16位結構,有16根資料線,所以可以一次性傳送16位的資料,也就是說可以一次性傳送一個字。

如:

mov bx, 1000H

mov ds, bx

mov ax, ds:[0]    //將1000:0處的字型資料送入通用暫存器ax中

mov ds:[0], ax    //將通用暫存器ax中的16位字型資料送到1000:0處

5.定址模式的本質含義

定址模式:“段地址 * 16 + 偏移地址 = 實體地址” 的本質含義是:CPU在訪問記憶體時,用一個基礎地址(段地址 * 16)和一個相對於基礎地址的偏移地址相加,給出記憶體單元的實體地址。

更一般地說,8086CPU的這種定址功能是“基礎地址 + 偏移地址 = 實體地址”定址模式的一種具體實現方案,8086CPU中,段地址 * 16 可以看作是基礎地址。

 

有錯誤請指正,謝謝。