8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址。
比如我们要读取10000H单元的内容,可以用如下的程序段进行:
mov bx,10000H
(1)将数据直接送入寄存器;
mov ds,bx
(2)将一个寄存器中的内容送入另一个寄存器。8086CPU自动取ds中的数据为内存单元的段地址。
mov al,[0]
(3)数据读到al中
上面的三条指令将10000H(1000:0)中的数据读到al中。
注意:8086CPU不支持将数据直接送入段寄存器的操作,ds是一个段寄存器,所以mov ds,1000H这条指令是非法的。那么如何将1000H送入ds呢?只好用一个寄存器来进行中转,即先将1000H送入一个一般的寄存器,如bx,再将bx中的内容送入ds。
网友评论