VScode配置8086汇编环境
目录
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 ;定义数据段,段名为DATASTRING DB'HELLO!','$' ;定义字符串数据
DATA ENDS
CODE SEGMENT ;定义代码段,改名为CODE
ASSUME CS:CODE, DS:DATA, SS:STACK
START: MOV AX, DATA ;程序执行起始点MOV DS, AX ;将数据段地址寄存器指向用户数据段MOV AX, STACKMOV SS, AX ;将堆栈段地址寄存器指向用户堆栈段LEA DX, STRINGMOV AH, 09HINT 21H ;系统调试功能,在显示器上显示字符串MOV AH, 4CHINT 21H ;系统调试功能,程序结束返回操作系统
CODE ENDSEND START ;汇编结束,段内程序起点为START
运行结果如下:
运行过后相信大家明白这就是一个完整的汇编语言源程序示例,该程序就是完成在屏幕中打印显示“HELLO!”。
当然啦,对于这个程序,我们应当侧重于了解它的格式,而不仅仅是内容。通常,完整的汇编语言源程序格式的定义由SEGMENT和ENDS这对伪指令实现,同时需要伪指令ASSUME指定该段加载的段地址寄存器。
以上的ASSUME语句将CS、DS、SS依次指向名为CODE、DATA、STACK的段,然而,ASSUME语句并不为DS、SS赋值,所以,程序开始就是先用传送指令将数据段DATA和堆栈段STACK的段地址分别赋值到DS、SS,然后进行系统功能调用,在显示器上显示字符串。最后,系统功能调用,程序结束返回操作系统。
相关文章:

VScode配置8086汇编环境
目录 0、感慨 1、VScode的安装 2、下载MASM/TASM插件 3、测试汇编环境 新建文件 汇编文件配置 汇编代码的运行 0、感慨 搭配一个简单些的环境,对于我们汇编的学习很有帮助,在这里又不得不感叹vscode的强大,使用VScodeMASM/TASM插件就…...

银行数字化转型导师坚鹏:银行同业核心产品与营销策略解读
数字化背景下银行同业核心产品与营销策略解读课程背景: 数字化背景下,很多银行存在以下问题:不清楚银行同业核心产品发展现状?不清楚如何银行同业产品营销策略?不知道如何更好地挖掘他行优质客户? 课…...

在线答题考试小程序源码系统 支持在线刷题+考试二合一+安装部署教程
分享一个在线答题考试小程序源码系统,支持在线刷题考试二合一,程序包含前后端和详细的安装部署教程,可以用来给学生刷题,给员工刷题,给政企员工刷题,万能通用版适合任何行业在线刷题及考试。 系统功能一览&…...

同城跑腿小程序怎么做
随着市场需求越来越大,分工越来明细,很多人看到了跑腿类的商机,特别是学校、小区、商务园等场所。无论是校园跑腿还是社会类跑腿,例中代取快递、代拿包裹、代搬东西上下楼、代排队、帮忙办事、代买东西、代送等等功能都少不了&…...

爬虫逆向学习(五):使用RPC框架serkio解决逆向难题
serkio应用实战前言实战开发多次调用加密方法破解失败如何刷新加密方法同一个浏览器的加密代码如何给不同用户使用注意事项总结前言 最近在工作中遇到了一个反爬虫产品,处于技术能力和新产品迭代更新快的考虑,最后选择使用RPC技术解决问题,因…...

NumPy 秘籍中文第二版:三、掌握常用函数
原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 在本章中,我们将介绍许多常用函数: sqrt(),log(),arange(),astype()和sum()ceil(),modf()&…...

蓝桥杯基础17:BASIC-02试题 序列求和
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 求123...n的值。 输入格式 输入包括一个整数n。 输出格式 输出一行,包括一个整数,表示123...n…...
vue移动端实现vue-pdf在线预览与展示,并且解决页面汉字空白的问题
vue移动端实现pdf的页面在线预览展示,CMapReaderFactory可以解决文字不展示、空白问题 //1、安装依赖vue-pdf npm install --save vue-pdf//2、使用组件 <pdf v-for"i in numPages" ref"pdfs" :src"pdfUrl" :key"i" …...
代码随想录算法训练营第四十九天 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
打卡第49天,买卖股票系列了 今日任务 ● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#x…...
【职场篇】程序员是否吃青春饭?程序员在35岁之后是否需要转行?
你们好 那么众所周知呢像空姐 还有模特这种职业呢 都是吃青春饭的 那么到了一定年龄呢 他们可能就不做这一行了 那么其实程序员这个职业呢 有的人认为他也是吃青春饭的 普遍人都认为呢 如果程序员做到35岁呢 没有转管理岗位 可能以后就没有什么前途了 可能就要考虑换别的行业了…...

( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】
226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root [2,1,3] 输出:[…...

实验7---myBatis和Spring整合
实验七 myBatis和Spring整合 一、实验目的及任务 通过该实验,掌握mybatis和spring整合方法,掌握生成mapper实现类的两种生成方式。 二、实验环境及条件 主机操作系统为Win10,Tomcat,j2sdk1.6或以上版本。 三、实验实施步骤 略 四、实验报告内…...

DJ3-4 传输层(第四节课)
目录 一、TCP 概述 二、TCP 报文段的首部字段格式 三、TCP 往返时延的估计和超时 1. 估计往返时间 2. RTT 估计例子 3. 估计往返时间的偏差 4. 设置重传超时间隔 一、TCP 概述 全双工服务:允许在同一时间同一连接上,数据能够双向传输。注意&#…...

2023爱分析·商业智能应用解决方案市场厂商评估报告:数聚股份
目录 1. 研究范围定义 2. 商业智能应用解决方案市场分析 3. 厂商评估:数聚股份 4. 入选证书 1. 研究范围定义 商业智能(BI)是在实现数据集成和统一管理的基础上,利用数据存储和处理、分析与展示等技术,满足企…...
Kotlin方法执行顺序
方法的执行顺序 主构造函数init代码块次构造函数...

Ubuntu系统配置SonarQube + cppcheck + Jenkins
SonarQube1. postgresql安装及配置1.1 安装postgresql1.2 创建sonarqube用户1.3 设置数据库2. 安装sonarqube2.1 设置sonarqube2.2 修改sonarqube目录权限2.3 sonar.properties2.4 设置systemd管理sonarqube2.5 web3. 配置sonarscanner3.1 下载3.2 配置4. 配置cppcheck4.1 下载…...
Spring @Valid 不生效 问题记录
校验的简单使用: 在Spring中,我们可以使用Valid注解对实体进行校验。在Controller的方法参数中添加Valid注解,然后在实体类的属性上添加校验注解,例如NotNull、Size等。例如: RestController public class UserContr…...

五步教你如何注册一个公司网站
在今天的数字化时代,每个公司都需要一个强大的线上存在感。注册一个公司网站是实现这一目标的第一步。但是,对于许多公司而言,这个过程可能有些困难。因此,在本文中,我将介绍一个五步计划,让您轻松注册一个…...

CSS绘制气泡对话框样式(有边框)
1、效果图 2、难点和思路 难点:上面那个带边框的小三角不好实现 思路:画两个不同大小的div,使其基本重叠(两个大小不同,不完全重叠,让红色的露出一点边边),让白色div放到最上层&…...

12款 Macmini A1347 跑 Stable Diffusion,20多分钟一张图
设备 2012款 Macmini A1347 12款 mini A1347 跑 Stable Diffusion 要20多分钟一张图 来欣赏一下20分钟画出来的图片 a black and white cat 环境:...
vue3-andsign 中实现实物电商列表的页面
这里自己做一个代码整理 做了一个实物电商 选品中心的页面 看里面有些效果挺好 这里记录一下 直接粘贴代码了 我自己能看懂 做了一个列表显示 骨架屏等 效果 使用了grid 布局 比媒体查询好使 <script setup lang"ts"> import { ref, onMounted, watch } fro…...

【C++项目】负载均衡在线OJ系统-1
文章目录 前言项目结果演示技术栈:结构与总体思路compiler编译功能-common/util.hpp 拼接编译临时文件-common/log.hpp 开放式日志-common/util.hpp 获取时间戳方法-秒级-common/util.hpp 文件是否存在-compile_server/compiler.hpp 编译功能编写(重要&a…...

C++性能优化指南
思维导图(转载) https://www.processon.com/view/5e5b3fc5e4b03627650b1f42 第 1 章 优化概述 1.1 优化是软件开发的一部分 优化更像是一门实验科学。 1.2 优化是高效的 1.3 优化是没有问题的 **90/10 规则:**程序中只有 10% 的代码…...

系统思考:跳出症状看全局
明天将为华为全球采购认证管理部的伙伴们带来一场关于系统思考的深度课程!通过经典的啤酒游戏经营决策沙盘,一起沉浸式体验如何从全局视角看待问题,发现单点最优并不等于全局最优。 这不仅是一次简单的课程,更是一次洞察系统背后…...
GIT(AI回答)
在Git中,git push 命令主要用于将本地分支的提交推送到远程仓库(如GitHub、GitLab等)。如果你希望将本地分支的改动同步到另一个本地分支,这不是 git push 的设计目的。以下是正确的替代方法: 方法1࿱…...
基于 React Native for HarmonyOS5 的跨平台组件库开发指南,以及组件示例
基于 React Native for HarmonyOS5 的跨平台组件库开发,需融合分层架构设计、鸿蒙原生能力桥接及性能优化技术,核心指南如下: 一、分层架构设计 采用 模块化分层结构,隔离平台差异逻辑: ├── common_har …...

STM32H562----------串口通信(UART)
1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…...

4G无线网络转串口模块 DTU-1101
4G无线网络转串口模块概述 4G无线网络转串口模块是一种工业通信设备,通过4G网络将串口(如RS232/RS485)设备接入互联网,实现远程数据传输与控制。适用于物联网(IoT)、工业自动化、远程监控等场景。 核心功能…...

量子计算导论课程设计 之 PennyLane环境搭建
文章目录 具体配置conda 虚拟环境配置Pennylane 正所谓,磨刀不误砍柴工,想要进行量子计算导论的课程设计,首先就是搭建好平台,推荐大家就是本地搭建,那么下面有三种选择 QiskitTensorFlow QuantumPennylane 具体配置…...
ingress-nginx 开启 Prometheus 监控 + Grafana 查看指标
环境已经部署了 ingress-nginx(DaemonSet 方式),并且 Prometheus Grafana 也已经运行。但之前 /metrics 端点没有暴露 Nginx 核心指标(如 nginx_ingress_controller_requests_total),经过调整后现在可以正…...