procedure WritePort(PortAdress:word;Value:byte); pascal;
begin
  asm
    mov al,Value
    mov dx,PortAdress
    out dx,al
  end;
end;function ReadPort(PortAdress:word) : byte; pascal;
begin
  asm
    mov dx,PortAdress
    in  al,dx
    mov @result,al
 end;
end;

解决方案 »

  1.   

    谢谢大家forgot2000(忘记2000年)  NT下 这段代码行不行!
      

  2.   

    不用给分我,只想知道什么是UP?太久没来CSDN,落伍了555
      

  3.   

    在98里用ASM是可以的,我也一直在找一个解决方案,但也没有成功。
    据说VXD可以,但对VXD我又不甚明白。帮你提前。
      

  4.   

    NT,2000下直接对端口操作很困难,你的程序必须运行在ring0级,
    你可以在Delphi Super Page网站上找到这样的控件,看看他们的代码!
      

  5.   

    在Nt 2000下直接写比较困难,你的代码必须能运行在ring0级
    可以到Delphi  Super Page上找这样的控件代码研究研究!
      

  6.   

    用API可以,不过用汇编肯定行的,汇编是直接对硬件操作的,肯定行!
      

  7.   

    API可以的,但我看用汇编是最好的,汇编是直接对硬件进行操作的,所以用汇编可能没问题!
      

  8.   

    书店有一本Delphi串行端口编程
      

  9.   

    我的机器里的ISA槽插了个串口卡,我要操作这个串口卡和外面的机器进行通讯.我想要象操作com1和com2一样操纵这个串口卡上的串口.他和串口com1什么都一样只是地址不一样.就这么个问题.要求在nt下运行!
      

  10.   

    我用的就是串口卡,用MSComm控件或者PCComm控件就可以了。
    它们的端口号是从3开始往下排。很简单。没有必要进行地址操作。
      

  11.   

    在我的印象中有个genport.sys的驱动文件,不知道是干嘛的,反正很多需要和串并口通讯的Delphi软件都带的有
      

  12.   

    建议用汇编,我做过一个类似的,和一块ISA的IO卡通讯,IO卡是仿真8255来工作的,我就是用汇编来写的,挺好的。不过如果要在NT下运行则需要多做些工夫。
      

  13.   

    用CREATEFILE,WRITEFILE,READFILE可以吗?
      

  14.   

    书店的Delphi串口是针对25针的,不太好。还是去网上搜索把,很多的。还有,很多串口卡直接提供了操作的函数,用供应商提供的函数就行了。
      

  15.   

    伙计们,我的ISA串口卡可是在95年以前就做好的,以前都在dos下用,占用了230地址在dos下用没问题,进入win98他就相当于主板的一部分,我只能直接操作io地址,
    但我对这个没一点概念,根本不知道如何下手!
      

  16.   

    lpt口或com口可能用file就可以了吧?
      

  17.   

    利用 Delphi实现串口通信的常用的方法有 3种:一是利用控件,如 MSCOMM控件和 SPCOMM控件;二是使用 API函数;三是调用其他串口通信程序。其中利用 API编写串口通信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用 SPCOMM控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,而且还支持多线程。
      

  18.   

    asm:
       ,,,,,,,,
       ,,,,,,,,,
       ,,,,,,,
    end
       很好的,在试试,,,,,,,
      

  19.   

    http://www.yes2.net/soft/readclass.asp?class=209&super=190
      

  20.   

    搞定可以在NT下读写端口,但程序还要写很多,一歌一个端口写,通讯~~~~~~~~~~~delphi深度历险有控件  DLPortIO谢谢大家,好东西收藏吧!
      

  21.   

    可以以一种开文件方式开串口具体的例程在网上可以搜
    FileOpen('com1',.......)
    FileOpen('com2',.......);