简述8086/8088中SP、BP、SI、DI的特殊用途。
SP、BP、SI、DI分别叫做指示器和变址寄存器,它们的通常用法是在寻址过程中作为偏移地址寄存器。此外它们还有自己的特殊用法。SP和BP在运算中为访问当前堆栈数据提供了方便,把堆栈段作为一个“数据区”,对执行高级语言很有用途。这样,除非特别指定,存放在指示器中的偏移量,总是假定为引用当前的堆栈段。有些指令又把SP和BP加以区分,如PUSH、POP用SP作偏移量。BP不能用作这个目的,但却可以用作堆栈段中一个数据区的“基址”的偏移量。SI和BI一般是作为引用当前数据段基址的偏移量。另外的数据串操作指令中,SI和DI的使用非常专一。SI只能作为源操作数的偏移地址,而D1只能作为目标操作数的偏移地址。二者绝对不可以互换。另外,在串操作指令中,串指令不能直接地指定它们,因为它们是被隐含指定的。