如何在windows下使用masm和link对汇编文件进行编译

前言

32位系统带有debug程序,可以进行汇编语言和exe的调试。但真正的汇编编程是“编辑汇编程序文件(.asm)->编译生成obj文件->链接生成exe文件”。下面,我就来说一下如何在windows下使用masm调试,使用link链接。

1、下载相应软件

在这里插入图片描述

在这里插入图片描述

下载masm.exe和link.exe,并将其解压(移动)到自定义目录(比如我的是d:\dos 目录)

个人分享地址:http://pan.baidu.com/s/1i5hUFdj

2、masm和link环境

如果你的系统是32位winxp或win7,那么可以进入cmd界面,用如下命令切换到masm和link所在的目录:

在这里插入图片描述
如果你的系统是64位的系统,那么不能直接使用cmd运行。这时,我们可以借助dosbox软件。关于这个软件的使用,我已在上一篇文章中介绍过。

打开dosbox软件,虚拟一个盘符到masm和link所在目录,比如将c盘虚拟成物理机上的d:\dos目录,然后跳转到该虚拟盘符(文件夹)
在这里插入图片描述

3、使用masm和link

首先用文本编辑器等工具编写出汇编源程序(*.asm)保存在masm和link所在目录:
在这里插入图片描述

然后就可以使用masm和link了:

在这里插入图片描述
在这里插入图片描述

4、后续

link后生成的exe可执行文件可以用debug来进行调试,篇幅所限就不做介绍。另外如果嫌每次启动dosbox都要输入mount指令麻烦的话,可以对dosbox的配置文件进行修改。配置文件的位置可以查看dosbox启动窗口

在这里插入图片描述

5、汇编代码实例

assume cs:codesgcodesg segmentmov ax,012Hmov bx,0456Hadd ax,bxadd ax,axmov ax,4c00Hint 21Hcodesg endsend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/86130.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring AOP基于注解方式实现和细节

目录 一、Spring AOP底层技术 二、初步实现AOP编程 三、获取切点详细信息 四、 切点表达式语法 五、重用(提取)切点表达式 一、Spring AOP底层技术 SpringAop的核心在于动态代理,那么在SpringAop的底层的技术是依靠了什么技术呢&#x…

webscoket在vue中的使用

项目场景: 提示:项目相关背景: 什么是webscoket?: WebSocket是一种计算机通信协议,通过单个TCP连接提供全双工通信信道。实现了web客户端和服务器之间的实时通信,与传统的HTTP连接相比,允许以…

C++|观察者模式

观察者模式: 定义对象间的一种一对多(变化)的依赖关系,以便当一个 对象(Subject)的状态发生改变时,所有依赖于它的对象都 得到通知并自动更新 动机: 在软件构建过程中,我们需要为某些对象建立…

OpenCV基础知识(9)— 视频处理(读取并显示摄像头视频、播放视频文件、保存视频文件等)

前言:Hello大家好,我是小哥谈。OpenCV不仅能够处理图像,还能够处理视频。视频是由大量的图像构成的,这些图像是以固定的时间间隔从视频中获取的。这样,就能够使用图像处理的方法对这些图像进行处理,进而达到…

【动手学深度学习】--21.锚框

锚框 学习视频:锚框【动手学深度学习v2】 官方笔记:锚框 1.锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框(gro…

谷歌浏览器的受欢迎之谜:探析其引人入胜的特点

文章目录 🍀引言🍀1. 极速的浏览体验🍀2. 简洁直观的界面🍀3. 强大的同步功能🍀4. 丰富的扩展生态系统🍀5. 安全与隐私的关注🍀6. 持续的技术创新🍀7. 跨平台支持和云整合&#x1f3…

C++快速回顾(三)

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。C/C是音视频必…

Flask 单元测试

如果一个软件项目没有经过测试,就像做的菜里没加盐一样。Flask 作为一个 Web 软件项目,如何做单元测试呢,今天我们来了解下,基于 unittest 的 Flask 项目的单元测试。 什么是单元测试 单元测试是软件测试的一种类型。顾名思义&a…

C#,数值计算——调适数值积分法(adaptive quadrature)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 调适数值积分法 /// adaptive quadrature /// </summary> public class Adapt { private double x1 { get; } 0.942882415695480; private …

kali 2023.3新增工具

在终端模拟器中运行 sudo apt update && sudo apt full-upgrade 命令来更新其安装 Kali Linux 2023.3 发布中包含了九个新工具&#xff0c;分别是&#xff1a; Calico&#xff1a;云原生网络和网络安全。 cri-tools&#xff1a;用于Kubelet容器运行时接口的命令行界面…

Nginx全局配置

目录 一、修改启动进程数 二、日制分割 三、nginx进程的优先级&#xff08;work进程的优先级&#xff09; 四、http设置 4.1http 协议配置说明 4.2mime 4.3 server块构建虚拟主机 4.4 location 一、修改启动进程数 worker_processes 1; #允许的启动工作进程数数量…

【字节跳动青训营】后端笔记整理-4 | Go框架三件套之GORM的使用

**本人是第六届字节跳动青训营&#xff08;后端组&#xff09;的成员。本文由博主本人整理自该营的日常学习实践&#xff0c;首发于稀土掘金。 我的go开发环境&#xff1a; *本地IDE&#xff1a;GoLand 2023.1.2 *go&#xff1a;1.20.6 *MySQL&#xff1a;8.0 本文介绍Go框架三…