使用VSCode学习汇编语言

以下内容为插件MASM/TASM 的readme文档,使用它你需要

  • 在VSCode官网下载VSCode
  • 打开VSCode后,在它的商店里面搜索下载MASM/TASM
  • 在一个文件夹中新建一个文件来进行汇编程序的编写

16位/32位汇编语言开发工具

中文|English

在学习《微型计算机原理与接口技术》的汇编语言部分时,苦于没有比较顺手的编程环境,此插件实现了在VSCode中对DOSBox等汇编工具的快速调用。主要功能特性如下:

  1. 同时支持调用TASMMASM: 可以在设置(首选项)中修改使用MASM还是TASM工具集
  2. 提供编辑器右键菜单:在汇编语言的编辑器添加了“打开dosbox,运行,调试”的三个选项
  3. 提供diagnose问题输出功能:假如汇编未通过,会标明错误信息与位置,可以在命令面板输入清除MASM/TASM的所有问题信息清除本插件输出的diagnose问题信息
  4. 提供悬浮提示,跳转定义,代码格式化,大纲视图等
  5. 调用dosbox和msdos player模拟16位系统环境,运行相关组件

非常感谢Roncho的Assembly (TASM),Woodykaixa的 masm-code,blindtiger的 masm!插件难免会有一些bug,欢迎到github发issue以及PR,大家一起交流和完善。

安装使用

  • windows 无需其他操作,相关软件已打包在插件之中
  • linux 请先安装dosbox 详情

Features主要功能

当编辑器为汇编文件时,在编辑器界面右键菜单中会提供以下三个选项:

  1. 打开dosbox并配置环境(挂载):打开DOSBox,然后就可以手动在打开的DOSBox窗口进行汇编相关操作
  2. 运行当前程序(汇编+链接+运行):生成exe程序并运行
  3. 调试当前程序(汇编+链接+调试):生成exe程序并调试,使用MASM则会调用debug调试,使用TASM会调用td调试

DEMO示例

Demo 1: 运行调试代码

使用VSCode学习汇编语言_第1张图片
默认使用 DOSBoxTASM。可以在设置中修改

Demo 2: 代码格式化与错误输出


使用VSCode学习汇编语言_第2张图片

如果不喜欢这些“编程语言特性”(悬浮提示,代码格式化,跳到定义,查看引用)可以在设置中关闭,重启之后会生效

Demo 3: 打开DOSBox手动输入命令


使用VSCode学习汇编语言_第3张图片

  • 汇编常用命令: ASM_commands.
  • 有些有趣的汇编代码: DOSBox ASM codes
  • "Open DOSBox"命令 会将编辑器当前文件复制到临时文件夹,并将该文件夹挂载到DOSBox中的“D:”盘,也就是说这时DOSBox中的D盘文件T.ASM就是VSCode当前文件的副本
  • "Doxbox here"命令 会直接将当前文件所在文件夹挂载到DOSBox中的“E:"盘,也就是说这时DOSBox中的E盘内容就是当前编辑器文件所在文件夹里的内容,注意 在DOSBox中的操作会直接影响电脑中该文件夹中的文件,而且通常都是不可逆的

Extension Settings拓展设置

要实现Demo中的功能有时会需要在拓展中进行设置,同时设置(首选项)中还有一些其他选项,以提供更大的灵活性。

  • 汇编工具使用MASM还是TASM
  • 16位模拟器使用dosbox还是msdos-player
    • DOSBox: (默认模式)更加完善
    • msdos-player: 可以在cmd中运行,不会弹出窗口,但对TD等图形化界面的处理效果不好
    • auto: (推荐,但是有时无法工作)根据情况选择模拟工具:
      1. 汇编链接使用msdos-player模拟,会比较安静
      2. 运行使用DOSBox,更加直观稳定
      3. 调试中MASM(debug)使用msdos-palyer在windows集成终端中显示(更加美观一些)
      4. 调试中TASM(TD)在DOSBox中运行(目前只能这样)
  • 调整dosbox窗口大小
  • 规定dosbox运行程序之后进行什么操作(是否直接退出程序,还是等待)
  • 启动相关功能之前是否先保存文件(不保存的话,只能操作之前保存的版本,建议保存)
  • 设置自定义汇编工具路径,详见:自定义汇编工具路径

文档 & 感谢 & 许可

  • 这个插件是MIT license.
  • 感谢masm-code,msdos player,dosbox
    • 他们的相关信息
  • 一些相关资料:wiki
  • 使用终端任务调用dosbox:VSC-ASMtasks

Enjoy!

你可能感兴趣的:(关于汇编语言环境配置)