本人新手,为什么stos有2个版本的解释啊?
一个版本是这样的:
格式:stos oprd ,其中oprd 为目的串符号地址
功能:将AL或者AX中的数据存储到DI为 目的串地址指针所寻址的存储器单元中去,指针DI将根据DF的值进行自动调整。
串操作指令,默认使用的段是DS和ES。
stos指令默认的目的段是ES,索引指针是DI。即ES:DI。与之相对的是lods指令,它的默认段寄存器是DS,索引指针是SI。即DS:SI
然后,这篇文章是这样写的:
http://apps.hi.baidu.com/share/detail/34046647
stos((store into String),意思是把eax的内容拷贝到目的地址。
我也是在看C++的反编译,好像和这个文章说的很类似啊
请问下这个是什么情况?
------解决方案--------------------------------------------------------
stos指令的含义是:将寄存器(AX,EAX)里的内容存储(store)到内存单元(地址ES:DI);作为参考,与之反操作的指令是lods,它的含义是将内存单元(地址:DS:SI)中的内容装入(load)到寄存器(AX,EAX)。
C++反汇编的汇编指令也应该是X86基于指令集的(如无特殊说明),所以,意思是一样的。
------解决方案--------------------------------------------------------
stos根据操作单元的大小有几种方式byte/word/dword等,你选择你需要的方式