nasm

notepad++配置汇编

写汇编是个编辑器就能写,本文重点是展示能写、能高亮、能编译并且能写16位汇编、32位汇编和64位汇编。

准备nasm汇编编译器

下载nasm

当前最新版是2.15.05,自行根据系统下载版本32位还是64位,当然也有16位的,自然winnt系统是运行不了16位的了

准备notepad++

下载notepad++

开始配置

配置nasm汇编16位编译环境

我的nasm安装目录是D:\nasm32

cmd /k D:\nasm32\nasm.exe -f bin "$(FULL_CURRENT_PATH)" -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe & cd $(CURRENT_DIRECTORY) & dir $(NAME_PART).* 

打开notepad++,点击菜单栏里的”运行(R)”,在弹出的”输入运行程序名”提升窗中的路径将上面的指令拷贝粘贴,先别运行。

%title插图%num

点击保存,在弹出的快捷键设置对话框给当前的运行配置一个名称方便后续点击菜单栏中的”运行(R)”时好找,我这里命名为”编译(16位NASM汇编)”,最后点击确定即可

%title插图%num

快捷键想配置就配置一下,我就懒得配置了,系统快捷键够多了

配置nasm汇编32位编译环境

cmd /k D:\nasm32\nasm.exe -f win32 "$(FULL_CURRENT_PATH)" -o $(CURRENT_DIRECTORY)\$(NAME_PART)_x86.exe & cd $(CURRENT_DIRECTORY) & dir $(NAME_PART)* 

打开notepad++,配置过程同上,我这里命名位”编译(32位NASM汇编)”,点击确定

%title插图%num

配置nasm汇编64位编译环境

cmd /k D:\nasm32\nasm.exe -f win64 "$(FULL_CURRENT_PATH)" -o $(CURRENT_DIRECTORY)\$(NAME_PART)_x64.exe & cd $(CURRENT_DIRECTORY) & dir $(NAME_PART)* 

配置过程同上,依然在保存命名的时候区分一下,我这里命名位”编译(64位NASM汇编)”,点击确定

%title插图%num

后续不管是写nasm汇编16位、32位还是64,只要写好编译时选择如下对应编译按钮即可

%title插图%num

写汇编源代码

mov ax,0xb800
mov es,ax
mov byte es:[0x00],'h'
mov byte es:[0x02],'e'
mov byte es:[0x04],'l'
mov byte es:[0x06],'l'
mov byte es:[0x08],'o'
mov byte es:[0x0a],','
mov byte es:[0x0c],'w'
mov byte es:[0x0e],'o'
mov byte es:[0x10],'r'
mov byte es:[0x12],'l'
mov byte es:[0x14],'d'
mov byte es:[0x16],'!'
jmp $

times 510-($-$$) db 0
db 0x55,0xaa

在notepad++里保存一下,接着点击菜单栏里的”运行(R)”,选择16位NASM汇编进行编译

%title插图%num

编译完直接在cmd窗口里显示出编译从成功的.exe文件

%title插图%num

16位汇编写的可执行程序不能在winnt系列操作系统运行,可以借助虚拟机,我这里是使用了李忠老师的fixvhdwr.exe工具将.exe的可执行程序写入到了固定大小的VHD格式的虚拟硬盘的mbr扇区,接着使用虚拟机从硬盘启动就会在屏幕输出hello,world!,如下图:

%title插图%num

发表回复