Asm
  mov dx, PortNum;
  mov al, 123;
  out dx, al;
end;Asm
  mov dx, PortNum;
  in al, dx
end;

解决方案 »

  1.   

    小弟初学DELPHI,还请whoo兄再讲解一下:我又怎么得到和设置这几个寄存器的值呢?
      

  2.   

    get:
    mov Value,alset:
    mov al,ValueValue可以为变量,也可以为数值。
    如果是Fuction返回则
    mov @result,al
      

  3.   

    var 
       Value:Ingeger
    being
      asm
         move Value,ax
         .
         .end
      

  4.   

    asm
          mov DX, address
          mov AL, bValue
          out DX, AL
    end;asm
          mov DX, address
          in  AL, DX
          mov bValue, AL
    end;
      

  5.   

    端口地址可以在系统信息-硬件资源-IO里查
    举个并口例子
    const
    PORT  =$378;
    Function tform1.inportb(port:word):byte;
    var rr:byte;
    begin
    asm
       mov dx,port
       in al,dx
       mov rr,al
    end;
    result:=rr;
    end;
    Function tform1.outportb(port:word;command:byte):integer;
    begin
    asm
       MOV DX,port
       mov al,command
       out dx,al
    end;
    end;
      

  6.   

    端口地址可以在系统信息-硬件资源-IO里查
    举个并口例子
    const
    PORT  =$378;
    Function tform1.inportb(port:word):byte;
    var rr:byte;
    begin
    asm
       mov dx,port
       in al,dx
       mov rr,al
    end;
    result:=rr;
    end;
    Function tform1.outportb(port:word;command:byte):integer;
    begin
    asm
       MOV DX,port
       mov al,command
       out dx,al
    end;
    result:=1;
    end;
      

  7.   

    我来一段
    PROCEDURE  XXXX;
    .......
    begin
       if (StartPos-1) > SourceLen then
       begin
          Result := 0;
          Exit;
       end;
       SourceLen := SourceLen - StartPos;
       SourceLen := SourceLen +2;
       asm
          push ESI
          push EDI
          push EBX
          mov EDI, aSourceString
          add EDI, StartPos
          Dec EDI
          mov ESI, aFindString
          mov ECX, SourceLen
          Mov Al, [ESI]
       @ScaSB:
          Mov Ah, [EDI]
          cmp Ah,Al
          jne @NextChar
       @CompareStrings:
          mov EBX, aFindLen
          dec EBX
          Jz @EndOfMatch
       @CompareNext:
          mov Al, [ESI+EBX]
          mov Ah, [EDI+EBX]
          cmp Al, Ah
          Jz @Matches
          Mov Al, [ESI]
          Jmp @NextChar
       @Matches:
          Dec EBX
          Jnz @CompareNext
       @EndOfMatch:
          mov EAX, EDI
          sub EAX, aSourceString
          inc EAX
          mov Result, EAX
          jmp @TheEnd
       @NextChar:
          Inc EDI
          dec ECX
          jnz @ScaSB
          mov Result,0
       @TheEnd:
          pop EBX
          pop EDI
          pop ESI
          pop ESI
       end;
    end;