1 Star 6 Fork 2

DOS汇编 / VSC-ASMtasks

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

VSCode一键调用DOSBox运行MASM/TASM代码的自定义任务

English|github仓库

通过配置VSCode的自定义任务来实现调用dosbox模拟16位系统实现,一键编译运行MASM/TASM代码的VSCode。已经包含需要的MASM/TASM工具集和windows下的dosbox软件。这意味着windows下只要安装了VSCode并克隆本仓库就可以实现一键编译运行等功能了。

主要功能

终端任务

运行默认生成任务

按下Ctrl+Shift+B或者点击终端、运行生成任务。会提供以下四个选项。可以通过修改tasks.json增加热键、修改功能,重新分组等等。

  1. Open DOSBox 打开dosbox(并自动配置好环境)
  2. TASM CurrentFile使用TASM来编译运行当前文件
  3. MASM CurrentFile使用MASM来编译运行当前文件
  4. ASM CurrentFile 更多操作当前文件的选项,如调试等

MASM代码文件选择MASM CurrentFile、TASM代码文件选择TASM CurrentFile。如果编译成功,将在终端中显示结果;编译有误,则会在终端显示结果的同时,标注问题所在行。如果只是想要打开dosbox,可以点击Open Dosbox with TASM/MASM tools added to path,这样在dosbox中输入相关指令了。对于程序有特殊需求,比如调试等,点击ASM CurrentFile会有多种选择

例如一个简单的TASM代码hello tasm在tasm中汇编可以成功实现,在masm中汇编就会报错。如下图所示

使用TASM编译成功 使用MASM会报错
RunBuildTasksSuccess RunBuildTasksError
打开DOSBox后手动输入命令调试 使用选项7来操作
dosbox here 7

使用Code Runner插件

如果安装了Code Runner插件可以,点击右上角三角形,或者使用Ctrl+Alt+N.相关设置位于.vscode/settings.json

  • 使用MASM,需要将A模式改成B
  • linux用户也需要进行修改,详见以下代码
"code-runner.executorMapByGlob": {
    //windows用户使用TASM
    "*.{ASM,asm}":"$workspaceRoot\\tools\\ASMit.bat $fullFileName A $workspaceRoot\\tools $workspaceRoot\\tools\\work",
    //linux用户使用TASM
    "*.{ASM,asm}":"$workspaceRoot/tools/asmit.sh $fullFileName -mA -d $workspaceRoot/tools"
    //windows用户使用MASM
    "*.{ASM,asm}":"$workspaceRoot\\tools\\ASMit.bat $fullFileName B $workspaceRoot\\tools $workspaceRoot\\tools\\work",
    //linux用户使用MASM
    "*.{ASM,asm}":"$workspaceRoot/tools/asmit.sh $fullFileName -mB -d $workspaceRoot/tools"
},

coderunner

如何开始

  1. 克隆仓库文件
    • 直接到release中下载,解压到工作文件夹即可
    • 安装了Git可以直接克隆
  2. 使用VSCode打开文件夹,下载 VSCode
  3. 然后可以在文件夹里面愉快地写代码啦

linux用户需要先安装dosbox,如使用sudo apt install dosbox等命令,并给脚本授权,如 chmod u+x asmit.shgithub仓库用户可以使用该仓库作为模板创建仓库,点击use this template

总览

学习南邮《微型计算机原理与接口技术》的时候正好刚刚接触了git和VSCode,苦于DOSBox的“专注于游戏”,编辑代码种种不爽。所以尝试通过脚本和VSCode的终端任务来简化编译过程,实现一键编译运行ASM文件:smiley:

:file_folder:本代码库主要内容

  1. .vscode:为了在VSCode中实现汇编语言的编辑运行调试等工作增加的配置文件
    1. extensions.json:推荐了几个插件
    2. tasks.json:定义了几个任务
    3. settings.json:主要是Code Runner的配置
  2. tools文件夹
    1. dosbox:dosbox的windows程序,和扩大分辨率的配置文件
    2. TASM: 16位的TASM汇编工具,包括TASM.exe,Tlink.exe,td.exe等
    3. MASM: 16位的MASM汇编工具, 包括masm.exe,link.exe,debug.exe and others
    4. work: 包括需要在dosbox中运行的asm.bat脚本文件,同时是编译运行文件的工作文件夹
    5. ASMit.bat: 运行dosbox的bat脚本
    6. asmit.sh: 运行dosbox的bash脚本
  3. hello tasm.ASM: TASM示例文件
  4. hello masm.ASM: MASM示例文件

:sparkling_heart:代码规范与协作

还有很多问题没有解决,欢迎发issue和PR。

  • markdown文件使用vscode的markdownlint规范
  • ASM文件还没有找到好用的规范
  • 如何隐藏dosbox窗口
  • 如何在不同系统中更好地使用Code Runner
  • 如何适用到其他编辑器
  • 如何适用到OSX

notepad++

参考以下代码使用notepad++实现一键编译运行TASM/MASM代码文件

  • d:dos\asm\tasm\汇编工具文件夹
  • D:\DOS\DOSBox.exedosbox路径
cmd /c del d:dos\asm\tasm\t.* & copy  "$(FULL_CURRENT_PATH)" "d:dos\asm\tasm\t.asm" & D:\DOS\DOSBox.exe -noautoexec -c "mount c d:dos\asm\tasm"  -c "c:"  -c "tasm/t/zi t.asm" -c "tlink/v/3 t.obj" -c "t.exe" -c "pause" -c "exit"

:point_right:参考链接

Git 新手 大家多指导呀

[^task]: 或者点击终端、运行默认生成任务(Terminal>Run Build Task)

空文件

简介

VSCode调用DOSBox进行汇编操作 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/dosasm/VSC-ASMtasks.git
git@gitee.com:dosasm/VSC-ASMtasks.git
dosasm
VSC-ASMtasks
VSC-ASMtasks
env

搜索帮助