博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子
阅读量:6258 次
发布时间:2019-06-22

本文共 1057 字,大约阅读时间需要 3 分钟。

  hot3.png

前面知道了一个汇编的赋值指令(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 以及协处理器寄存器堆栈: ST

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}//使用汇编的函数function add(x,y: Integer): Integer;var  count: Integer;begin  asm    MOV 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);var  i: Integer;begin  i := add(2,4);  ShowMessage(IntToStr(i)); {6}end;end.
补充嵌入汇编的注释及分句:
1、注释同 Delphi
2、可以用分号 ; 分句
3、可以用换行分句
4、甚至可以用注释分句

转载于:https://my.oschina.net/hermer/blog/320401

你可能感兴趣的文章
Git -- 创建版本库
查看>>
myeclipse 怎么安装与激活
查看>>
Atitit.异步编程的发展历史 1.1. TAP & async/await
查看>>
RTP timestamp与帧率及时钟频率的关系
查看>>
企业门户平台解决方案
查看>>
过滤器入门
查看>>
深入浅出讲解:php的socket通信
查看>>
Photoshop 批量处理图片
查看>>
浅谈C# 多态的魅力(虚方法,抽象,接口实现)
查看>>
jQuery--百度百科
查看>>
Unity3D 之2D动画机
查看>>
基础知识系列☞闲言
查看>>
蓝牙Ibeacon室内定位和微信摇一摇周边原理分析
查看>>
架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
查看>>
virtualbox端口转发
查看>>
DiscuzX2.5 程序底层架构
查看>>
Jenkins_多项目构建(二):使用Maven聚集关系
查看>>
三大做空工具详解
查看>>
linux全方位掌握一个命令--思路比方法更重要
查看>>
[Flexbox] Use Flex to Scale Background Image
查看>>