欢迎来到代码驿站!

当前位置:首页 >

分析易语言内嵌汇编取变量指针的示例

时间:2021-06-11 08:06:41|栏目:|点击:

经本人研究内嵌汇编不能取自定义类型(成员非4字节,取来的是对齐结构的指针,比如成员为字节型分配4个字节),和非小数和整数,文本型数组不可以取指针,其它的都可以

要注意的是易的子程序前有EBP入栈操作,所以要有出栈操作才行

这是我写的取整数型指针的例子(字节型,短整数型,小数型,日期时间型,双精度小数型都通用,注意参数要为参考):

.版本 2
.支持库 spec
.子程序 取整数型指针, 整数型, 公开
.参数 整数, 整数型, 参考
'push ebp <------------这两句已经是易原有的
'mov ebp, esp

置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' leave <------------赋值给ESP,从堆栈中弹出到EBP
' ret 0004
返回 (0)

取文本指针的例子:

.版本 2
.支持库 spec
.子程序 取文本型指针, 整数型, 公开
.参数 文本, 文本型

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' leave
' ret 0004
返回 (0)

取字节集指针的例子:

.版本 2
.支持库 spec
.子程序 取字节集指针, 整数型, 公开
.参数 字节集, 字节集, 参考

置入代码 ({ 139, 69, 8, 139, 0, 131, 192, 8, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' add eax, 00000008
' leave
' ret 0004
返回 (0)

上一篇:Flex tree加虚线显示效果并且替代原始图标

栏    目:

下一篇:docker 容器上编译 go 程序提示找不到文件问题

本文标题:分析易语言内嵌汇编取变量指针的示例

本文地址:http://www.codeinn.net/misctech/139554.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有