fasm C-compatible syntax typedef macro

这篇博客介绍了如何在FASM中创建一个C兼容的typedef宏,以提高汇编语言代码的可读性和减少在Win32和Win64平台间移植结构体和数据定义的工作量。利用FASM 1.70及更高版本的新特性,可以为宏指令的参数设置默认值。
摘要由CSDN通过智能技术生成

汇编在做c头文件移植的时候,总觉得db dw dd dq的类型有些生硬,不具可读性,并且对于win32,win64的结构需要维护两份。于是写了个fasm的typedef宏(与c的写法相同),可用于结构体定义,数据定义,函数的局部变量local 定义中。

 

;---===---
;---===---fasm typedef macro by G-Spider @2013
;---===---
macro macro@typedef base,[type] 
{ 
    forward
    struc type [v] 
    \{ 
        \common match any, v \\{ . base v \\} 
            match , v \\{ . base ? \\}
    \} 
    macro type [v] 
    \{ 
        \common match any, v \\{ base v \\} 
            match , v \\{ base ? \\}
    \}
    virtual at 0
      base ?
      sizeof.#type=$
    end virtual
} 

macro typedef [statement] 
{ 
    common
    match gs@base gs@type,statement
    \{
        macro@typedef gs@base,gs@type
    \}
}

for example:
;声明
typedef dd SDWORD
typedef SDWORD DWORD,INT32,LONG
typedef db CHAR,BYTE

_WIN64 equ FALSE

m
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值