私はOS開発クラスの宿題プロジェクトに取り組んでいます。 1つのタスクは、割り込み時にSSEレジスタのコンテキストを保存することです。今、コンテキストの保存と復元は簡単です(fxsave/fxsave)。しかし、私はテストに問題があります。同じサンプルの日付をレジスタの1つに入れたいのですが、エラー割り込み6が表示されます。コードはSSEレジスタをロードする
// 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");
私はインターネットで検索しました。私が得たのは、それが実効アドレス空間と関係するかもしれないということだけです。しかし、私はそれが何であるか分からない。
この動作をするには、何が必要なのですか?「asm volatile( "movups(0x0)、%xmm0"); ' –