汇编语言中,SP,BP ,SI,DI作用?

如题所述

这个很简单:
sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段.
bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax,[bp+di+6].
DI:是目的变址寄存器.一般情况下与ds联用,来确定某个储存单元的地址.
SI:是源变址寄存器,默认段地址和DI一样,在DS中.和DS联用.
这四个寄存器,都是16位的,不可以分割为八位.

要注意,1,sp和bp段地址默认在SS中.2..sp指向栈顶元素地址.有自加和自减能力,而bp没有.但是bp可以定位栈中某个元素的物理地址.

DI和SI
这两个属于变址寄存器.可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用时,段地址在SS中.也可以单独使用,单独使用时,段地址默认在DS中,想要越段使用,加上段前缀即可.

在串指令操作中,si和ds联用,确定目标源地址,di和es(附加段寄存器)联用,确定传送的目的地址.说白了就是,分别寻址数据段和附加段.

在串指令中,si和di具有自加和自减功能,

纯手打,望采纳!!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-28
SP 是堆栈指针,当你使用PHSU语句的时候就发现有变化
BP是辅助,在特殊时候用
SI,DI是一组指针
当你需要拷贝一组内存的数据的时候
一般是SI是源数据指针,DI是目的地址指针
CX是计数器,
只要CX不为零,就。。。。
直到完成数据拷贝
第2个回答  2013-04-22
SI是源索引寄存器用于存放源操作数的偏移地址,并自动SI的内容,它被称为源索引寄存器。 DI是目标寄存器是用来存储到目标操作数的偏移地址,并自动的内容的DI,它被称为目标索引寄存器。
第3个回答  2019-09-25
SI:source index; DI: destination index. 一般SI指向源操作数,DI指向目的操作数,比如将数据块从源传递到目的。si---->di.
SP: stack pointer; BP: base pointer. 堆栈中元素先进后出,后进先出,而sp指向栈顶,所以用sp访问堆栈只能得到栈顶数据。如果要得到堆栈中任意元素,不需要将堆栈弹出而使sp指向该元素,使用bp指向该元素即可。
第4个回答  2012-12-31
SP BP堆栈指针(基址寄存器)
SI(原变址) DI(目的变址)变址寄存器