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

http://www.lryc.cn/news/58392.html

相关文章:

  • 银行数字化转型导师坚鹏:银行同业核心产品与营销策略解读
  • 在线答题考试小程序源码系统 支持在线刷题+考试二合一+安装部署教程
  • 同城跑腿小程序怎么做
  • 爬虫逆向学习(五):使用RPC框架serkio解决逆向难题
  • NumPy 秘籍中文第二版:三、掌握常用函数
  • 蓝桥杯基础17:BASIC-02试题 序列求和
  • vue移动端实现vue-pdf在线预览与展示,并且解决页面汉字空白的问题
  • 代码随想录算法训练营第四十九天 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II
  • 【职场篇】程序员是否吃青春饭?程序员在35岁之后是否需要转行?
  • ( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】
  • 实验7---myBatis和Spring整合
  • DJ3-4 传输层(第四节课)
  • 2023爱分析·商业智能应用解决方案市场厂商评估报告:数聚股份
  • Kotlin方法执行顺序
  • Ubuntu系统配置SonarQube + cppcheck + Jenkins
  • Spring @Valid 不生效 问题记录
  • 五步教你如何注册一个公司网站
  • CSS绘制气泡对话框样式(有边框)
  • 12款 Macmini A1347 跑 Stable Diffusion,20多分钟一张图
  • 流量控制和拥塞控制的原理和区别
  • 金融机构断卡行动中外部数据
  • 携程总监的单元测试是怎么样写的?
  • 算法每日一题:P2089 烤鸡 -DFS练习
  • Spring中的循环依赖是什么?如何解决它?
  • 不良事件报告系统源码,PHP医院安全(不良)事件报告系统源码,在大型医院稳定运行多年
  • MySQL 查询常用操作(3)——排序 order by
  • Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(二)
  • 传统企业如何实现数字化转型?
  • Linux修改密码报错Authentication token manipulation error的终极解决方法
  • ROS实践06 自定义消息类型