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;