是什么SI和DI寄存器之间的实际差别?
-
18-09-2019 - |
题
我不明白有什么区别。
解决方案
当你使用像MOVSB指令,SI被认为是在取值强>乌尔斯河寄存器,而d 1被认为是在 d 强> estination寄存器。但它们都是正常的x86寄存器。
其他提示
我的组件是有点生锈,但一个是源索引,其他的目标索引。像movsb
将一个字节从存储位置复制的指令指向由SI
,并将其移动到内存位置指向由DI
,然后只它增加到两个,所以如果你想要复制保存在SI+1
到DI+1
字节,需要进一步MOVSB指令。
SI
表示源索引。源索引是用作一个字符串指令(LODS,MOVS,或CMPS)被读取的指针到当前字符。来源指数也可以作为偏移做间接寻址时添加Bx的或BP。结果
例如:
MOV [Bx + SI] , Ax
此指令拷贝Ax的内容到存储器位置为地址为BX和SI的总和。
DI
代表目标索引,用作一个指向当前字符被写入或比较字符串中的指令。
它也可作为偏移就像SI。
如上面告诉二代表目标索引和Si代表源索引,当我们要移动从我们使用SI例如,MOV AX,[SI]存储器中的数据。 而当我们想将数据移动到内存,我们使用双。例如,MOV [二],斧
两者都是16位寄存器,并且不能被分成8位
不隶属于 StackOverflow