procedure TForm1.FormCreate(Sender: TObject);
begin
  asm
    push bx
    mov dx,3fh
    in eax,dx
    pop bx
  end;
end;编译通过,但是运行时出现priviledged instruction错误。
请问是什么原因。错误出现在in eax,dx,
请问在Delphi中,win2k或XP中怎么使用in和out指令。

解决方案 »

  1.   

    你是在2K下,必须获得ring0级别才能操作端口
    写驱动吧,呵呵
    或是下一个 winio.dll winio.sys,调用函数就可以了
      

  2.   

    win2k或XP中不能直接对端口操作,需要取得相应权限
    priviledged instruction 没有操作权限
      

  3.   

    win2k或XP中应该有别的方法来解决吧
      

  4.   

    in eax,dx     eax???
    把端口值写给eax??应该是ax或al啊~dos下的汇编是这样的
      

  5.   

    那么 如何在win2k和winxp下操作端口呢 ?
    请详细讲一下
    先谢了
      

  6.   

    win2k或XP中不能直接对端口操作,需要取得相应权限
      

  7.   


    我在9x下沒有見過priviledged instruction错误,那應該是2k/xp之類的操作繫統,這些操作繫統以安全起見,是不會讓妳直接使用in的
      

  8.   

    我认同 Eastunfail(恶鱼杀手)说的,我在98下运行一段汇编控制并口正常,可到2000下不行
      

  9.   

    哪里有在DELPHI下关于用汇编的详细资料,可以来一份吗?
    E-MAIL:[email protected]