一、之所以不用DOSBox
不利于集成到VScode,执行代码需要新开窗口,配置繁琐。ps:而且加断点和调试复杂。
感谢masm-code插件的作者,终于可以补全啦qaq
添加关于调试的一些建议
二、步骤
0.网络状况不好可以用度盘资源:
//20200403 update
dos-player
masm32
1.安装VScode
2.安装masm-code, code runner插件
3.从masm32 sdk ver11下载所需的masm,如果下载不了可以自行换镜像,或者百度下载。
3.1.解压,然后换路径,一路yes就可以了。
3.2.记下安装位置,比如我的在g盘根目录。
4.百度或谷歌搜索ms-dos player,下载这个软件,或者从链接的GitHub上面下载源码,编译安装。
4.1.解压里面的msdos到X:Program Files (x86),X为想安装到的盘符。
4.2.记下安装位置。
5.添加环境变量:对于win10,win+R输入SystemPropertiesAdvanced>环境变量>系统变量>找到Path变量>打开>添加如下两个变量(根据安装masm和msdos的位置不同前面的路径要调整):
*note:如果不是64位系统就在binary文件夹下选择相应的文件夹
*note:可以测试,如果加入Path成功,在PowerShell里面输入msdos , ml /? 以及link16 /?会有出现相应的信息。如果没有可以尝试重启。
6.打开VScode, ctrl+shift+P打开搜索json,选择:
7.在末尾添加设置:
*经评论中 @影生 提出,将选项/AT去除然后将输出文件的扩展名改为.EXE,这样可以用伪指令格式书写程序。
"code-runner.executorMap"
三、helloworld测试
; *************************************************************************
这里的.code 写法相当于 :
_TEXT SEGMENT WORD PUBLIC 'CODE'
详细如下:
输出:
一键运行。
//20200403 update
利用emu8086完成复杂的调试:
**先安装open插件**
在emu8086设置中设置(工具栏)默认打开(右下角)
emu8086 for win10
在vsc里面编辑好文件后利用ctrl+alt+O用emu8086打开,然后进行各种调试
note:如果要链接额外的文件可以参考官方文档:
ML and ML64 Command-Line Referencenote:
ML and ML64 Command-Line Referencedocs.microsoft.comMSVC Linker options:
MSVC Linker optionsdocs.microsoft.com*note:链接器的选项要写在/link选项
三、关于调试
[patch] Connect a Gdb client to DOSBoxwww.vogons.org最近又找到了一个调试汇编的方案,如果成功的话可以用vscode的native debug来调试:
路线1:编译安装djgpp版本的gdb -- 安装到dos里面 --利用里面的gdbserver连接虚拟机的COM端口 -- vsocde里面用native debug 连接,调试
路线2(最接近完成):利用上面dosbox-x 的patch --编译dosbox-x --连接gdbserver -- vscode 用native debug连接
路线3:利用wsl或者msys2安装或者编译qemu -- 利用gdbserver连接COM口 -- 连接vscode
但是现在的难点是找不到相应dosbox-x的版本,如果有找到的大佬麻烦留言呀!
后续应该会怎加一些汇编的例子和专门讲比较c和汇编的文章。(20201108)