NASM一些特点
2016-01-24 17:01
225 查看
翻译部分NASM手册的内容
区分大小写
nasm是区分大小写的,调用foo,Foo和FOO代码片段是不同的.
内存引用要用方括号[]
在nasm中,任何取地址的内容的操作都要加方括号[ ],取变量的地址不用方括号.
不支持混合符号
不支持例如
只支持一下形式
nasm不存储变量类型
例如
定义了一个字大小(word-size)的变量,当传给变量大小类型不确定的值时,例如
nasm只记住符号的起始地址,所以准确的应该这么写
而且nasm不支持 LODS, MOVS, STOS, SCAS, CMPS, INS, OUTS这些指令.
但是支持LOADSB,MOVSW,SCASD这些确定操作数大小的指令
nasm没有ASSUME
nasm不支持内存模型
nasm不支持16位的内存模型的指令
编程者需要自己确定一些远地址跳转,需要代码内指明,需要使用RET指令的正确形式
浮点(Floating-Point)区别
nasm使用的浮点寄存器名称不同于masm
masm中的ST(0),ST(1)…,在a8中被简单的称为0,1…
nasm中是st0,st1….
其他区别
由于历史原因,nasm中关键字TWORD等同于masm中的TBYTE
nasm申明未初始化空间的方式不同于masm.
masn中可能用到
nasm中要用
并且nasm将问号(?)当做变量名中的有效字符.
区分大小写
nasm是区分大小写的,调用foo,Foo和FOO代码片段是不同的.
内存引用要用方括号[]
在nasm中,任何取地址的内容的操作都要加方括号[ ],取变量的地址不用方括号.
不支持混合符号
不支持例如
mov ax,table[bx] mov ax,es:[di]
只支持一下形式
mov ax,[table+bx] mov ax,[es:di]
nasm不存储变量类型
例如
var dw 0
定义了一个字大小(word-size)的变量,当传给变量大小类型不确定的值时,例如
mov var,2
nasm只记住符号的起始地址,所以准确的应该这么写
mov word [var],2
而且nasm不支持 LODS, MOVS, STOS, SCAS, CMPS, INS, OUTS这些指令.
但是支持LOADSB,MOVSW,SCASD这些确定操作数大小的指令
nasm没有ASSUME
nasm不支持内存模型
nasm不支持16位的内存模型的指令
编程者需要自己确定一些远地址跳转,需要代码内指明,需要使用RET指令的正确形式
浮点(Floating-Point)区别
nasm使用的浮点寄存器名称不同于masm
masm中的ST(0),ST(1)…,在a8中被简单的称为0,1…
nasm中是st0,st1….
其他区别
由于历史原因,nasm中关键字TWORD等同于masm中的TBYTE
nasm申明未初始化空间的方式不同于masm.
masn中可能用到
stack db 64 dup(?)
nasm中要用
stack resb 64
并且nasm将问号(?)当做变量名中的有效字符.
相关文章推荐
- 安卓动画之Tween动画
- 矩阵循环打印
- JavaEE Tutorials (8) - Java持久化API介绍
- Android轻量级JSON操作类
- SQL Server的分布式XA事务
- 实践新闻发布系统
- Android中AIDL使用例子
- View--Animation
- C语言删除目录
- 高斯模糊算法
- jquery 复制json对象和json对象集合
- vs2010配置opencv2.4.8以及入门程序调试
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- 循环
- SSIS: 一步步教你在SSIS 中使用临时表
- MD5加密
- JavaEE Tutorials (7) - 在会话bean中使用异步方法调用
- //6小时更新一次首页
- mac 查看图片的方式
- C++字符串相关