SI源变址寄存器,DI目地变址寄存器, 都是变址寄存器,都是在某个地址的基础上进行偏移变化,因此都需要基址寄存器。
(1)SI DI 一般与数据段寄存器DS联用,用来确定数据段中某一存储单元的地址。这两个寄存器有自动增量和自动减量的功能所以用于变址是很方便的。
(2) 在串处理指令中SI 和DI作为隐含的源变址和目的变址寄存器,此时 SI和DS联用,DI和ES联用,分别达到在数据段和附加段中寻址的目的。
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。
SI DI是8086CPU中和bx功能相近的寄存器,SI DI不能够分成两个8位寄存器来使用.
它们只能用做16位寄存器,一般用来存放地址。在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中。 分别达到在数据段和附加段中寻址的目的.
在8086CPU中,只有bx,si,di,bp这4个寄存器可以用在[...]中来进行内存单元的寻址
在[...]中,这4个寄存器可以单个出现或只能以四种组合出现;bx和si,bx和di,bp和si,bp和di。
codesg segment
start:mov ax,datasg
mov ds,ax
mov si,0
mov di,16
mov cx,8
s:mov ax,[si]
mov [di],ax
add si,2
add di,2
loop s
mov ax,4c00H
int 21H
codesg ends
end start