程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi+匯編例子1(求和的比較)

Delphi+匯編例子1(求和的比較)

編輯:Delphi
簡單的,你現在就可以試一試:)。

  

-----以前學匯編的時候做的測試。第一個程序只是給您個印象,後面還有一個帖子,在詳細說說。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
  Shape1: TShape;
  Label1: TLabel;
  Label2: TLabel;
  Label3: TLabel;
  Button1: TButton;
  Button2: TButton;
  Label4: TLabel;
  Label5: TLabel;
  Label6: TLabel;
  Button3: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  //procedure Button3Click(Sender: TObject);
  //procedure BtCalcuClick(sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;
  function Sum1(X,Y:integer):integer;
  function Sum2(X,Y:integer):integer;stdcall;
  function Sum3(var X,Y:integer):integer;stdcall;
  implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
  i,j:integer;
  begin
  label1.Caption:=inttostr(sum1(2,3));
  label2.Caption:=inttostr(sum2(2,3));
  i:=2;
  j:=3;
  label3.Caption:=inttostr(sum1(i,j));
  end;

//Delphi程序求和
  function Sum1(X,Y:integer):integer;
  begin
  result:=X+Y;
  end;

//匯編求和1---
  function Sum2(X,Y:integer):integer;stdcall;
  begin
  asm
  mov eax,X
  add eax,Y
  mov @result,eax
  end;
  end;
  //匯編求和2---
  function Sum3(var X,Y:integer):integer;stdcall;
  begin
  asm
  mov eax,X
  mov eax,[eax]
  mov edx,Y
  add eax,[edx]
  mov @result,eax
  end;
  end;


  procedure TForm1.Button2Click(Sender: TObject);
  begin
  close;
  end;

{procedure TForm1.Button3Click(Sender: TObject);
  var
  QuitFlag:Boolean;
  OutBufPtr:Word;
  begin
  asm
  mov al,QuitFlag
  mov bx,OutBufPtr
  end;
  end;}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved