我正在为操作系统开发课做作业项目。一项任务是在中断时保存 SSE 寄存器的上下文。现在,保存和恢复上下文很容易(fxsave/fxsave)。但我有测试的问题。我想将相同的样本日期放入其中一个寄存器,但我得到的只是错误中断 6。这是代码:
// load some SSE registers
struct Vec4 {
int x, y, z, w;
} vec = { 0, 1, 2, 3 };
asm volatile ( "movl %0, %%eax"
: /* no output */
: "r"( &vec )
:
);
asm volatile ( "movups (%eax), %xmm0" );
我在互联网上搜索解决方案。我得到的只是它可能与有效地址空间有关。但我不知道它是什么。