内联汇编从IO端口读取字和双字

时间:2015-03-10 09:09:44

标签: debugging assembly x86 inline-assembly kvm

我在以下代码中的 inw 命令之后出现了分段错误:

    n=0;
    unsigned short port_in = 0;

    set_dr7(0x60000480);
    asm volatile("movw %0, %%dx \n\t"
                 "outsw \n\t"
                 : : "i"((short)(TESTDEV_IO_PORT + 3)), 
                 "S"(st1));          
    asm volatile("inw %1, %0\n\t" : "=a"(port_in) : "i"((short)(TESTDEV_IO_PORT+3)));

我已经尝试过,inl等等...但我仍然有分段错误。 当我尝试将in_ port_in声明为unsigned char时 - 它没有分段错误 - 但我需要 inw inl 进行另一次测试。

我的代码中有什么问题?

一般来说,我正在尝试将测试添加到kvm-unit-test。

0 个答案:

没有答案