第三章 寄存器(内存访问)
3.1 内存中字的存储
CPU中,使用16位寄存器来存储一个字.高8位存放高位字节,低8位存放低位字节.内存单元是字节单元,所以需要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址中,高位字节存放在高地址中.
字单元: 即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成.
我们将起始地址为N的字单元简称为N地址字单元.
3.2 DS和[address]
8086CPU中有一个DS寄存器,通常用来存放访问数据的段地址.
如果我们要读取10000单元的内容,程序如下.
mov bx,1000H
mov ds,bx
mov al,[0]
上面的3条指令将10000H(1000:0)中的数据读到al中.
"[…]“表示一个内存单元,”[…]"中的0表示内存单元的偏移地址.指令执行时,8086CPU自动取ds中的数据为内存单元的段地址.
8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器.
3.3 字的传送
因为8086CPU为16位结构,有16根数据总线,所以可以一次性传送16位数据,即一个字.只要在mov指令中给出16位的寄存器就可以进行16位数据的传送.比如.
mov bx,1000H
mov ds,bx
mov ax,[0] ;1000:0处的字型数据送入ax
mov [0],cx ;cx中的16位数据送到1000:0处
内存