【发布时间】:2016-04-30 21:24:52
【问题描述】:
使用 C++ Builder 6 并尝试运行此代码
__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
但我不执行除以零。 这个错误呢
【问题讨论】:
-
如果您是 MMX,您还必须使用 EMMS
-
我看不出它在哪里表明这些指令之一导致异常。你为什么认为它在那里?
-
@wallyk 当我调试它时。我穿过 __asm 行并撞到 'Memo1->Text = "assemble"';
-
@harold 我的任务是使用 mmx 乘以数组。你认为 EMMS 会帮助我吗?
-
EMMS 本身并没有帮助,但为了使后续代码安全,它是必需的。没有 EMMS-ing 会使 FPU 堆栈处于使几乎所有 FPU 代码立即崩溃的状态。导致的错误应该是FPU堆栈溢出但可能对话框没有区分
标签: c++ assembly c++builder-6 mmx