Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как присвоить значение полям записи с помощью ассемблера?

01.01.2007
unit Main;
 
interface
 
uses
 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 
StdCtrls;
 
type
  TForm1
= class(TForm)
    Button1
: TButton;
    procedure Button1Click
(Sender: TObject);
 
private
   
{ Private declarations }
 
public
   
{ Public declarations }
 
end;
 
var
  Form1
: TForm1;
 
implementation
 
{$R *.DFM}
 
procedure
Foo(var I: integer);
begin
 
{ some code }
 
asm
    mov eax
, I
    inc dword ptr
[eax]
 
end;
 
{ i has now been incremented by one }
 
{ some more code }
end;
 
type
 
TDumbRec = record
    i
: integer;
    c
: char;
 
end;
 
procedure
ManipulateRec(var DR: TDumbRec);
asm
  mov
[eax].TDumbRec.i, 24
  mov
[eax].TDumbRec.c, 's'
end;
 
procedure TForm1
.Button1Click(Sender: TObject);
var
  R
: TDumbRec;
begin
 
ManipulateRec(R);
 
ShowMessage(IntToStr(R.i));
 
Caption := Caption + R.c;
end;
 
end.

https://delphiworld.narod.ru/

DelphiWorld 6.0