学习NASM

来源:互联网 发布:mac地址采集器 编辑:程序博客网 时间:2024/06/06 04:52
跟我一起学习NASM(一)构建学习环境
发布者:星海 2008年12月13日 星期六

一。需要下载的工具。

1。 NASM编译器。http://sourceforge.net/projects/nasm 从这里下载最新版本的NASM汇编编译器,我下载的是Win32 binaries 2.05 版。

把下载下的压缩包解压到D盘根目录下(位置可以随便选择),会看到nasm.exe(编译器),ndisasm.exe(反编译器),rdoff目录(几个RDF工具)。

如果仅仅是写调用bios中断,dos中断和直接访问硬件这些已经足够了的。

2。集成开发环境 Radasm http://www.radasm.com/ 这个还算不错,只是编辑器对中文的支持不好,中文在里面就是乱码了。它的对代码的提示功能可以减少不少输入工作可降低出错率。

我装他只不过是用它来编写代码,我感觉Nmake用来编译比它好多了。

必选的安装是:IDE pack (881K)   RadASM programming pack (943K)   个人认为RadASM在Programming pack方面做的不好,我只需要NASM的Programming pack,却不得不一起下载MASM,TASM的Programming pack。且NASM的Programming pack没有及时更新,如想使用它的编译命令不得不重新写NASM.ini 文件。所以我仍然采用Nmake来编译。

3。Nmake.exe 这个就不用说了,微软出品的,大家自己找下吧。罗云彬的网站就可以下载到http://211.90.241.130:22366/view.asp?file=53

4。连接器,资源编译器。http://www.godevtool.com/ 我使用的是Golink ,不过这个网站好像最近要用代理访问了,不过没有关系,下面提到的NASMX中就有着两个工具。

5。资源编辑器。Nasmx附带的资源编辑器Resed.exe 不好用,推荐使用Resource Workshop  罗云彬的网站就可以下载到http://211.90.241.130:22366/view.asp?file=54 你也可以选择其他的编译器。

6。NASMX。 http://www.asmcommunity.net/projects/nasmx/ 使用NASM写Windows下的程序个人认为不如MASM32方便,因为NASM的库不如MASM32的多。NASMX集成了一些常用的inc和宏,但可惜最近的一个版本是2007年9月30日的。如想使用NASM来写Windows的程序不妨下载下来一试。虽说库不是很全,现在也停止了更新,但这里充分体现了NASM的跨平台编译性能。NASMX中包含了Xbox的inc。

文件包里的nasm.exe和ndisasm比较旧了,自己更换成最新的NASM版本吧。Resed不好用。

7。调试器W32DASM  和 OllyDBG 一个都不能少。

基本上的开发环境所需文件就是这些了。

二 ,一个简单的程序

org 100h
mov ax,cs
mov ds,ax

mov ax,00300h
mov bx,000ch
int 10h

mov ax,msg
mov cx,msglen
mov bp, ax ; ES:BP = 串地址
mov ax, 01301h ; AH = 13, AL = 01h
mov bx, 000ch ; 页号为0(BH = 0)
int 10h ; 10h 号中断

jmp $  ;让程序停在这里,否则一个窗口一闪程序就结束了

msg:  db  ‘Hello, world’,0
msglen:  equ $-msg

将以上内容保存成hello.asm 运行命令 nasm -f bin hello.asm -o hello.com   会得到hello.com 这就是你的第一个NASM程序,

原创粉丝点击