RT
文件如下
#include <stdio.h>
#include <dos.h>
void main()
{
outportb(0x2f8,0xff);
}
void outportb(unsigned short port,unsigned char value)//port参数为输出端口地址,value参数为输出值
{
  __asm{
     mov dx , port //把端口地址送到处理器DX寄存器中
     mov al , value // 把value 送到处理器AL寄存器中
     out dx , al // 把AL寄存器中的值送到端口
     };}

解决方案 »

  1.   

    #include <stdio.h>
    #include <dos.h>void outportb(unsigned short port,unsigned char value)//port参数为输出端口地址,value参数为输出值
    {
      __asm{
         mov dx , port //把端口地址送到处理器DX寄存器中
         mov al , value // 把value 送到处理器AL寄存器中
         out dx , al // 把AL寄存器中的值送到端口
         };}
    void main()
    {
    outportb(0x2f8,0xff);
    }
    =========================================================我试了编译可以通过!但,运行时出现访问违例。
      

  2.   

    好像是out在windows下不被允许
    http://www.vckbase.com/document/viewdoc/?id=413
      

  3.   

    我们那个BT老师,既不让用PAI,又不让用控件,XP下又不能直接访问端口,无论是int 14h还是int 21h这个也都不能用,真不知道怎么办好了,
      

  4.   

    http://www.codeguru.com/forum/showthread.php?t=319671
      

  5.   

    out是特权指令,只能用于9x下
    你可以找一个PortTalk的驱动程序,它允许你使用out指令
      

  6.   

    char inportb(unsigned short int port)
    {
    char a;
    __asm{
    mov dx, port
    in  al, dx
    mov a, al
    }
    return a;
    }这个函数有问题吗?
    帮我看看啊怎么结果总不正确呢
      

  7.   

    是局部变量没错啊,这几句在VC6里总是不能正常,在BCB6里是行的