我不明白有什么区别。

有帮助吗?

解决方案

当你使用像MOVSB指令,SI被认为是在取值乌尔斯河寄存器,而d 1被认为是在 d estination寄存器。但它们都是正常的x86寄存器。

其他提示

我的组件是有点生锈,但一个是源索引,其他的目标索引。像movsb将一个字节从存储位置复制的指令指向由SI,并将其移动到内存位置指向由DI,然后只它增加到两个,所以如果你想要复制保存在SI+1DI+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位

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top