1、通过前一篇章的学习,知道CS和IP寄存器的内容合成的物理地址指向的是执行指令的地址。而访问内存也需要知道内存的地址,内存地址也是由段地址和偏移地址组成,8086CPU中默认存放内存地址段地址的寄存器是DS寄存器,偏移地址则是由[n]表示,n表示偏移量。例子:
MOVBX,1000H //将1000H存放到BX寄存器当中
MOVDS,BX //将BX中的值(1000H)存放到段寄存器DS中
MOVAL,[0] //注意这里,既然是AL,那么移动是以字节为单位,
//因为AL为AX的低位,长度为8位。[0]表示内存
//偏移地址是0H,默认段地址为DS中的值1000H,
//整体意思是将10000H中的数据存放在AL中。
(1)要注意,数据和段寄存器直接是不能直接传递的,因此必须以普通寄存器为中介,现将数据存入通用寄存器,再将通用寄存器的数据传入段寄存器中。
(2)假如第三条指令是MOV AX,[0],那么就是传递一个字的内容,就是将10000H和10001H中的数据总计16位存入寄存器AX当中。
2、内存单元(以字节为单位)存储数据时,是以字节为单位存放,存放的形式与系统是大端还是小端有关。小端是低地址存放低位字节,高地址存放高位字节;大端则是低地址存放高位字节,高地址存放低位字节。这里讲的8086是小端系统。8086的寄存器是16位。那么一次性可以存放一个字(两个字节)。而存放一个字是用两个地址连续的内存单元来存放,由低地址到高地址