VScode配置8086汇编环境的过程解析

 更新时间:2023年04月10日 15:37:11   作者:夏天是冰红茶  
这篇文章主要介绍了VScode配置8086汇编环境的过程解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

0、感慨 

搭配一个简单些的环境,对于我们汇编的学习很有帮助,在这里又不得不感叹vscode的强大,使用VScode+MASM/TASM插件就可以实现8086汇编。真的相对于其他的安装方式,我们都会认同越简单越好。

1、VScode的安装

Visual Studio Code - Code Editing. Redefined

vscode的安装过程没有什么难度,出了选择安装路径外,一律通过即可。

2、下载MASM/TASM插件

在扩展当中,搜索并下载MASM/TASM。

3、测试汇编环境

新建文件

这里我们只需要点击Ctrl+Shift+N即可出现,下面这个界面。

 在这里需要已经新建好的工程文件夹。如我下图所示的“8086masm”。

 在其左侧资源管理器中的文件夹下,新建一个temp.asm文件,这里一定要有.asm后缀。

汇编文件配置

vscode它仅仅是一个代码编辑器,并不会像IDLE一样写好代码就可以点击进行运行,这里需要自己进行相应的配置。在vscode界面,同时按下Ctrl+Shift+P调出命令面板,输入setting。

打开工作区设置(JSON)。下面是我的配置信息,仅供参考。

{
    "masmtasm.ASM.emulator": "msdos player",  
    "masmtasm.dosbox.run": "exit",
    "masmtasm.ASM.assembler": "MASM-v5.00",
    "masmtasm.ASM.actions": {
        "TASM": {
            "baseBundle": "<built-in>/TASM.jsdos",
            "before": [
                "set PATH=C:\\TASM"
            ],
            "run": [
                "TASM ${file}",
                "TLINK ${filename}",
                ">${filename}"
            ],
            "debug": [
                "TASM /zi ${file}",
                "TLINK /v/3 ${filename}.obj",
                "TD ${filename}.exe"
            ]
        },
        "MASM-v6.11": {
            "baseBundle": "<built-in>/MASM-v6.11.jsdos",
            "before": [
                "set PATH=C:\\MASM"
            ],
            "run": [
                "masm ${file};",
                "link ${filename};",
                ">${filename}"
            ],
            "debug": [
                "masm ${file};",
                "link ${filename}.OBJ;",
                ">debug ${filename}.exe"
            ]
        },
        "MASM-v5.00": {
            "baseBundle": "<built-in>/MASM-v5.00.jsdos",
            "before": [
                "set PATH=C:\\MASM"
            ],
            "run": [
                "masm ${file};",
                "link ${filename};",
                ">${filename}"
            ],
            "debug": [
                "masm ${file};",
                "link ${filename}.OBJ;",
                ">debug ${filename}.exe"
            ],
            "support": [
                "jsdos",
                "dosbox",
                "dosboxX",
                "msdos player"
            ]
        }
    }
}

汇编代码的运行

右键可以查看到,可以“运行当前程序(汇编+链接+运行)”

初学者可能不能看懂下面代码什么意思,我们来点击运行试试吧!

STACK   SEGMENT PARA 'STACK'     ;定义堆栈段,段名为STACK
DB   100 DUP('?')                ;分配堆栈的大小,设置为100字节
STACK   ENDS                     
DATA    SEGMENT                  ;定义数据段,段名为DATA
    STRING     DB'HELLO!','$'    ;定义字符串数据
DATA    ENDS 
CODE    SEGMENT                  ;定义代码段,改名为CODE
ASSUME  CS:CODE, DS:DATA, SS:STACK
START:  MOV  AX, DATA            ;程序执行起始点
        MOV  DS, AX              ;将数据段地址寄存器指向用户数据段
        MOV  AX, STACK
        MOV  SS, AX              ;将堆栈段地址寄存器指向用户堆栈段
        LEA  DX, STRING
        MOV  AH, 09H
        INT  21H                 ;系统调试功能,在显示器上显示字符串
        MOV  AH, 4CH
        INT  21H                 ;系统调试功能,程序结束返回操作系统
CODE    ENDS
        END  START               ;汇编结束,段内程序起点为START

运行结果如下: 

运行过后相信大家明白这就是一个完整的汇编语言源程序示例,该程序就是完成在屏幕中打印显示“HELLO!”。

当然啦,对于这个程序,我们应当侧重于了解它的格式,而不仅仅是内容。通常,完整的汇编语言源程序格式的定义由SEGMENT和ENDS这对伪指令实现,同时需要伪指令ASSUME指定该段加载的段地址寄存器。

以上的ASSUME语句将CS、DS、SS依次指向名为CODE、DATA、STACK的段,然而,ASSUME语句并不为DS、SS赋值,所以,程序开始就是先用传送指令将数据段DATA和堆栈段STACK的段地址分别赋值到DS、SS,然后进行系统功能调用,在显示器上显示字符串。最后,系统功能调用,程序结束返回操作系统。

到此这篇关于VScode配置8086汇编环境的文章就介绍到这了,更多相关VScode配置汇编内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • x86汇编DOS编程环境搭建过程

    x86汇编DOS编程环境搭建过程

    在学习x86汇编时,第一步是搭建一个可以编译、运行代码的环境,这个搭建方法也真的超简单,本文重点给大家介绍x86汇编DOS编程环境搭建过程,感兴趣的朋友一起看看吧
    2021-11-11
  • 常用的汇编指令与技巧(收藏)

    常用的汇编指令与技巧(收藏)

    这篇文章主要介绍了常用的汇编指令与技巧,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 图文详解通俗易懂的汇编语言寄存器

    图文详解通俗易懂的汇编语言寄存器

    这篇文章主要为大家介绍了寄存器的内容详解,文中通过精美清晰的图文方式让你一看就通俗易懂,有需要的朋友可以借鉴参考学习下,希望能够有所帮助
    2021-11-11
  • 汇编 函数调用的实现

    汇编 函数调用的实现

    这篇文章主要介绍了汇编 函数调用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言loop命令的具体使用

    汇编语言loop命令的具体使用

    LOOP指令是根据ECX计数器循环,将语句块重复执行特定次数,本文主要介绍了汇编语言loop命令的具体使用,感兴趣的可以了解一下
    2024-03-03
  • GNU ARM汇编语法原理及操作解析

    GNU ARM汇编语法原理及操作解析

    这篇文章主要介绍了GNU ARM汇编语法原理及操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • C语言ASM汇编内嵌语法详解

    C语言ASM汇编内嵌语法详解

    这篇文章主要介绍了C语言ASM汇编内嵌语法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 汇编语言有关在屏幕区显示字符的四种方法(推荐)

    汇编语言有关在屏幕区显示字符的四种方法(推荐)

    这篇文章主要介绍了汇编语言有关在屏幕区显示字符的四种方法(推荐),每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • ARM汇编判断之如何用汇编判断数组中正负数个数

    ARM汇编判断之如何用汇编判断数组中正负数个数

    这篇文章主要介绍了ARM汇编判断之如何用汇编判断数组中正负数个数,在汇编语言中程序的基本框架是不变的,这里我们可以直接把正向遍历的程序给贴过来,然后我们思考怎么运用判断后缀把数组中正数和负数分开,进行判断个数和分别求和,需要的朋友可以参考下
    2022-04-04
  • 汇编语言之实现发出各种声音

    汇编语言之实现发出各种声音

    本文给大家分享一个练手小项目,响铃设计项目,列出了响铃,机枪声音,音乐播放器的代码,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2021-11-11

最新评论