http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.artofasm.com/index.html
http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html
资料很不错。
mov eax,dword ptr [edx]----从edx这个地址取dword(4byte)放到eax里面。
float操作
fld dword ptr [esp+48h] ----从esp+48h取32bit的float值到stack上。
fld st(i) ----把st(i)中的值push到float register stack上。
st是float专用的register,一共8个。
fxch register:exchange value on top of register stack with register。一些操作只能针对stack top才能进行。
fstp dword ptr [esp+1Ch] ----把stack顶端的值存到esp+1ch指向的内存地址。
fnstcw word ptr [esp+10h] ----把fpu register的值存到一个通用register里
fistp dword ptr [esp+40h] ----把stack顶端的80bitfloat转成int(16,32bit...)然后存到esp+40h地址里面。