nasm预处理器(4)
来源:互联网 发布:雅思单词书推荐 知乎 编辑:程序博客网 时间:2024/06/07 12:02
nasm定义了一套标准宏,当开始处理源文件时,这些宏都已经被定义了,如果希望程序在执行前没有预定义的宏存在,可以使用%clear清空预处理器的一切宏。
__NASM_MAJOR__ 主版本号
__NASM_MINOR__ 次版本号
__NASM_SUBMINOR__ 子次版本号
__NASM_PATCHLEVEL__ 补丁号
__NASM_VERSION_ID__ nasm版本id
__NASM_VER__ nasm版本字符串
__FILE__ 文件名
__LINE__ 行号
STRUC 和 ENDSTRUC 声明一个结构数据类型:
struc my_type long:resd 1 word:resw 1 ten_byte:resb 10 str:resb 32endstruc
如果要在多个结构体中定义相同的元素可以这样定义:
struc my_type .long:resd 1 .word:resw 1endstruc
由于nasm没有内部结构体支持,所以不支持以句点形式引用结构体中的成员,因此mov ax,[type_val.word]是非法的;.word是一个常数,正确语法为:
mov ax,[type_val+word];或者mov ax,[type_val+my_type.word]
下面是如何定义一个结构的变量:
type_val: istruc my_type at .long,dd 0x12345678 at .word,dw 1024iend
数据对齐align和alignb
%line操作符用来通知nasm,输入行与另一个文件中指定的行号相关
%! 读取一个环境变量
0 0
- nasm预处理器(4)
- nasm预处理器(1)
- nasm预处理器(2)
- nasm预处理器(3)
- NASM源代码分析--预处理数据结构
- NASM源代码分析--预处理过程
- NASM源代码分析之预处理(1)
- NASM源代码分析之预处理(2)
- NASM源代码分析之预处理(3)
- Nasm
- NASM
- NASM
- nasm
- 预处理器(4)
- 预处理器
- 预处理器
- 预处理器
- 预处理器
- 加载bmp文件方法一
- Js - 获取url地址栏
- 关于user/zhu/proj.android/.
- volatile
- 62. PHP 类简介
- nasm预处理器(4)
- Android事件传递机制之onInterceptTouchEvent()和onTouchEvent()总结
- 运维工程师的职责和前景[转载]
- redis 3.0 cluster 集群 学习之路篇(资料汇总)
- 《C++语言基础》实践参考——复数模板类
- C++实践参考——深复制体验
- C++参考——成员函数、友元函数和一般函数有区别
- C++实践参考——人数不定的工资类
- 《C++语言基础》实践参考——我的数组类