+ -
当前位置:首页 → 问答吧 → 反汇编疑问

反汇编疑问

时间:2010-12-04

来源:互联网

1.
Assembly code

mov     word ptr [esp+0BCh+var_A4+2], cx  ;假设cx=A
mov     ecx, [esp+0BCh+var_A4]



2.
Assembly code

mov     word ptr [esp+0BCh+var_A0], dx   ;假设dx=B
mov     edx, [esp+0BCh+var_A0]



请问这两段代码的结果是不是:
1.ecx=A*65536
2.edx=B
?

作者: PDD123   发布时间: 2010-12-04

假设原来 esp+0BCh+var_A4单元是DF,esp+0BCh+var_A4+1 单元是GH,esp+0BCh+var_A4+2 单元是IJ,esp+0BCh+var_A4+3 单元是KL,cx=ABCD,则
mov word ptr [esp+0BCh+var_A4+2], cx ;后esp+0BCh+var_A4+2 单元变成CD,esp+0BCh+var_A4+3 单元是AB
mov ecx, [esp+0BCh+var_A4] 后,ECX为 ABCDGHDF,所以应该是 原CX乘以65536再加上原esp+0BCh+var_A4单元的字。

类似的,第二段程序应该是edx没变(但不一定是B,还要看高其16位的内容)。
 

作者: shzhfu   发布时间: 2010-12-04