如下代码中,为什么我在 “push Angle2” 中,把 “Angle2”直接写出具体的浮点数字,比如 0.99877654321等会出错?
push的用法是否后面必须跟一个16进制整数 或者 变量 ?
非常感谢大虾的指导!
float Angle1=cos(Angle);
float Angle2=sin(Angle);
_asm
{
PUSH 0
PUSH Angle2
PUSH 0
PUSH Angle1
}
------解决方案--------------------------------------------------------
push imm,立即数是整数,当然,你可以把浮点数转成整数写到代码里。
unsigned int i = *(int*)&f;
i显示出来的就是浮点格式直接转成uint的值,这个值就可以直接写到push里面,也成功将“浮点数”压栈
不过通常不会直接压立即数...