Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Você Sabia?

Veja neste artigo de Adail Muniz, algumas dicas pouco conhecidas do Delphi.

, ativado no Windows NT e XP ao executar o arquivo cmd.exe (ou mesmo o antigo command.com, este também disponível nos Windows 9x), é um “emulador” do ambiente MS-DOS, que foi durante muitos anos a plataforma de trabalho de muita gente por aí (alô Clippeiros!).

Figura 1.

?) para delimitar o texto desejado. Mas naquela época... Tínhamos que fazer isso “na unha”...

Listagem 1. Trabalhando com parâmetros da linha de comando

program SuperParam;

var

  p: Integer;

begin

  WriteLn('Super-Param V. 1.0');

  WriteLn;

  if ParamCount = 0 then

    WriteLn('Nenhum parametro digitado.')

  else

  begin

    WriteLn('Numero de parametros: ', ParamCount);

    WriteLn;

    for p := 0 to ParamCount do

      WriteLn('Parametro ', p, ': ', ParamStr(p));

  end;

  ReadLn; // só necessário se for executar dentro do IDE

end.

begin

  Result := ParamStr(0);

end;

Listagem 2. Arquivos padrões para entrada e saída

program SuperPipe;

var

  Linha: string;

begin

  WriteLn(Output, 'Super-Pipe V. 1.0');

  WriteLn(Output);

  WriteLn(Output, 'Inicio da entrada');

  WriteLn(Output, '-----------------');

  while not EOF(Input) do

  begin

    ReadLn(Input, Linha);

    WriteLn(Output, Linha);

  end;

  WriteLn(Output, '-----------------');

  WriteLn(Output, 'Fim da entrada');

end.

-----------------

 Volume in drive C is Adail.

 Volume Serial Number is 38B1-C70C

 

 Directory of C:\...

 

04/12/2005  00:57    <DIR>          .

04/12/2005  00:57    <DIR>          ..

04/12/2005  00:45    <DIR>          ModelSupport_SuperPipe

04/12/2005  00:57             8.370 SuperPipe.bdsproj

04/12/2005  00:57               383 SuperPipe.bdsproj.local

Batatinha quando nasce

Se esparrama pelo chao

^Z

Batatinha quando nasce

Se esparrama pelo chao

^Z

em aplicações Windows gerará uma exceção!

Borland Delphi for Win32 compiler version 18.0

Copyright (c) 1983,2005 Borland Software Corporation

 

Syntax: dcc32 [options] filename [options]

C:\...>dcc32 SuperParam

Borland Delphi for Win32 compiler version 18.0

Copyright (c) 1983,2005 Borland Software Corporation

SuperParam.dpr(22)

23 lines, 0.28 seconds, 13432 bytes code, 12168 bytes data.

 

Listagem 3. Arquivo batch para compilação

echo.

dcc32 %1 %2 %3 %4 %5 %6 %7 %8 %9

if ErrorLevel 1 goto ERRO

echo.

Borland Delphi for Win32 compiler version 18.0

Copyright (c) 1983,2005 Borland Software Corporation

SuperParam.dpr(8) Error: E2029 ';' expected but 'BEGIN' found

8 a 20 MHz (compare com seu P4 a 2 GHz). Cada ciclo de máquina economizado poderia significar a diferença entre um desempenho medíocre e um excepcional!

Listagem 4. Programando com inline assembler

{$APPTYPE CONSOLE}

 

function SomaPascal(X, Y: Integer): Integer;

begin

  Result := X + Y;

end;

 

function SomaAssembler(X, Y: Integer): Integer;

asm

  MOV EAX, X

  ADD EAX, Y

end;

 

begin

  WriteLn(SomaPascal(123, 321));

  WriteLn(SomaAssembler(123, 321));

  ReadLn;

end.

 

em Delphi. Os painéis no canto superior direito exibem os valores atuais dos registradores, sendo que o painel mais à direita exibe cada bit do registrador de flags (EFL).

Figura 2. A janela CPU

em Pascal. Você pode depurar normalmente, com F8 (Step Over) e F7 (Trace Into). Vamos, experimente! Ao chegar à chamada da função SomaPascal, use o F7 para ver o código dela. Faça o mesmo para ver o código da função SomaAssembler. A Figura 3 mostra o código compilado das duas funções.

Figura 3. Comparando o código das duas funções

em Assembly. E ainda tem gente que não entende porque um programa compilado em Delphi é tão rápido...

em Assembly. Eu recomendo esse exercício, mesmo para os mais “feras” em Delphi.

Museu da Borland, onde podem ser baixadas verdadeiras relíquias como o Turbo Pascal 1.0, 3.02 e 5.5.





    3 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Marcos Rocha
Muito, mas Muito Bom mesmo!


em 7/5/2007 13:31 - Responder

 

Celito Gregolon Júnior
Cara! Simplesmente fantástico... este seu artigo. Sem mais comentários... parabéns!


em 12/6/2007 16:53 - Responder

 

Rogerio Santos Teixeira
   Muito bem lembrado o assunto sobre Assembly, se você tiver alguma apostila sobre as instruções em Assembly e puder me enviar fico grato. Como é um assunto bem antigo, já esqueci quase todas.  Grato


em 20/12/2008 09:25 - Responder

 



[Este post ainda não foi associado a uma sequência]
Autor
Adail Muniz Retamal

Desenvolvedor desde 1983, Engenheiro Eletrônico/Computação, dedica-se sempre ao compartilhamento do conhecimento e da experiência de maneira simples e prática, seja nos artigos, palestras, cursos ou no dia-a-dia com os colegas.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
5   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da ClubeDelphi ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03