nasm预处理器(1)
来源:互联网 发布:北京大数据云计算骗局 编辑:程序博客网 时间:2024/06/06 01:39
与处理器将所有以反斜杠结尾的连续行合并为一行。
单行的宏以%define来定义;当单行的宏被扩展后还含有其他宏时,会在执行时而不是定义时展开。
%define a(x) 1+b(x)%define b(x) 2*xmov ax,a(8)
会被最终展开为mov ax,1+2*8,但宏b不是在定义宏a时展开的。%define定义宏是大小写敏感的,可以用%idefine来定义大小写非敏感的宏。
如果有嵌套定义的宏,与处理器只会展开第一层,保证不会进入一个死循环。
可以定义重载单行宏:
%define foo(x) 1+x%define foo(x,y) 1+x*y
nasm可以通过传递的参数的个数来区分;但是一旦定义了不带参数的宏后,其他的foo定义都不会被接受了:
%define foo bar
你还可以在命令行中使用 -d选项来预定义宏。
你可以用%xdefine来定义嵌套宏不会被后来重定义改变的宏。
可以使用%+将单行宏中的单独记号被连接起来,组成一个更长的记号。
单行宏可以使用%undef命令来取消;在命令行上可以用-u来取消定义。
%assign和%iassign也可以定义单行宏,它不带参数,并返回一个数值型的值,该值可以以表达式的形式指定:
%assign i i+1
%strlen宏返回数值是一个字符串的长度:
%strlen len 'hello world'
上例中len被赋予字符串的长度。
%substr宏用来取子字符串:
%substr char 'xyz' 1 ;char equ 'x'
0 0
- nasm预处理器(1)
- nasm预处理器(2)
- nasm预处理器(3)
- nasm预处理器(4)
- NASM源代码分析之预处理(1)
- NASM源代码分析--预处理数据结构
- NASM源代码分析--预处理过程
- NASM源代码分析之预处理(2)
- NASM源代码分析之预处理(3)
- Nasm
- NASM
- NASM
- nasm
- C预处理器1
- 关于预处理器 - 1
- 预处理器(1)
- NASM源代码分析之NASM中的指令表示(1)
- 1、预处理器(PRE)
- 在CSDN的最后一篇博文
- iOS遇到的细节问题
- android颜色对应的xml配置值,颜色表
- 小玩意
- ReentrantLock &&
- nasm预处理器(1)
- linux 杂记
- 调试器工作原理(2):实现断点
- 项目选择-1
- android颜色对应的xml配置值,颜色表3.0
- 预习报告
- Python urllib模块urlopen()与urlretrieve()详解
- UIWwebView学习
- 移动开发技巧总结