1.安装masm32MASM32 SDKhttp://masm32.com/
Australia 1/Australia 2任选其一下载masm32,解压后把文件夹masm32放在D:\(C盘D盘均可,但要记住路径)。
2.安装DOSBox 0.74DOSBox, an x86 emulator with DOShttps://www.dosbox.com/
(最后一个界面可能要等待几秒,并不是不能安装)
3.在D:\masm32\bin文件夹下,新建一个txt文档,写入:
@echo off
D:\masm32\bin\ml.exe /c %1.asm
D:\masm32\bin\LINK16.exe %1.obj %1,,,,,
D:\DOS\DOSBox-0.74-3\DOSBOX.exe %1.exe
( 代码中的路径对应你masm32和DOSBox的路径)写入完成后保存,并将该文件改为“asm.bat”(后缀名一定要是bat)
4.打开sublime text,tools -> build system -> new build system...
输入如下代码:
"cmd": ["D:\\masm32\\bin\\asm.bat", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.asm",
"encoding":"cp936",
"variants":
[
{
"name": "Run_ASM",
"cmd": ["D:\\masm32\\bin\\asm.bat", "$file_base_name"],
"shell":true
}
]
cmd后的路径一定要上文中asm.bat的路径相符(两处“cmd”!!)
Ctrl + S保存在User文件夹下(一般默认就是这个)命名:“ASM.sublime-build”
这样就可以通过Ctrl + B运行汇编程序了!
5.最后高亮代码设置
在sublime text下,Ctrl + Shift + P 调出控制台,输入install点击 Install Package
等待弹出后输入 assembly X86选择第一个下载就ok。
下面为测试情况:
新建文件保存为“try.asm”
输入以下代码
data segment ;数据段
string db 'Hello,World!$'
data ends
code segment ;代码段
assume cs:code,ds:data
start:
mov ax,data ;获取段基址
mov ds,ax ;将段基址送入寄存器
mov dx,offset string
mov ah,9
int 21h
mov ah,4ch
int 21h
code ends
end start
下面为我的测试画面
首先在Tools -> build system -> 选择ASM
按下Ctrl + B会自动弹出DOSBox
在DOSBox上的自动挂载有很多资料可以参考,这里就不赘述了 。
注:之前在网络上找很久,很难找到一个可行的配置教学,我是在这位博主学习的,最后也配置运行成功,这里分享给大家,特别是跟我一样的小白(doge
2022.03.15补充自己在使用过程中出现的问题:
1.我们设置的文件名尽量简短一些,不要带有'.',例如我之前命名的一个文件名'5.4.asm'结果它生成的obj、map文件却变了样子
而且此时会在编译界面出现‘LINK : fatal error L1093: 5.4.obj : object file not found’,之前还以为是配置环境出了问题,实际上就是你的命名不正确。
2.生成exe文件后可以直接在DOSBox界面输入debug test.exe进行调试,如果输入masm>debug test.exe会宕机,dos也无法继续运行。
![输入masm>debug p107.exe的情况](https://img-blog.csdnimg.cn/69b92a2226fc4173a2af29203aff711d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYmVpbmdfcHJvZ3JhbW1lZA==,size_20,color_FFFFFF,t_70,g_se,x_16)
![debug>p107.exe的情况](https://img-blog.csdnimg.cn/4616e42e5cd04549bd63a79c8a5e8889.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYmVpbmdfcHJvZ3JhbW1lZA==,size_20,color_FFFFFF,t_70,g_se,x_16)