NASM中文手册

  NASM中文手册 
                       ============ 

第一章: 简介 
 1.1 什么是NASM 
  1.1.1 为什么还需要一个汇编器? 
  1.1.2 许可条件 
 1.2 联系信息 
 1.3 安装 
  1.3.1 在dos和Windows下安装NASM 
  1.3.2 在unix下安装NASM 

第二章 运行NASM 
 2.1 NASM命令行语法 
  2.1.1 '-o'选项:指定输出文件的文件名。 
  2.1.2 `-f'选项:指定输出文件的格式。 
  2.1.3 `-l' 选项: 产生列表文件 
  2.1.4 `-M'选项: 产生Makefile依赖关系. 
  2.1.5 `-F'选项: 选择一个调试格式 
  2.1.6 `-g' 选项:使调试信息有效。 
  2.1.7 `-E' 选项: 把错误信息输入到文件。 
  2.1.8 `-s' 选项: 把错误信息输出到'stdout' 
  2.1.9 `-i'选项: 包含文件搜索路径 
  2.1.10 `-p' 选项: 预包含一个文件 
  2.1.11 `-d'选项: 预定义一个宏。 
  2.1.12 `-u' 选项: 取消一个宏定义。 
  2.1.13 `-e'选项: 仅预处理。 
  2.1.14 `-a' 选项: 不需要预处理。 
  2.1.15 `-On'选项: 指定多遍优化。 
  2.1.16 `-t'选项: 使用TASM兼容模式。 
  2.1.17 `-w'选项: 使汇编警告信息有效或无效。 
  2.1.18 `-v'选项: 打印版本信息。 
  2.1.19 `NASMENV'环境变量。 
 2.2 MASM用户速成。 
  2.2.1 NASM是大小写敏感的。 
  2.2.2 NASM需要方括号来引用内存地址。 
  2.2.3 NASM不存储变量的类型。 
  2.2.4 NASM不会 `ASSUME' 
  2.2.5 NASM不支持内存模型。 
  2.2.6 浮点处理上的不同。 
  2.2.7 其他不同。 

第三章 NASM语言 
 3.1 NASM源程序行的组成。 
 3.2 伪指令。 
  3.2.1 `DB'一类的伪指令: 声明已初始化的数据。 
  3.2.2 `RESB'类的伪指令: 声明未初始化的数据。 
  3.2.3 `INCBIN':包含其他二进制文件。 
  3.2.4 `EQU': 定义常数。 
  3.2.5 `TIMES': 重复指令或数据。 
 3.3 有效地址 
 3.4 常数 
  3.4.1 数值常数。 
  3.4.2 字符型常数。 
  3.4.3 字符串常数。 
  3.4.4 浮点常量 
 3.5 表达式 
  3.5.1 `|': 位或运算符。 
  3.5.2 `^': 位异或运算符。 
  3.5.3 `&': 位与运算符。 
  3.5.4 `<<' and `>>': 位移运算符。 
  3.5.5 `+' and `-': 加与减运算符。 
  3.5.6 `*', `/', `//', `%'和`%%': 乘除法运算符。 
  3.5.7 一元运算符: `+', `-', `~'和`SEG' 
 3.6 `SEG'和`WRT' 
 3.7 `STRICT': 约束优化。 
 3.8 临界表达式。 
 3.9 本地Labels 

第四章 NASM预处理器。 
 4.1 单行的宏。 
  4.1.1 最常用的方式: `%define' 
  4.1.2 %define的增强版: `%xdefine' 
  4.1.3 : 连接单行宏的符号: `%+' 
  4.1.4 取消宏定义: `%undef' 
  4.1.5 预处理器变量 : `%assign' 
 4.2 字符串处理宏: `%strlen' and `%substr' 
  4.2.1 求字符串长度: `%strlen' 
  4.2.2 取子字符串: `%substr' 
 4.3 多行宏: `%macro' 
  4.3.1 多行宏的重载 
  4.3.2 Macro-Local Labels 
  4.3.3 不确定的宏参数个数. 
  4.3.4 缺省宏参数. 
  4.3.5 `%0': 宏参数个数计数器. 
  4.3.6 `%rotate': 循环移动宏参数. 
  4.3.7 连结宏参数。 
  4.3.8 条件代码作为宏参数。 
  4.3.9 禁止列表扩展。 
 4.4 条件汇编 
  4.4.1 `%ifdef': 测试单行宏是否存在。 
  4.4.2 `ifmacro': 测试多行宏是否存在。 
  4.4.3 `%ifctx': 测试上下文栈。 
  4.4.4 `%if': 测试任意数值表达式。 
  4.4.5 `%ifidn' and `%ifidni': 测试文本相同。 
  4.4.6 `%ifid', `%ifnum', `%ifstr': 测试记号的类型。 
  4.4.7 `%error': 报告用户自定义错误。 
 4.5 预处理器循环: `%rep' 
 4.6 包含其它文件。 
 4.7 上下文栈。 
  4.7.1 `%push' and `%pop': 创建和删除上下文。 
  4.7.2 Context-Local Labels 
  4.7.3 Context-Local单行宏。 
  4.7.4 `%repl': 对一个上下文改名。 
  4.7.5 使用上下文栈的例子: Block IFs 
 4.8 标准宏。 
  4.8.1 `__NASM_MAJOR__', `__NASM_MINOR__', `__NASM_SUBMINOR__'和 
`___NASM_PATCHLEVEL__': NASM版本宏。 
  4.8.2 `__NASM_VERSION_ID__': NASM版本ID。 
  4.8.3 `__NASM_VER__': NASM版本字符串。 
  4.8.4 `__FILE__' and `__LINE__': 文件名和行号。 
  4.8.5 `STRUC' and

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值