fsubr dword ptr [eax]
fst dword ptr [eax]
mov [ebp-00000084],00000000
我想要做的是添加而不是减去,这样它所获得的差异将大于原始而不是较小。
我知道这是一个非常新秀的问题,我只是刚开始尝试学习装配,但答案将帮助我更好地理解。
其次,是否可以检查存储的操作数是否小于0,如果是,则将其乘以-1?这样可以确保始终将更大的操作数复制到内存中并且没有更少的操作数(如果某些事物使用负数而不是正数来折磨价值)。
答案 0 :(得分:0)
该片段中的说明执行以下操作:
fsubr dword ptr [eax]
这是一个反向减法,从st0
寄存器中地址的内存中找到的数字减去浮点堆栈eax
的顶部,并将结果放回{{1} }。
st0
将fst dword ptr [eax]
存储到st0
指向的内存地址。
eax
这与计算无关。
mov [ebp-00000084],00000000
。fadd
或特殊情况fcom
。ftst0
乘以fmul
或特殊情况-1
。说明文件很多,例如伊利诺伊大学有x86 instruction reference文件。