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

经本人研究内嵌汇编不能取自定义类型(成员非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)

以上就是本次给大家介绍内嵌汇编去变量指针的全部内容,感谢大家对我们的支持。

(0)

相关推荐

  • 易语言变量多用方法

    一般情况下一个变量只能存储一个变量如图下: 用了3个变量,但是如果你用多了,会导致源码量变多,怎么才能少用呢?在看下图: 这里只用了1个变量,但是效果和用3个变量是一样的,如果你想要多少变量,就在数组里面填写多少.使用变量的时候在变量后面加上相应的编号,如:ABC[1]..... 以上相关的变量多用方法大家可以测试下,感谢大家对我们的支持.

  • 一步一步跟我学易语言之关于变量

    下面来介绍变量相关的知识. 什么是变量? 顾名思义变量就是一种自身可改变值的可使用的虚拟的质体.简单的说把变量比作一个盒子,当你的东西需要保存时这个盒子派上了用场把你想要存放的东西放到盒子里,如果需要用盒子里的东西就把东西拿出来不需要时再放回去,或这里的部分或全部的不需要了就把这些不需要的拿出去,如果需要更多的就把需要的放进去. 那么我们来创建一个类型为"整数型"的局部变量. 首先在一个子程序下按下 Ctrl+L 插入一个局部变量 就会看见在子程序下出现了变量创建的表格,在类型的那一列

  • 易语言使用变量循环首命令显示0到50之间所有偶数的代码

    显示0到50之间的偶数代码 .版本 2 .程序集 窗口程序集1 .子程序 _变量循环首按钮_被单击 .局部变量 循环变量, 整数型 变量循环首编辑框.内容 = "" .变量循环首 (0, 50, 2, 循环变量) ' 显示0~50之间的所有偶数 变量循环首编辑框.加入文本 (到文本 (循环变量), ",") .变量循环尾 () 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解

  • 易语言读环境变量命令使用讲解

    读环境变量命令 英文命令:GetEnv 操作系统支持:Windows.Linux    所属类别:环境存取 返回文本,它关连于一个操作系统环境变量.成功时返回所取得的值,失败则返回空文本. 语法:  文本型  读环境变量 (环境变量名称) 例程 说明 通过"读环境变量"命令读取指定的环境变量. 想要查看环境变量请按照下面的顺序操作: WIN2000以上版本:在"我的电脑"上右击→属性→点高级选项卡中的环境变量按钮进入环境变量设置. WIN9X/ME:在MSDOS下输

  • 易语言使用到循环尾命令实现过滤变量的代码

    过滤1~100之间非3的倍数代码 .版本 2 .程序集 窗口程序集1 .子程序 _显示按钮_被单击 .局部变量 循环变量, 整数型 编辑框1.内容 = "" .变量循环首 (1, 100, 1, 循环变量) .如果真 (循环变量 % 3 ≠ 0) ' 不是3的倍数的数都不会显示 到循环尾 () .如果真结束 编辑框1.加入文本 (到文本 (循环变量), ",") .变量循环尾 () 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具

  • 易语言基础教程之定义及变量

    任何编程语言都离不开对变量的定义及引用,易语言也是如此.由于变量是实现信息处理以及数据计算的核心,因此掌握变量的定义及引用将显得格外重要.下面就一起来学习一下易语言中变量的那些事儿. 方法/步骤 创建一个"Windows窗口程序",并绘制如图所示的人机交互界面. 选中"按钮"组件,从"文件夹 属性"面板中为其添加"单击"事件. 接着在打开的"程序集"窗口中,输入代码"长 = 到数值 (编辑框1.内

  • 详解易语言变量用法和原理

    易语言是一款可视全中文的编程语言,由于他的简单易用,深受国人喜欢,下面我来为大家介绍易语言变量的用法. 易语言变量,就像是数学中设x一样,顾名思义它是不定值的,它分为局部变量,全局变量,和程序集变量,下面我为用一个程序来向大家介绍这3种变量的区别. 打开易语言,新建一个windows窗口程序,将按钮按下图所示排列. 点击插入,选择窗口,插入一个新的窗口,点击按钮1,写入代码入下图所示, 点击窗口程序集,回车,添加一个程序集变量,命名为c,类型为文本型. 点击插入,分别添加全局变量,命名为q,类型

  • 认识易语言句柄及局部变量

    局部变量 创建方法,选择"插入" 局部变量:就是只能在一个子程序里访问.程序集变量:就是能在一个程序集里访问,不过其他的程序集访问也可以(不过需要特殊访问).全局变量:什么地方都能访问.

  • 易语言变量循环首命令使用讲解

    变量循环首命令 操作系统支持:Windows.Linux.Unix 所属类别:流程控制 执行本命令将利用变量对循环体内的命令进行循环执行.第一次执行此命令时将使用"变量起始值"参数初始化"循环变量"参数所指定的变量.每次(包括第一次)执行到此命令处都将判断循环变量内的值是否已经超过"变量目标值"参数所指定的值,如已超过,则跳转到对应的"变量循环尾"命令的下一条命令处继续执行,否则顺序执行下一条语句继续进行循环. 语法:  无返

  • 一步一步跟我学易语言之变量的有效范围

    大家好,今天我们要学习的是变量的知识,还将解答一些初学者的一些常见问题. 什么是变量? 变量是用名称代表一个可变化的值,变量的类型也分多种多样,每种变量类型都是存储的特定的值.变量也好象是一种容器,把所有的数据都存储在变量中. 下面我们就来详细了解变量的有关知识. 变量的有效范围: 所谓变量的有效范围是指,在程序中一个变量可以在哪些地方使用. 变量的有效范围可以分3种: 全局变量 程序集变量 局部变量 现在我们就一一讲解这几种变量的有效范围. 全局变量: 在一个程序中,任何程序集.子程序里都可以

随机推荐