CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086PC中,内存地址由段地址和偏移地址组成。
8086CPU中有DS寄存器,通常用来存放要访问数据的段地址。
段地址无法直接赋值,只能通过通用寄存器绕远路的方式赋值。
mov bx,1000H
mov ds,bx
mov al,[0]
mov指令的作用:
- 将数据直接送入寄存器
- 将一个寄存器中的内容送入另一个寄存器
- 将一个内存单元中的内容送入一个寄存器中
为了实现3的功能,需要指明从哪一个内容单元送到哪一个寄存器中。内存单元需要用内存单元的地址来指明。
[...]表示一个内存单元,[0]里面的0表示偏移地址。我们知道“物理地址=段地址*16+偏移地址”,这里只给出了偏移地址,那么段地址呢?
其实指令执行时,8086CPU会自动把ds寄存器中的保存的数据作为段地址使用。