好像是不行
因为当你这样写时
procedure TPort.WriteByte(b:byte);
var
  tempPort:word;
begin
  tempPort:=port;
  asm
    mov dx,tempPort
    mov al,c
    out dx,al
  end;
end;
编译器会为你产生Self: TPort,好像是这样子
TempPort := Port
其实是 
TempPort := Self.Port;
而在asm..end中则不会,我是这么认为的
如果你这样写应该行
MOV DX,[EAX + OFFSET PORT] 这是我自己瞎试的,其中EAX即为当前实例的指针