本帖最后由 lanfengc 于 2014-6-6 08:52 编辑
回复 2# seniors
回复 1# cumtljj
如图: 不多说了.
顺便用C语言写了2行代码,希望你能够理解.
#cs
int iVolume=0x00001234;
;C语言源码, 等义变量并初始化
0041140E mov dword ptr [iVolume],1234h
;对应的汇编代码 将1234h (后面带有h代表该数值为16进制数) 送入iVolume变量的内存区域中.
iVolume=iVolume*0x10000+iVolume;
;C语言代码 乘以0x10000 再加上自身
00411415 mov eax,dword ptr [iVolume]
;对应的汇编代码 先将数值调入寄存器EAX
00411418 shl eax,10h
;EAX左移10h (也就是10进制的左移16位) 将原低16位的数值移位到高16为,低16为空出来置零
0041141B add eax,dword ptr [iVolume]
;EAX中的数值加上 iVolume变量存储区的数据 , 截个再放回EAX中.
0041141E mov dword ptr [iVolume],eax
;计算完成, 将EAX的数值写入到 iVolume 变量的内存区域.
#ce
|