一。需要下载的工具。
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,axmov ax,00300h
mov bx,000ch
int 10hmov 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程序,