彙編學習記錄之三
阿新 • • 發佈:2018-11-27
資料來源:組合語言第二版-王爽
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 可以看作是基礎地址。
有錯誤請指正,謝謝。