Вставка Assembler в Delphi - Не получается загрузить в аккумулятор eax данные

Узнай цену своей работы

Формулировка задачи:

Здравствуйте не могу загрузить в аккумулятор eax данные, компилятор отрабатывает, аккумулятор показывает 4354936. Покажите с примером, как это сделать, заранее благодарю.
 unit Assembler;

interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 var
 
  eax,c: integer;
begin
  asm
   mov eax,3
   mov c,2
   imul eax,c
  end;
  ListBox1.Items.Add(IntToStr(eax)+' ');
end;
 
end.
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 var
 
  c: integer;
begin
  asm
   mov eax,3
   mov c,2
   imul eax,c
  end;
  ListBox1.Items.Add(IntToStr(eax)+' ');
end;
 
end.

Решение задачи: «Вставка Assembler в Delphi - Не получается загрузить в аккумулятор eax данные»

textual
Листинг программы
procedure TForm1.Button1Click(Sender: TObject);
 var
 
  a,c: integer;
begin
  c:=2;
  asm
   mov eax,3
   imul c
   mov a,eax
  end;
  ListBox1.Items.Add(IntToStr(a)+' ');
end;

Объяснение кода листинга программы

  1. Объявлены две переменные: a и c типа integer.
  2. Значение переменной c установлено в 2.
  3. Выполняется ассемблерный блок с тремя инструкциями:
    • mov eax,3 - значение переменной eax устанавливается равным 3.
    • imul c - значение переменной eax умножается на значение переменной c.
    • mov a,eax - значение переменной a устанавливается равным значению переменной eax.
  4. В список элементов добавляется строка, содержащая значение переменной a, с добавлением пробела в конец.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы