IO指令模拟流程(3)

来源:互联网 发布:天津摩卡软件 编辑:程序博客网 时间:2024/06/10 01:42

我们的指令是e6 70 66 9c 66 9d

其中有效部分是e6 70,详情可查看intel手册

switch(b)中可以查到这样的case,对应的指令就是out %al,imm8

于是会调用io写操作

    case 0xe4: /* in imm8,%al */

    case 0xe5: /* in imm8,%eax */

    case 0xe6: /* out %al,imm8 */

    ……  

        if ( b & 2 )

        {

            /* out */

            fail_if(ops->write_io == NULL);

            rc = ops->write_io(port, op_bytes, _regs.eax, ctxt);

        }

    ……

     }

write_io是一个函数指针,指向hvmemul_write_io

hvmemul_write_iohvmemul_do_piohvmemul_do_io

原创粉丝点击