![]() |
![]() ![]() ![]() ![]() |
|
Присвоить значение полям записи с помощью AssembleraDelphi , Синтаксис , AssemblerАвтор: Xavier Pacheco
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.
Программа на Delphi, демонстрирующая использование языка ассемблера в программе на Паскале для манипуляции памятью и переменными. Вот что код делает:
Комментарии к коду:
Альтернативное решение без использования языка ассемблера: Альтернативное решение достигает того же результата, что и оригинальный код, но использует только встроенные функции Паскаля и является более понятным и поддерживаемым. В статье описывается использование языка программирования Assembler для присвоения значений полям записи, при этом приводится пример кода на Delphi, демонстрирующий изменение значения полей в рекорде и отображение его на форме. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||