资料来源:汇编语言第二版-王爽
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 可以看作是基础地址。
有错误请指正,谢谢。