http://blog.csdn.net/xingwang75/article/details/4486353
写操作系统使用NASM比较方便,可是没有一个好的开发环境写起来真的很痛苦!
RADASM默认只支持用Nasm开发win32应用程序,而写操作系统需要生成(flat)平面文件,
只能自己修改配置来实现
使用软件如下:
IDE:RADASM
ASM:NASM
DEBUG: emu8086
IDE和ASM自然不用说了,这里选用emu8086是因为emu8086支持对平面文件和DOS应用程序调试。
RADASM默认使用的调试器OllyDBG无法正常调试这类应用程序。
NASM编译DOS应用程序成obj文件,这时需要下载一个链接程序。我使用masm6.15内的link.exe
来链接。
这里贴出RADASM的NASM配置文件nasm.ini的部分内容,如果你的NASM和emu8086的位置和我的不一样,可以自行修改。
好了,开始你的操作系统学习之路吧。
[Paths]
$A=$R/Nasm
$B=$A/
$D=$R/AddIns
$H=$A/Help
$I=$A/Inc
$L=$A/Lib
$P=$R/Assembly/Nasm/Projects
$S=$R/Assembly/Nasm/Sniplets
$T=$R/Assembly/Nasm/Templates
$M=$R/Assembly/Nasm/Macro
$E=C:/Program Files/emu8086
[Project]
Type=Plat App,Dos App
Files=Asm,Inc,Rc,Def,Txt,Mak
Folders=Bak,Mod,Res
MenuMake=Compile RC,Assemble,Link,Build,Go,Run,Run w/debug,Go All,Assemble Modules
Group=1
GroupExpand=1
[Plat App]
Files=1,1,0,0,0
MenuMake=0,1,0,1,1,1,1,1,0,0
1=rsrc.res,O,$B/GORC,rsrc.rc
2=$.bin,O,$B/Nasm -fbin,$.asm,-o,$.bin
3=$.com,O,$B/Nasm -g -fbin,$.asm,-o,$.com
4=0,0,,$.com
5=rsrc.obj,O,$B/CVTRES,rsrc.res
6=*.bin,O,$B/Nasm -fbin,*.asm
7=0,0,"$E/emu8086",$.com
11=rsrc.res,O,$B/GORC,rsrc.rc
12=$.bin,O,$B/Nasm -fbin,$.asm
13=$.com,O,$B/Nasm -g -fbin,$.asm,-o,$.com
14=0,0,,$.com
15=rsrc.obj,O,$B/CVTRES,rsrc.res
16=*.bin,O,$B/Nasm -fbin,*.asm,-o,$.bin
17=0,0,"$E/emu8086",$.com
[Dos App]
Files=1,1,0,0,0
MenuMake=0,1,0,1,1,1,1,1,0,0
1=rsrc.res,O,$B/GORC,rsrc.rc
2=$.obj,O,$B/Nasm -g -fobj,$.asm
3=$.exe,O,$B/Link,$.obj,,,,,,,
4=0,0,,$.exe
5=rsrc.obj,O,$B/CVTRES,rsrc.res
6=*.obj,O,$B/Nasm -g -fobj,*.asm
7=0,0,"$E/emu8086",$.exe
11=rsrc.res,O,$B/GORC,rsrc.rc
12=$.obj,O,$B/Nasm -g -fobj,$.asm
13=$.exe,O,$B/Link,$.obj,,,,,,,
14=0,0,,$.exe
15=rsrc.obj,O,$B/CVTRES,rsrc.res
16=*.obj,O,$B/Nasm -g -fobj,*.asm
17=0,0,"$E/emu8086",$.exe