Windows10 下搭建汇编语言开发环境( 利用 DOSBOX 和 MASM32 )

 

Windows10下搭建汇编语言开发环境(利用DOSBOX和MASM32):https://www.cnblogs.com/zyever/p/7919007.html

如何在win10 64位下搭载汇编环境(包含汇编dosbox和masm文件):https://blog.csdn.net/xyisv/article/details/69062382

win10等环境下配置汇编程序的运行环境:https://www.jianshu.com/p/0c42f6b4b11f

win10 64 使用 visual studio 2017 搭建汇编开发环境:https://www.e-learn.cn/content/qita/2227999

 

以下是搭建基于 DOSBOX + MASM32 的汇编语言开发环境记录。

 

汇编 IDE :radasmMasmPlus、Easy Code、Visual Studio、Emu8086、ASM-Tool 等。使用比较多的就是 radasmMasmPlus、Visual Studio。

masmplus 和 Radasm 汇编工具.zip:https://download.csdn.net/download/freeking101/11665308
在 64位系统下,使用 RadASM IDE 写 32 位及 16 位的汇编程序(中文版报有木马,英文版没报,可以使用英文版的):https://blog.csdn.net/Alisebeast/article/details/79868992
汇编语言集成开发环境 RadASM 中文版:https://blog.csdn.net/qq_35699073/article/details/86362558

RadAsm 3.x支持中文注释:https://bbs.pediy.com/thread-210513.htm

在64位系统下,使用 RadASM IDE 写 32 位及 16 位的汇编程序
https://blog.csdn.net/Alisebeast/article/details/79868992

Win64下RadASM运行16位DOS程序
http://www.hankcs.com/program/asm/win64-running-under-16-bit-dos-program-radasm.html

 

MasmPlus

详解从零开始配置汇编开发环境(DosBox,MasmPlus):https://blog.csdn.net/yongf2014/article/details/46273949
64位Windows10下实现MasmPlus 一键执行16位程序:http://www.360doc.com/content/16/0519/20/33311358_560523404.shtml
window7下完美运行masmplus+dosbox,解决64位widnows无法运行16位程序问题
https://blog.csdn.net/xxt9388/article/details/79987865

 

 

 

1. 工具准备

 

1)下载 DOSBOX

    工具介绍:DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。不少DOS下的游戏都可以直接在该平台上运行。

工具官网:http://www.dosbox.com/
项目主页:http://sourceforge.net/projects/dosbox/
下载链接:http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download(32位)
说明:由于项目已经停更,目前官网上指出,DOSBOX可以运行于32位和64位的Windows Vista和Windows 7之上,根据本人亲测,亦可在 32位 和 64位 的 Windows 10 上运行 DOSBOX,因此有需要的童鞋可以试试。

 

 2)下载 MASM32

工具介绍:MASM32是国外的MASM爱好者Steve Hutchesson自行整理和编写的一个软件包,目前最高版本为11r版。MASM32并非指Microsoft的MASM宏汇编器,而是包含了不同版本工具组建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft Visual Studio中的Rc.exe,32位链接器是Microsoft Visual Studio中的Link.exe,同时包含有其他的一些如 Lib.exe 和 DumpPe.exe 等工具。
工具官网:http://www.masm32.com/
下载链接:http://www.masm32.com/download.htm

汇编文件2019年7月 https://pan.baidu.com/s/1w27JQtrklbaM4ZpzGVZr7A

masm文件夹内至少要包含这4个文件:masm.exe, link.exe, debug.exe, exe2bin.exe。其中:
masm.exe:汇编程序,用于汇编源程序(.asm),得到目标程序(.obj);
link.exe:连接程序,用于连接目标程序,得到可执行程序(.exe);
debug.exe:调试程序,用于调试可执行程序。
还可以下载其他的程序。

注意:masm工具压缩包,里面包含必要的汇编、链接、调试工具

 

 

2. 安装工具

 

1)安装 DOSBOX

      安装下载到的DOSBox0.74-win32-installer.exe,直接一路Next完成安装。

 

2)配置 DOSBOX  

创建两个目录,

  1. 一个用来保存汇编工具,如:D:\huibian\masm 。将汇编工具 放到新建的工作目录下。( 实际会用到的有以下程序:debug.exe   edit.com   link.exe   masm.exe )
  2. 一个用来保存汇编源文件( 如:D:\huibian\debug )。

      打开 DOSBOX 的安装根目录(默认安装路径:C:\Program Files\DOSBox-0.74;若是64位的系统,则默认安装路径:C:\Program Files (x86)\DOSBox-0.74),双击文件 DOSBox 0.74 Options.bat,运行该批处理文件后系统会用文本文档Notepad打开配置文件dosbox-0.74.conf。( 如果双击没反应,直接命令行执行

      将光标定位到 dosbox-0.74.conf 文件的 [autoexec] 节点(一般在该文件末尾),在文件中添加以下内容:

MOUNT C D:\huibian               # 将 目录 D:\huibian 挂载为 DOSBOX 下的 C:
set PATH=$PATH$;C:\masm          # 将 映射后 C:\masm 写入环境变量 PATH 中
# 环境变量添加 c:\masm,这样就可以调用 d:\huibian\masm\下的编译工具;
# 注意:不能设置成 set path=%path%;d:\masm\,因为此时 d盘 已挂载到 c盘 上
C:                               # 进入 dosbox 系统 的 C 盘

mount 的作用是将 pc 目录映射到 dos 系统的目录。这里是将我电脑中 D:\huibian 映射到了 dos 系统 c 盘,这样你对 dos 的c盘的操作就相当于是对 D:\huibian 的操作。

其实可以不修改 conf 文件,只要在每次运行时输入这两个命令就行了。

保存文件后关闭。

为什么要修改 dosbox 的 conf 文件 ? dosbox 的 conf 文件的 [autoexec]标签 下面的代码会在 dosbox 启动时运行,这样就不用在 dosbox 中每次输入代码了。

 

  3)安装 MASM32

将压缩包里面的 MASM 文件夹里面的东西放到一个文件夹,路径 尽量为 英文,其他路径也可以,但是路径不要有中文和空格。 
我的电脑中路径:( D:\huibian\masm

现在,打开 dosbox,输入 dir 。看看有没有 DEBUG,MASM 等文件。如果有的话就说明成功了,可以开始写汇编了。

安装结束后,可直接利用 masm32v11r 中的 gedit.exe 程序编写、编译 和 链接 asm 汇编程序。

 

 

 

3. 编辑和调试程序

 

3.1. 编辑 源程序

有 两种方法 编辑 汇编源程序:

  1. 新建 文本文件,修改 文件名 和 文件扩展名 为 test.asm,将 test.asm 放到 D:\huibian\debug 文件夹。
  2. 也可以运行 DOSBOX,在命令符 C:\DEBUG> 下输入命令:edit test.asm,启动 EDIT.EXE 进入代码编辑状态,并输入如下样例程序:

也可以使用 edit 命令直接编辑。使用 edit 命令进去后光标会消失,此时调用任务管理器 alt+ctrl+del 即可释放光标。

如果你觉得窗口太小,字体太小,你可以按 alt+enter 切换到全屏模式
同时在配置文件的第26行有一行字符 “fullresolution=original”,这是用来调节DOS窗口全屏下的分辨率的,默认original的值是640x480(中间是小写x),我个人的电脑将 original 改为 800x600 就比较舒服

;完整段的 Hello World 程序
DATAS  SEGMENTSTRING  DB  'Hello World!',13,10,'$'
DATAS  ENDSCODES  SEGMENTASSUME    CS:CODES,DS:DATAS
START:MOV  AX,DATASMOV  DS,AXLEA  DX,STRINGMOV  AH,9INT  21HMOV  AH,4CHINT  21H
CODES  ENDSEND   START

 

3.2. 汇编

打开 dosbox,输入命令:masm,然后输入汇编源文件名,其他都默认即可。

命令执行完后,会生成目标文件文件名 .OBJ(生成过程中可以修改目标文件名,直接回车可保持默认目标文件名)。

     注意:此时可能生成三个文件:*.obj、*.lst和*.crf文件( Windows10 x64系统只会生成*.obj文件 )。其中,列表文件*.lst和交叉引用文件非必选,前者是汇编语言汇编的机器语言与汇编语言对照表,可用于调试;后者给出了用户定义的所有符号和对每个符号定义、引用的行号。

 

3.3. 连接

先输入link,再输入文件名,之后一直回车。

LINK 文件名.OBJ,链接生成可执行文件文件名.EXE。

     注意:由于在上述代码中未定义堆栈段,故在链接时会提示:LINK : warning L4021: no stack segment,因不会影响执行文件的生成,故暂时忽略。

     另外,此时可能生成两个文件:*.exe和*.map文件(Windows10 x64系统可能只会生成*.exe文件)。其中,地址映射文件*.map给出内存地址分配的有关信息。

 

3.4. 运行

直接运行生成的 exe 程序

 

 

3.5. 调试

汇编语言之 Debug 教程篇:https://blog.csdn.net/qq_36215315/article/details/79893476

输入命令:debug 文件名.EXE,在 DEBUG 的命令提示符 '-' 出现后开始调试,

注意:是针对 可执行程序。debug 文件名.exe。进入调试模式,在短横线后输入命令。

网上可查到命令集。以下是部分调试命令及截图:

    R:查看程序运行前的寄存器组初始值;
    U:查看程序反汇编代码。从反汇编代码中可看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示。
    T:单步调试;
    D:观察内存变化(D后不带地址或范围,默认显示上一个D命令之后的80字节内容);
    G 地址:程序从当前位置直接运行到指定地址处停下。
    E 地址:修改内存中的内容,如:E DS:0100,输入空格可逐个字节修改,回车停止修改。

例如,g:运行程序。q:退出调试模式。

 

 

4. 其他工具

 

1. emu8086。直接编译、运行、调试,不需要dosbox。

2. masm for windows,友好的文本编辑器,但是运行和调试仍会调出dosbox。

链接:https://pan.baidu.com/s/16DxS5Yjizc-mve_5oUShBg 密码:3z3e

 

 

 

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

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

相关文章

一文解读“边缘计算” 和物联网的亲密关系!

来源:IT技术之家摘要:物联网的最终目标是万物互联,而边缘计算是解决当前云计算所面对的数据传输问题所应用的主要方式,相对于云计算,有更大的优势。物联网的最终目标是万物互联,而当前对于宽带水平来说&…

寄存器 和 存储器

From:https://blog.csdn.net/menshu1892/article/details/79912090 一、计算机硬件 先说内核:内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什…

博文视点大讲堂36期——让Oracle跑得更快 成功举办

博文视点大讲堂36期——让Oracle跑得更快 成功举办 电子工业出版社博文视点公司于2010年9月日在西单图书大厦成功举办“博文视点大讲堂36期——让Oracle跑得更快”讲座。8月22日,博文视点大讲堂为配合《让Oracle跑得更快—Oracle 10g性能分析与优化思路》的全国热销…

NLP 解决方案是如何被深度学习改写的?

作者:杨晓凡摘要:英特尔人工智能产品事业部,数据科学主任 Yinyin Liu 近日撰写了一篇文章,介绍了深度学习为自然语言处理带来的种种变化。有趣的大趋势是首先产生在 CV 领域的技术也不断用于 NLP,而深度学习解决方案的…

CompletableFuture详解~思维导图

#原图 System.out.println("https://www.processon.com/view/621a1b361e08533fc3afaa44?fromnew1");

如何在SharePoint 2010项目中引用UserProfiles.dll

如果需要进行SharePoint的UserProfile开发的话,我们需要引用以下程序集: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.Office.Server.UserProfiles.dll在添加引用的时候,Visual Studio 2010会…

汇编中各寄存器的作用(16位CPU14个,32位CPU16个)和 x86汇编指令集大全(带注释)

From:https://www.cnblogs.com/zimmerk/articles/2520011.html From:https://blog.csdn.net/bjbz_cxy/article/details/79467688 汇编寄存器功能详解:https://wenku.baidu.com/view/14ef15857cd184254a353586.html 寄存器、汇编命令详解&am…

斯坦福大学科学家研发微型植入式神经刺激器

来源:IEEE电气电子工程师协会实现使用可读生命体征传感器和可控制的植入器来装备我们的身体,就仿佛科幻小说中描述的一般,而事实上,这远比你想象中的要更接近现实。斯坦福大学最近研发出一款微型植入式神经刺激器,只有…

PPT演示力~思维导图

#原图 System.out.println("https://www.processon.com/view/6222dcb1e0b34d07287d09c6?fromnew1");

靠云计算翻身的微软正在“挑衅”亚马逊AWS

来源:第一财经摘要:凭借云计算业务“回春”的老牌科技企业微软还在继续享受转型的福利。微软最新发布的财报显示,云计算业务依然是公司目前业务最大的功臣。北京时间4月27日,微软发布的2018财年第三季度财报显示,在截止…

证书有效性验证、根证书

来源:证书有效性验证、根证书 - 程序员大本营 一、 数字证书的有效性验证主要从三个方面: (1)数字证书有效期验证 (2)根证书验证 (3)CRL验证 1、数字证书有效期验证…

BAT全球扩张AI路线图:百度早于谷歌,腾讯投资最多

来源:网络大数据CB Insights的最新报告挖掘BAT的AI相关专利记录、投资和收益等,全方位描绘了BAT的AI策略。报告显示,百度在AI领域处于领先地位。BAT分别着重自动驾驶、智慧城市和医疗AI,在政府的大力支持下,BAT正在向全…

汇编语言(王爽第三版) 实验5编写、调试具体多个段的程序

参考:http://blog.sina.com.cn/s/blog_171daf8e00102xclx.html 汇编语言实验答案 (王爽):https://wenku.baidu.com/view/a1cd7c6c1fb91a37f111f18583d049649b660ede.html 一。将下面的程序编译连接,用Debug加载、跟踪,然后回答问…

RestTemplate 最详解

目录 RestTemplate 简单使用 创建 RestTemplate接口调用一些其他设置简单总结公众号推荐在项目中,当我们需要远程调用一个 HTTP 接口时,我们经常会用到 RestTemplate 这个类。这个类是 Spring 框架提供的一个工具类。Spring 官网对它的介绍如下&#xf…

Gartner预计2018年全球人工智能商业价值将达到1.2万亿美元

来源:亿欧根据全球领先的信息技术研究与顾问公司Gartner的预测,人工智能(AI)产生的全球商业价值预计将在2018年达到1.2万亿美元,比2017年增长70%。此外,Gartner预计到2022年,人工智能衍生的商业…

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)

问题 7.9: 将 datasg 段中前 4 个字母变成大写 汇编代码: assume cs:codesg,ss:stacksg,ds:datasgstacksg segmentdb 0,0,0,0,0,0,0,0 stacksg endsdatasg segmentdb 1. display db 2. brows db 3. replace db 4. modify datas…

消费机器人今年爆发!四大品类瓜分百亿蛋糕

来源:智东西摘要:就扫地机器人、智能音箱、民用机器人和智能服务机器人的零售数据出发,盘点消费级机器人2018年的市场潜力。近两年,人工智能技术的迅猛发展。特别是视听觉语义理解、自然语言处理、神经网络、情感识别算法等的发展…

scrapy学习笔记(二)进阶使用

From:https://www.imooc.com/article/21839 scrapy提升篇之配置:https://segmentfault.com/a/1190000009321902 前面我写了一篇《scrapy快速入门》,简单介绍了一点scrapy的知识。这次就来介绍一些scrapy的进阶知识,做一些真正有用…

王爽 汇编语言第三版 第7章 --- 更灵活的定位内存地址的方法(可以理解为 数组形式的内存定位)

汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064 大小端 字节对齐 对于 arm,intel 这种 x86 构架的复杂指令 CPU,整数在内存中是倒着存放的,低地址放低位&…

从文本分类问题中的特征词选择算法追踪如何将数学知识,数学理论迁移到实际工程中去...

博文转载请注明作者和出处(作者:finallyliuyu :出处博客园) 附:《卡方特征词选择算法》 《DF特征词选择算法》 一.数学背景 将数学知识、数学理论以及数学思想迁移到实际工程问题中,经常会促进工程问题的圆…