初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子
生活随笔
收集整理的這篇文章主要介紹了
初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前面知道了一個匯編的賦值指令(MOV), 再了解一個加法指令(ADD), 就可以做個例子了.
譬如: ADD AX,BX; 這相當于 Delphi 中的 AX := AX + BX;
另外提前來個列表 - Delphi 可以用匯編管理以下寄存器:
32 位寄存器: EAX EBX ECX EDX ESP EBP ESI EDI
16 位寄存器: AX BX CX DX SP BP SI DI
8 位寄存器 : AL BL CL DL AH BH CH DH
16 位段寄存器: CS DS SS ES 以及協(xié)處理器寄存器堆棧: ST
1、注釋同 Delphi
2、可以用分號 ; 分句
3、可以用換行分句
4、甚至可以用注釋分句
譬如: ADD AX,BX; 這相當于 Delphi 中的 AX := AX + BX;
另外提前來個列表 - Delphi 可以用匯編管理以下寄存器:
32 位寄存器: EAX EBX ECX EDX ESP EBP ESI EDI
16 位寄存器: AX BX CX DX SP BP SI DI
8 位寄存器 : AL BL CL DL AH BH CH DH
16 位段寄存器: CS DS SS ES 以及協(xié)處理器寄存器堆棧: ST
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}//使用匯編的函數(shù)
function add(x,y: Integer): Integer;
varcount: Integer;
beginasmMOV EAX,x {把 x 值放入寄存器 EAX}MOV ECX,y {把 y 值放入寄存器 ECX}ADD EAX,ECX {把 EAX + ECX 的值放入 EAX}MOV count,EAX {把 EAX 的值給變量 count}end;Result := count; {返回值}{asm 中每個語句換行即可分句, 無須 ; 在這里加上也沒有問題}
end;//測試
procedure TForm1.Button1Click(Sender: TObject);
vari: Integer;
begini := add(2,4);ShowMessage(IntToStr(i)); {6}
end;end.
補充嵌入?yún)R編的注釋及分句:1、注釋同 Delphi
2、可以用分號 ; 分句
3、可以用換行分句
4、甚至可以用注釋分句
轉(zhuǎn)載于:https://www.cnblogs.com/del/archive/2008/01/23/1050457.html
總結(jié)
以上是生活随笔為你收集整理的初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敦煌莫高窟千佛画是谁画的啊?
- 下一篇: 欢迎大家批评:CSDN Blog用户体验