VScode配置8086汇编环境

news/2024/7/16 9:33:34 标签: vscode, 汇编, ide

目录

0、感慨 

1、VScode的安装

2、下载MASM/TASM插件

3、测试汇编环境

新建文件

汇编文件配置

汇编代码的运行


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,然后进行系统功能调用,在显示器上显示字符串。最后,系统功能调用,程序结束返回操作系统。


http://www.niftyadmin.cn/n/216472.html

相关文章

微信小程序原生开发功能合集十一:定时器组件的封装

本章实现定时器组件的封装,可进行倒计时、计时等不同的功能,再支付倒计时计时等场景可直接使用。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:    1. CSDN课程: https://edu.csdn.n…

Python 函数、文件与模块

“探索 Python” 这一系列的前几篇文章已为 Python 编程新手介绍了几方面的主题&#xff0c;包括变量、容器对象和复合语句。本文以这些概念为基础&#xff0c;构造一个完整的 Python 程序。引入了 Python 函数和模块&#xff0c;并展示了构建一个 Python 程序、将其存储在文件…

常用异常检测模型的应用

常用异常检测模型的应用 描述 异常数据检测不仅仅可以帮助我们提高数据质量&#xff0c;同时在一些实际业务中&#xff0c;异常数据往往包含有价值的信息&#xff0c;如异常交易、网络攻击、工业品缺陷等&#xff0c;因此异常检测也是数据挖掘的重要手段。常用的异常检测模型…

如何搭建vue脚手架

项目创建# 使用 create-vue 脚手架创建项目 create-vue参考地址&#xff1a;GitHub - vuejs/create-vue: &#x1f6e0;️ The recommended way to start a Vite-powered Vue project 步骤&#xff1a; 执行创建命令pnpm create vue # or npm init vuelatest # or yarn creat…

Vue Baidu Map图标旋转rotation失败且控制台一直报错

报错如下&#xff1a; 解决&#xff1a; /** * ready 地图组件渲染完毕时触发&#xff0c;返回一个百度地图的核心类和地图实例。百度地图组件是异步加载&#xff0c;请不要 * 尝试在组件的生命周期中访问 BMap 核心类和 map 实例&#xff0c;如有需要&#xff0c;请在所需组件…

【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法

目录一、背景意义二、基本原理三、算法介绍3.1 数字水印嵌入3.2 数字水印提取四、程序实现一、背景意义 数字水印技术作为信息隐藏技术的一个重要分支&#xff0c;是将信息(水印)隐藏于数字图像、视频、音频及文本文档等数字媒体中&#xff0c;从而实现隐秘传输、存储、标注、…

Yolo v7的最简TensorFlow实现

Yolo v7去年推出之后&#xff0c;取得了很好的性能。作者也公布了基于Pytorch实现的源代码。在我之前的几篇博客当中&#xff0c;对代码进行了深入的解析&#xff0c;了解了Yolo v7的技术细节和实现机制。因为我一直是用的Tensorflow&#xff0c;因此也想尝试把代码移植到Tenso…

Linux主机用WordPress搭建网站

文章目录一、搭建过程1.1、切换到超户1.2、更新1.3、安装一些包1.4、安装wordpress1.5、配置MariaDB1.6、创建WordPress数据库1.7、配置WordPress1.8、登录WordPress1.9、安装phpMyAdmin一、搭建过程 1.1、切换到超户 sudo su1.2、更新 apt-get update -y1.3、安装一些包 a…