UTILIZAÇÃO DA LINGUAGEM ASSEMBLY

O Object Pascal permite incluir código em linguagem Assembly diretamente no código-fonte Pascal. Isso é possível pois o Object Pascal possui um Assembler embutido (BASM), que implementa um subconjunto da sintaxe suportada pelo Turbo Assembler e pelo Microsoft Macro Assembler. O código em Assembly deve ser colocado entre as palavras-reservadas asm e end.

Exemplo:

// O código Assembly no exemplo abaixo incrementa a variável X em 1.
var
  X: Integer;
begin
  X :=0;
  asm
      
 mov eax, X
       inc eax
       mov X,eax

  end;
end;

Exemplo utilizando parâmetros de procedures:

// A procedure Qualquer incrementa a variável X em 1.
procedure Qualquer (X:Integer);
begin
  asm
      
 mov eax, X
       inc eax
       mov X,eax

  end;
end;

Exemplo utilizando passagem de parâmetros por referência:

// A procedure Qualquer incrementa a variável X em 1.
procedure Qualquer (var X:Integer);
begin
  asm
      
 mov eax, X
       inc dword ptr[eax]

  end;
end;

Exemplo utilizando inteiramente código em Assembly:

// A procedure Qualquer incrementa a variável X em 1.
function IncInteiro (X:Integer):Integer;
asm
      
 mov eax, X
       inc eax

end;