精易论坛

标题: 易语言内联汇编器v3.2-更新nasm汇编引擎 伪指令 宏定义 [打印本页]

作者: Yecate    时间: 2023-5-2 18:09
标题: 易语言内联汇编器v3.2-更新nasm汇编引擎 伪指令 宏定义
本帖最后由 Yecate 于 2023-5-2 18:09 编辑

简介


易语言内联汇编器(InlineAssembler)是一个易语言扩展支持库, 用于在易语言中嵌入汇编语言指令, 支持x86/x64, 支持NASM宏, 媲美C++内联汇编.




特性



联系方式


联系作者: QQ:869443499


交流群号: Q群:767562242


有任何想法和意见都可以进群反馈



代码提示



代码提示.gif

转置入代码



转置入代码.gif

快速初始化变量



快速初始化变量.gif

单步跟踪调试



单步跟踪步入.gif

快速插入多行汇编



快速插入多行汇编.gif

快速注释汇编代码


快速注释汇编代码.gif

InlineAssembler 更新历史


v3.2 20230501
    1.修正在易语言循环体内标签定位错位问题(严重问题)
        2.修正部分字符串定位错误问题
        3.增加鼠标悬停显示汇编代码指令提示
          确保 指令帮助文件被正确放置在 易语言根目录InlineAssembler\db\x86.txt(机器翻译过来的,可以自行修改)

        4.增加 reladdr 关键字,仅用于获取标签真实地址( mov eax, reladdr(标签1))
          详见 demo\reladdr.e

        5.增加 %reladdrs 宏, 仅用于存储标签真实地址表( %reladdrs 表名称, 标签1, 标签2,... 标签n)
          详见 demo\switch.e

        6.增加 // 注释
        7.修正易语言子程序参数有通用型(非参考)参数时,导致调试时查看此通用型变量后面的变量数值错误的问题
        8.优化易语言置入代码过长导致的卡顿
        9.增加快速注释/取消注释

        10.右键菜单功能添加快捷键绑定
          Ctrl + Ins      快速插入多行汇编
      Ctrl + Atl + L  变量初始化
          Ctrl + Atl + N  变量初始化(无%define)
          Ctrl + K        屏蔽选中汇编代码
          Ctrl + M        取消屏蔽选中汇编代码

        11.增强汇编代码调试功能,支持单步跟踪进入 跳转/CALL

        12.增加 %append_code 宏; 语法: %append_code xxxx; 支持自定义插入代码到子程序头部/尾部,方便快速插入各种壳保护标记
           详见 demo\插入自定义代码到子程序头尾.e
           插入的代码(字节集) 定义在 易语言目录\InlineAssembler\append_code.json

           头部代码
           push ebp
           mov ebp,esp
           ....
           mov esp,ebp
           pop ebp
           ret
           尾部代码   

v3.1 20230329 测试版
        1.修正代码缩略/展开参数表识别错误问题
        2.修正基础命令重定位失败问题
        3.修正条件宏是否存在类似命令 编译代码错位问题

        4.增强模块和置入代码功能,智能识别变量/参数,无需手动 %define,
          最好变量先初始化(可配合右键菜单 ☆内联汇编:变量初始化(无%define))
          避免调试输出此类命令先于变量初始化,导致编译和调试变量不统一

        5.集成 nasmx(%use nasmx) 如果当前子程序不需要用到高级宏命令,可以不添加 %use nasmx,提高编译速度
          确保 nasmx.inc被正确放置在 易语言根目录\InlineAssembler\nasmx.inc
          详见 demo\nasm-x\nasm-x.e

        6.增加代码提示
        7.增加回车自动加注释分号

v3.0 20230319 测试版
        1.更换底层汇编引擎为NASM
        2.增加宏支持(来自NASM)
          详见demo\宏.e

        3.增加x64汇编支持(来自NASM)
          详见demo\x64.e

        4.修改DLL命令,增加DLL命令前缀设置,nasm宏定义支持 . 号,所有为了避免代码歧义
          假设设置 DLL命令前缀 为 API_,则调用API书写格式为 API_user32.dll.MessageBoxA,留空则为 user32.dll.MessageBoxA
      详见demo\DLL命令前缀设置.e

        5.增加模块编译方式,支持编译模块内联汇编为置入代码
            编译模块之后不需要再配合本支持库使用
            编译模块不能使用变量/调用子程序/不能跨易语言代码JMP/CALL等等
            详见demo\模块\方式二

        6.增加IDE右键菜单
            内联汇编转置入代码(当前子程序)
            内联汇编转置入代码(当前程序集内所有子程序)
            变量顺序初始化
            快速插入多行汇编
                  '内联汇编关键字{
                  '}

        7.移除禁止生成包装函数设置选项,增加_removepack关键字修饰子程序/程序集为禁止生成包装函数
        8.增加函数名称显示高亮(_naked/_cdecl/_removepack)
        9.增加汇编命令大写显示
        10.支持调试模式鼠标悬停寄存器查看寄存器值

        11.增加模块混淆
            模块编译方式二,可以选择开启混淆类成员变量名称,混淆未公开函数名称
                可以自定义混淆方式,参考 InlineAssembler\obfuscate.e
                编译成DLL 放入 易语言主目录\InlineAssembler\obfuscate.dll 即可

        12.修复若干BUG

v2.1 20221004
    1.新增支持调用DLL函数(详情:demo\调用DLL(invoke)\exe.e)
            ' push 0
                ' push L"UNICODE文本标题"
                ' push L"UNICODE文本内容"
                ' push 0
                ' call user32.MessageBoxW

                ' ; 序号
                ' push 8888
                ' call ws2_32.#14

        2.新增invoke(小写)关键字,方便调用函数和DLL函数
                ' invoke user32.MessageBoxW, 0, L"invoke UNICODE文本内容", L"invoke UNICODE文本标题", 0

        3.invoke 调用方式支持 __stdcall/__cdecl/__fastcall 关键字
            ' invoke __cdecl @分配内存, 260 ; __cdecl 根据参数数量自动平衡堆栈
            ' invoke kernel32.GetTickCount  ; 默认 __stdcall 方式

        4.修正部分高亮显示不正常
        5.修正部分常量识别不正确

v2.0 20220816 测试版
    1.新增支持内联汇编字符串 (gbk utf8 unicode)
         ' push "gbk"
         ' push L"unicode"
         ' push u8"utf8"

        2.新增支持内联汇编常量
        3.新增支持naked函数不检查返回值(错误(10022): 子程序“XXX”具有返回值定义,但实际上却没有返回数据或者并不是所有程序分支都返回了数据。)
        4.新增支持汇编代码高亮
        5.修正对易语言5.92版本的支持
        6.修复若干BUG

v1.2 20220710
    1.修正和精易助手支持库不兼容问题(感谢 @不苦小和尚 反馈)
        2.修正子程序代码过长导致出现生成错误代码的问题(感谢 @max 反馈)
        3.新增支持多行汇编

v1.1 20220702
    1.新增支持模块编译
        2.新增增加自定义内联汇编关键字(留空则默认易语言注释文本为内联汇编代码)
        3.新增支持易语言版本 5.80 - 5.93
        4.新增禁止易语言生成函数外包装代码
        5.新增程序集名称开头若为 _naked_/_cdecl_ 则表示此程序集的函数全部为 _naked_/_cdecl_
    6.新增内联汇编中使用易语言基础命令(@分配内存/@重新分配内存/@释放内存/@设置组件属性/@读取组件属性)
        7.修复若干BUG

v1.0 20220620
    第一个版本










补充内容 (2023-12-7 16:52):
没加群的可以在这里下载最新的版本
链接:https://pan.baidu.com/s/1ahxa-SZqqU4sW4YL38XAZQ?pwd=9g6a
提取码:9g6a
作者: 萌萌嗒的小白    时间: 2023-5-2 18:12
看起来很好的样子  
作者: 晓之霖葬    时间: 2023-5-2 18:14
牛批牛批,支持
作者: 远赴    时间: 2023-5-2 18:16
你好骚啊~
作者: 小笨瓜    时间: 2023-5-2 18:19
新技能已get√
作者: 不苦小和尚    时间: 2023-5-2 18:26
试试看看能不能用
作者: 安乐窝    时间: 2023-5-2 18:28
感谢分享
作者: 从前的少年    时间: 2023-5-2 18:33
感谢分享
作者: 网络注册会员    时间: 2023-5-2 18:41
必须支持
作者: 784326742    时间: 2023-5-2 18:43
子程序代码转汇编,汇编转子程序,试试水
作者: jiqigouer    时间: 2023-5-2 18:52
谢谢分享了
作者: jylc    时间: 2023-5-2 19:00
说实话易语言吴涛都放弃了,会的不用,用的不会,内联我感觉跟e22e差不多方板不浪费时间吗
作者: 深爱者    时间: 2023-5-2 19:05
支持开源!感谢分享,论坛有你更精彩~
作者: qq793359277    时间: 2023-5-2 19:19
好东西                           
作者: kioging    时间: 2023-5-2 19:19
新技能已get√
作者: 扯谈i    时间: 2023-5-2 19:27
用置入写 跟用普通写的都什么区别吗
作者: muye84    时间: 2023-5-2 19:32
感谢分享,很给力!~
作者: Yecate    时间: 2023-5-2 19:33
扯谈i 发表于 2023-5-2 19:27
用置入写 跟用普通写的都什么区别吗

置入代码 不能直接使用变量这些吧
作者: Yecate    时间: 2023-5-2 19:35
jylc 发表于 2023-5-2 19:00
说实话易语言吴涛都放弃了,会的不用,用的不会,内联我感觉跟e22e差不多方板不浪费时间吗 ...

易语言吴涛都放弃,为什么你没放弃呢?
作者: incwin    时间: 2023-5-2 19:35

感谢分享,很给力!~
作者: sinewtec    时间: 2023-5-2 19:39
没啥说的先顶在下!!!!!!!!!!
作者: quary    时间: 2023-5-2 19:42
看起来好厉害啊  可是汇编玩不转啊 ///
作者: yuan71058    时间: 2023-5-2 19:45
感谢分享,很给力!~
作者: GKD    时间: 2023-5-2 19:49
感谢分享,很给力!~
作者: Antony    时间: 2023-5-2 20:27
感谢分享,很给力!~
作者: 8wy721719    时间: 2023-5-2 20:31
感谢分享,很给力!~
作者: 神女软件定制    时间: 2023-5-2 21:30
哟,这个看起来是个好东西
作者: 1aa82e    时间: 2023-5-2 21:31
查看本帖隐藏
作者: 拧紧    时间: 2023-5-2 22:00
好东西 下载用用
作者: 执骨哟    时间: 2023-5-2 22:34
期待好久啦
作者: hcf123456    时间: 2023-5-2 22:36
感谢分享!
作者: 临安    时间: 2023-5-2 23:38
感谢楼主分享!
作者: sdaq1000    时间: 2023-5-2 23:45
好东西

作者: dashen127    时间: 2023-5-2 23:50
开源精神必须支持~
作者: By洋洋    时间: 2023-5-3 06:36
支持 正好需要
作者: jylc    时间: 2023-5-3 10:43
Yecate 发表于 2023-5-2 19:35
易语言吴涛都放弃,为什么你没放弃呢?

我也没在使用,但也没到达放弃的高度,总有些喜欢造这造那的我也挺喜欢多看看,多元化的互联网时代总有些稀奇的东西
作者: Shanks    时间: 2023-5-3 14:03
支持一下大佬
作者: Tckya    时间: 2023-5-4 06:30
支持一下大佬
作者: 宁氏    时间: 2023-5-4 23:15
感谢分享,很给力!~
作者: lzgking    时间: 2023-5-5 11:30
感谢分享~~~~~~~
作者: 福仔    时间: 2023-5-5 22:48
why are you so diao
作者: Yecate    时间: 2023-5-6 10:35
动画 2.gif
作者: minegz    时间: 2023-5-6 16:18
支持开源,感谢大佬!
作者: 1103978562    时间: 2023-5-8 14:23
我就看看吧哈哈哈
作者: 天雷    时间: 2023-5-8 14:25
加油
作者: 第八号当铺    时间: 2023-5-8 14:31
给力给力给力给力给力给力给力
作者: 第八号当铺    时间: 2023-5-8 14:32
有任何想法和意见都可以进群反馈
作者: 8554036    时间: 2023-5-8 15:23
https://bbs.125.la/thread-14781323-1-1.html
作者: 8554036    时间: 2023-5-8 15:27
https://bbs.125.la/thread-14781323-1-1.html
作者: 墨兮纱    时间: 2023-5-8 15:27
感谢666,属实nb

作者: 8554036    时间: 2023-5-8 15:57
正在研究中...
作者: 白陌陌    时间: 2023-5-8 16:13
大佬牛逼,这下内联汇编更强大了
作者: 指尖世纪    时间: 2023-5-8 16:13
感谢分享
作者: SatoRina    时间: 2023-5-8 16:43
感谢分享!!
作者: 该死dē蚊子    时间: 2023-5-8 17:22
我的天呀,这么好玩的。。
作者: 酷易自绘    时间: 2023-5-8 17:50
RE: 易语言内联汇编器v3.2-更新nasm汇编引擎 伪指令 宏定义
作者: lvzhi_123    时间: 2023-5-8 18:05
好玩好玩好玩
作者: xjdgs    时间: 2023-5-8 18:20
感谢666,属实nb
作者: DDSGXQ    时间: 2023-5-8 19:01
感谢分享,很给力!~
作者: 易友软件    时间: 2023-5-8 20:07
好东东~不错~
作者: 易友软件    时间: 2023-5-8 20:10
真家伙~不错~
作者: Bszk    时间: 2023-5-8 21:08
感谢开发~
作者: 小黄毛    时间: 2023-5-8 21:19
感谢楼主分享
作者: ly1314521    时间: 2023-5-8 21:19
        7.修复若干BUG
v1.0 20220620
    第一个版本
作者: 1592363624    时间: 2023-5-8 21:37
YYDS···YYDS···YYDS···
作者: vmleft    时间: 2023-5-8 22:18
易语言内联汇编器v3.2-更新nasm汇编引擎 伪指令 宏定义
作者: qq1004043585    时间: 2023-5-8 22:29
强无敌啊
作者: easyjun    时间: 2023-5-8 23:24
这么强,必须下载
作者: 781732825    时间: 2023-5-8 23:49
感谢分享,很给力!~

作者: snufgpl    时间: 2023-5-9 00:19
        开源精神必须支持~
作者: yyjpcx    时间: 2023-5-9 00:39
楼主是天才少年那种
作者: bokai111    时间: 2023-5-9 01:19
下载下来试试看
作者: 君杰    时间: 2023-5-9 03:19
感谢分享,很给力!~
作者: 背靠背拥抱    时间: 2023-5-9 03:34
易语言内联汇编器
作者: 乱世小熊    时间: 2023-5-9 06:49

作者: pasyou1    时间: 2023-5-9 07:59
联汇编中使用易语言基础命
作者: cdsdsghh    时间: 2023-5-9 08:50
好呀 感谢大佬
作者: 大大大路    时间: 2023-5-9 11:47
        感谢分享,很给力!~
作者: 星辰ovo    时间: 2023-5-9 12:03
66666666666666666
作者: 丨未完丶待续丶    时间: 2023-5-9 14:51
谢谢分享。
作者: 971751131    时间: 2023-5-9 15:40
来看看来看看来看看
作者: uulive    时间: 2023-5-9 15:45
        感谢分享,很给力!~
作者: uulive    时间: 2023-5-9 15:45
易语言内联汇编器
作者: ppppzj    时间: 2023-5-9 16:39
多谢分享!

作者: jykhjylk    时间: 2023-5-9 21:08
新增支持模块编译
作者: lbw6    时间: 2023-5-9 22:24
6666666666666666666
作者: aihekele    时间: 2023-5-9 22:57
这是真不错呀,这东西。值得学习
作者: xfxx    时间: 2023-5-9 23:07
强大 支持
作者: lrw    时间: 2023-5-10 08:27
牛逼的大神,膜拜
作者: leirendeku    时间: 2023-5-10 10:06
来看看来看看来看看
作者: xiaole284    时间: 2023-5-10 10:32
很需要,谢谢
作者: Bong    时间: 2023-5-10 16:14
看看看看你看看看看你卡
作者: fireandice    时间: 2023-5-10 16:20
啊哈,学习一下啊,还是很喜欢汇编的效率的
作者: thsoft    时间: 2023-5-10 16:23
牛X的很哦!!!!
作者: uulive    时间: 2023-5-10 16:56
解压出来答是乱码的e文件名 支持库在哪里
作者: Yecate    时间: 2023-5-10 17:26
uulive 发表于 2023-5-10 16:56
解压出来答是乱码的e文件名 支持库在哪里

文件乱码?
作者: 让人很感动    时间: 2023-5-10 23:04
看不懂,但也要评论一下,牛
作者: chen644    时间: 2023-5-11 00:11
牛X的很哦!!
作者: minews    时间: 2023-5-11 02:33
3.2-更新nasm汇编引擎 伪指令 宏定义 [修改]
作者: CGW553615693    时间: 2023-5-11 08:32

啊哈,学习一下啊,还是很喜欢汇编的效率的




欢迎光临 精易论坛 (https://bbs.125.la/) Powered by Discuz! X3.4