当前位置: 首页 > news >正文

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、感慨 搭配一个简单些的环境&#xff0c;对于我们汇编的学习很有帮助&#xff0c;在这里又不得不感叹vscode的强大&#xff0c;使用VScodeMASM/TASM插件就…...

银行数字化转型导师坚鹏:银行同业核心产品与营销策略解读

数字化背景下银行同业核心产品与营销策略解读课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a;不清楚银行同业核心产品发展现状&#xff1f;不清楚如何银行同业产品营销策略&#xff1f;不知道如何更好地挖掘他行优质客户&#xff1f; 课…...

在线答题考试小程序源码系统 支持在线刷题+考试二合一+安装部署教程

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

同城跑腿小程序怎么做

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

爬虫逆向学习(五):使用RPC框架serkio解决逆向难题

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

NumPy 秘籍中文第二版:三、掌握常用函数

原文&#xff1a;NumPy Cookbook - Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 在本章中&#xff0c;我们将介绍许多常用函数&#xff1a; sqrt()&#xff0c;log()&#xff0c;arange()&#xff0c;astype()和sum()ceil()&#xff0c;modf()&…...

蓝桥杯基础17:BASIC-02试题 序列求和

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 求123...n的值。 输入格式 输入包括一个整数n。 输出格式 输出一行&#xff0c;包括一个整数&#xff0c;表示123...n…...

vue移动端实现vue-pdf在线预览与展示,并且解决页面汉字空白的问题

vue移动端实现pdf的页面在线预览展示&#xff0c;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天&#xff0c;买卖股票系列了 今日任务 ● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II 121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#x…...

【职场篇】程序员是否吃青春饭?程序员在35岁之后是否需要转行?

你们好 那么众所周知呢像空姐 还有模特这种职业呢 都是吃青春饭的 那么到了一定年龄呢 他们可能就不做这一行了 那么其实程序员这个职业呢 有的人认为他也是吃青春饭的 普遍人都认为呢 如果程序员做到35岁呢 没有转管理岗位 可能以后就没有什么前途了 可能就要考虑换别的行业了…...

( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】

226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[…...

实验7---myBatis和Spring整合

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

DJ3-4 传输层(第四节课)

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

2023爱分析·商业智能应用解决方案市场厂商评估报告:数聚股份

目录 1. 研究范围定义 2. 商业智能应用解决方案市场分析 3. 厂商评估&#xff1a;数聚股份 4. 入选证书 1. 研究范围定义 商业智能&#xff08;BI&#xff09;是在实现数据集成和统一管理的基础上&#xff0c;利用数据存储和处理、分析与展示等技术&#xff0c;满足企…...

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 不生效 问题记录

校验的简单使用&#xff1a; 在Spring中&#xff0c;我们可以使用Valid注解对实体进行校验。在Controller的方法参数中添加Valid注解&#xff0c;然后在实体类的属性上添加校验注解&#xff0c;例如NotNull、Size等。例如&#xff1a; RestController public class UserContr…...

五步教你如何注册一个公司网站

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

CSS绘制气泡对话框样式(有边框)

1、效果图 2、难点和思路 难点&#xff1a;上面那个带边框的小三角不好实现 思路&#xff1a;画两个不同大小的div&#xff0c;使其基本重叠&#xff08;两个大小不同&#xff0c;不完全重叠&#xff0c;让红色的露出一点边边&#xff09;&#xff0c;让白色div放到最上层&…...

12款 Macmini A1347 跑 Stable Diffusion,20多分钟一张图

设备 2012款 Macmini A1347 12款 mini A1347 跑 Stable Diffusion 要20多分钟一张图 来欣赏一下20分钟画出来的图片 a black and white cat 环境&#xff1a;...

Applite:告别命令行!macOS软件管理的图形化终极解决方案

Applite&#xff1a;告别命令行&#xff01;macOS软件管理的图形化终极解决方案 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Homebrew复杂的命令行操作而头疼吗&…...

告别串口线!用STM32CubeMX配置USB-CDC虚拟串口,实现与电脑免驱动通信(附Win7驱动安装指南)

STM32虚拟串口革命&#xff1a;USB-CDC免驱动通信全实战指南 嵌入式开发调试过程中&#xff0c;最令人头疼的莫过于频繁插拔串口线导致的接口松动、接触不良问题。传统串口调试不仅占用宝贵的UART资源&#xff0c;还常常因为物理连接问题浪费大量调试时间。本文将彻底改变这一局…...

构建轻量级LLM工具集:模块化设计、多模型集成与本地化部署实践

1. 项目概述&#xff1a;一个面向日常的轻量级LLM工具集最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“Daily-LLM”。光看名字&#xff0c;你可能会觉得这又是一个庞大的、需要海量算力才能跑起来的“大模型”项目。但点进去仔细研究后&#xff0c;我…...

【Midjourney数字艺术风格终极指南】:20年AI视觉专家亲授7大核心风格参数调优法则(含V6.1新增Realism Mode实测数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney数字艺术风格演进与V6.1核心变革 Midjourney自V1发布以来&#xff0c;其图像生成范式经历了从纹理模拟到语义理解、从风格模仿到跨模态协同的深层跃迁。V6.1标志着模型首次在原生架构中集成…...

别再让某个用户占满硬盘了!手把手教你用Linux quota给CentOS 7/8的/home目录设置磁盘限额

别再让某个用户占满硬盘了&#xff01;手把手教你用Linux quota给CentOS 7/8的/home目录设置磁盘限额 想象一下这样的场景&#xff1a;你管理的服务器上&#xff0c;十几个开发人员共享着同一个存储空间。某天突然收到警报——磁盘空间不足&#xff01;调查后发现&#xff0c;一…...

基于RP2040与CircuitPython的键盘内嵌DOOM游戏启动器DIY指南

1. 项目概述与核心思路几年前&#xff0c;我还在用笨重的全尺寸键盘时&#xff0c;就总琢磨着怎么给这每天摸上八小时的家伙加点“私货”。直到后来玩起了RP2040和CircuitPython&#xff0c;一个念头就冒出来了&#xff1a;能不能把游戏直接“焊”进键盘里&#xff1f;不是那种…...

VT.ai:开发者AI工具集实战指南,提升编码效率与调试体验

1. 项目概述&#xff1a;一个面向开发者的AI工具集最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“vinhnx/VT.ai”。乍一看这个标题&#xff0c;可能有点摸不着头脑&#xff0c;但点进去研究一番&#xff0c;你会发现这其实是一个开发者为自己、也为社区打造的一个AI工具…...

别再手动调色了!用Matlab bar3函数一键生成论文级渐变三维柱状图(附完整代码)

别再手动调色了&#xff01;用Matlab bar3函数一键生成论文级渐变三维柱状图&#xff08;附完整代码&#xff09; 科研图表的美观程度直接影响论文的第一印象&#xff0c;而三维柱状图在展示多维度数据时尤为常见。传统手动调整每个柱体的颜色、透明度、光照效果不仅耗时&#…...

BiscuitLang:专为Web业务逻辑设计的轻量级脚本语言

1. 项目概述&#xff1a;一个为现代Web开发而生的轻量级语言如果你和我一样&#xff0c;长期在Web前端和全栈开发的泥潭里摸爬滚打&#xff0c;那你一定对JavaScript生态的“臃肿”与“复杂”深有体会。一个简单的项目动辄node_modules文件夹体积惊人&#xff0c;工具链配置繁琐…...

Midjourney针孔摄影风格实战手册(含--s 120+--stylize微调对照表):实测137组prompt,仅3组达成真实暗角衰减与中心锐度坍缩

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney针孔摄影风格的本质解构 针孔摄影&#xff08;Pinhole Photography&#xff09;并非一种后期滤镜&#xff0c;而是一种基于光学物理原理的成像范式——无镜头、小孔成像、无限景深、软焦边缘…...