[旧帖]
[求助]问一个字符串传送指令的问题
0.00雪花
发表于:
2009-4-30 12:15
3028
[旧帖] [求助]问一个字符串传送指令的问题
0.00雪花
指令:
std
rep movs dword ptr es:[edi], dword ptr ds:[esi]
寄存器数据:
ecx=00000003 (十进制 3.)
ds:[esi]=[0048C88A]=6E656461
es:[edi]=[00A8564D]=080048F6
为执行前内存数据:
0048C87A FF FF 0E 00 00 00 69 20 61 6D 20 42 69 6E 20 4C ...i am Bin L
0048C88A 61 64 65 6E 00 00 FF FF FF FF 12 00 00 00 69 20 aden.....i
0048C89A 61 6D 20 79 69 20 7A 68 69 20 6C 61 6F 20 68 75 am yi zhi lao hu
00A8562D 00 00 00 01 00 00 00 19 00 00 00 77 68 61 74 64 .........whatd
00A8563D 61 79 69 74 69 73 00 00 00 00 20 00 00 00 00 08 ayitis.... ....
00A8564D F6 48 00 08 00 48 00 08 F6 48 00 08 F6 48 00 A8 鯤..H.鯤.鯤.
执行后
00A8562D 00 00 00 01 00 00 00 19 00 00 00 77 68 61 74 64 .........whatd
00A8563D 61 79 69 74 69 73 00 00 61 6D 20 42 69 6E 20 4C ayitis..am Bin L
00A8564D 61 64 65 6E 00 48 00 08 F6 48 00 08 F6 48 00 A8 aden.H.鯤.鯤.
这个和我预想的不同 我想的是0048C88A开始的3个双字 复制到00A8564D开始的地址中还对 意思是说不管是源地址还是目标地址都是应该增加的 为什么向减少的地址中复制呢 现在是在反向复制 是不是std这个指令的原因呢?
这是 std的解释 例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
看了下还是不清楚 请各位帮我解答下
[注意]看雪招聘,专注安全领域的专业人才平台!