É fácil, você pode experimentar agora :).
-----Um teste que fiz quando estava aprendendo montagem. O primeiro programa é só para dar uma impressão. Depois terá um post que explicará detalhadamente.
unidade Unidade1;
interface
usa
Windows, Mensagens, SysUtils, Variantes, Classes, Gráficos, Controles, Formulários,
Diálogos, StdCtrls, ExtCtrls;
tipo
TForm1 = classe(TForm)
Forma1: Forma T;
Rótulo1: TLabel;
Etiqueta2: TLabel;
Rótulo3: TLabel;
Botão1: Botão T;
Botão2: Botão T;
Etiqueta4: TLabel;
Rótulo5: TLabel;
Rótulo6: TLabel;
Botão3: Botão T;
Procedimento Button1Click(Remetente: TObject);
procedimento Button2Click(Remetente: TObject);
//procedimento Button3Click(Sender: TObject);
//procedimento BtCalcuClick(remetente: TObject);
privado
{Declarações privadas}
público
{Declarações públicas}
fim;
var
Formulário1: TForm1;
função Soma1(X,Y:inteiro):inteiro;
função Soma2(X,Y:inteiro):inteiro;stdcall;
função Soma3(var X,Y:inteiro):inteiro;stdcall;
implementação
{$R *.dfm}
procedimento TForm1.Button1Click(Remetente: TObject);
var
i,j:inteiro;
começar
rótulo1.Caption:=inttostr(soma1(2,3));
rótulo2.Caption:=inttostr(soma2(2,3));
eu:=2;
j:=3;
rótulo3.Caption:=inttostr(soma1(i,j));
fim;
//soma do programa delphi
função Soma1(X,Y:inteiro):inteiro;
começar
resultado:=X+Y;
fim;
//Soma da montagem 1---
função Soma2(X,Y:inteiro):inteiro;stdcall;
começar
asm
mov eax,X
adicione eax,Y
mov @resultado,eax
fim;
fim;
//Somatório da montagem 2---
função Soma3(var X,Y:inteiro):inteiro;stdcall;
começar
asm
mov eax,X
mov eax,[eax]
mov edx,Y
adicionar eax,[edx]
mov @resultado,eax
fim;
fim;
procedimento TForm1.Button2Click(Remetente: TObject);
começar
fechar;
fim;
{procedimento TForm1.Button3Click(Remetente: TObject);
var
QuitFlag:Booleano;
OutBufPtr:Palavra;
começar
asm
mov al,QuitFlag
mov bx,OutBufPtr
fim;
fim;}
fim.