Из своего опыта могу сказать что через cmp сравнение float работает некорректно. Особенно если float имеет отрицательное значение. Я использовал fpu.
Из старого трейнера -
fld dword ptr [Camera_Original_Pitch]
fcomp dword ptr [Mouse_Screen_Y_Min_Value]
fstsw ax
sahf
jae @f