-1

コンパイラgppおよびインテル構文でDJGPPを使用
するインラインアセンブリに変数を渡す方法は?
エラーは次のとおりです:
`n' へ

の未定義参照 コード:

void geninterrupt (int n) {
        asm("mov al, byte ptr [_n]");
        asm("mov byte ptr [genint+1], al");
        asm("jmp genint");
    asm("genint:");
        asm("int 0");
}
4

1 に答える 1

1

djgpp は拡張 asm に gcc 制約システムを使用します。

void geninterrupt (int n) {
        __asm__ __volatile__("mov byte ptr [genint+1], al\n\t"
        "genint: int 0" : : "a" (n));
}

割り込みが変更された場合は、破壊されたレジスタをリストする必要があります。

于 2015-09-01T21:57:19.870 に答える