标签:amp str image 信息 变化 style ptr lazy 记录
标志寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。
如一个flag寄存器为:
0000 0206 (16进制)
拆成(2进制):
0000 0000 0000 0000 0000 0010 0000 0110
第10位从下标开始算:
0000 0000 0000 0000 0000 0010 0000 0110
DF位如果是0的时候,每次执行完MOVS指令后,ESI和EDI的地址都会发生变化。
Debug工具中双击D即可修改:
例:MOVS指令复制内容:MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
正常执行结束,ESI和EDI的值应该变成98和78
ESI和EDI存的地址:,且DF位设置为1。正
ESI&EDI存的地址的值:
F8执行完结果:可见94位置的数据两个字的数据已经被全数复制到了74位置。
这时再看ESI和EDI的变化:,原本的94和74已经变成了90和70。两个的值都向后退了4位。
标签:amp str image 信息 变化 style ptr lazy 记录
原文地址:https://www.cnblogs.com/codexlx/p/13245935.html