2016-04-30 2 views
0

С помощью C++ Builder 6 и пытается запустить этот кодMMX Недопустимая операция с плавающей точкой

__int64 m64_1 = 1424115525456; 
    __int64 m64_2 = 2222222222222; 
    __int64 m64_3 = 1111111111111; 


    __asm movq mm1, m64_1 
    __asm paddd mm1, m64_2 
    __asm movq m64_3, mm1 

Getting and exception

но не выполнять деление на ноль. насчет этой ошибки

+2

Если вы MMX вы должны также Emms – harold

+0

я не вижу, где он показывает, что одна из этих инструкций вызывает исключение , Почему вы думаете, что это там? – wallyk

+0

@wallyk, когда я его отлаживаю. я перехожу через строки __asm ​​и врезался в «Memo1-> Text =" собрать "; – keipa

ответ

0

просто введите __asm emms после команды вашего MMX вроде:

__asm movq mm1, m64_1; 
__asm paddd mm1, m64_2; 
__asm movq m64_3, mm1; 
__asm emms 
+0

Вы действительно должны сделать это ответ сообщества wiki, так как это на самом деле ответ @ harold. –

Смежные вопросы