簡単ですので、今すぐ試してみてください:)。
-----アセンブリを学習していたときに行ったテスト。最初のプログラムは印象を与えるだけです。後で詳しく説明する投稿があります。
ユニットユニット1;
インタフェース
用途
ウィンドウ、メッセージ、SysUtils、バリアント、クラス、グラフィックス、コントロール、フォーム、
ダイアログ、StdCtrls、ExtCtrls;
タイプ
TForm1 = クラス(TForm)
形状 1: T 形状;
ラベル 1: T ラベル;
ラベル 2: T ラベル;
ラベル 3: T ラベル;
ボタン 1: T ボタン;
ボタン 2: T ボタン;
ラベル 4: T ラベル;
ラベル5: Tラベル;
ラベル6: Tラベル;
ボタン 3: T ボタン;
手順 Button1Click(送信者: TObject);
プロシージャ Button2Click(送信者: TObject);
//プロシージャ Button3Click(Sender: TObject);
//プロシージャ BtCalcuClick(送信者: TObject);
プライベート
{プライベート宣言}
公共
{公的宣言}
終わり;
変数
フォーム1: TForm1;
関数 Sum1(X,Y:整数):整数;
関数 Sum2(X,Y:整数):整数;stdcall;
関数 Sum3(var X,Y:integer):integer;stdcall;
実装
{$R *.dfm}
プロシージャ TForm1.Button1Click(送信者: TObject);
変数
i,j:整数;
始める
label1.Caption:=inttostr(sum1(2,3));
label2.Caption:=inttostr(sum2(2,3));
i:=2;
j:=3;
label3.Caption:=inttostr(sum1(i,j));
終わり;
//delphi プログラムの合計
関数 Sum1(X,Y:整数):整数;
始める
結果:=X+Y;
終わり;
//アセンブリ合計 1---
関数 Sum2(X,Y:整数):整数;stdcall;
始める
アズム
移動 eax,X
eax,Y を追加
mov @result,eax
終わり;
終わり;
//アセンブリの合計 2---
関数 Sum3(var X,Y:integer):integer;stdcall;
始める
アズム
移動 eax,X
移動 eax,[eax]
ムーブEDX、Y
eaxを追加[edx]
mov @result,eax
終わり;
終わり;
プロシージャ TForm1.Button2Click(送信者: TObject);
始める
近い;
終わり;
{プロシージャ TForm1.Button3Click(送信者: TObject);
変数
QuitFlag:ブール値;
OutBufPtr:ワード;
始める
アズム
mov al、QuitFlag
mov bx,OutBufPtr
終わり;
終わり;}
終わり。