Ubuntu18.04/Linux下安装DosBox进行8086汇编

Posted Pipci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04/Linux下安装DosBox进行8086汇编相关的知识,希望对你有一定的参考价值。

在windowsXP等32位系统会自带有debug等汇编调试工具,但是到之后的win7等64位系统之后移除了这个功能,其他系统诸如linux,Mac OS等等则没有,学习汇编,需要用到一些工具及软件,其中dosbox则是一个很好的选择,这里只介绍在汇编中如何使用dosbox。1、系统:ubuntu18.04

 

一、DOSBox简介

1、DOSBox 是一款模拟的 X86 机器,集成了 DOS 系统,可以运行旧的 DOS 游戏。这个模拟机允许你控制老游戏的速度,以及模拟旧的硬件,比如声卡和显卡,不管操作系统。这个集成的DOS系统还可以使你直接的启动游戏而无须安装DOS在虚拟机上。

2、DOSBox 开始在2002年,也就是window2000发布时间左右。win2000这个版本与微软过去的版本断绝了关系,并且导致大量的DOS游戏变得不能使用。有一些其他的办法在windows2000下面运行DOS游戏,但是他们并不提供Windows下运行这些游戏的能力。这样DOSBox诞生了。

 3、现在的版本是DOSBox 0.74 ,很难得的更新维护版本,它支持 Linux、Windows(7、8、10)、Mac OS、FreeBSD 平台,可以在这些平台中运行旧的 DOS 游戏。

DOSBox 0.74主要更新:

Windows:修复 Windows 7 上的 auto/max 循环算法。Mac OS X:带来 64 位版本并提高性能。Linux:修复 64 位 dynrec cpu 核心和很多编译问题。为 WINE 团队添加补丁。

官方网站:https://www.dosbox.com/

 

二、软件安装:

------------------------------------------------------

root@HP:~# apt install dosbox 

------------------------------------------------------

 

三、编译环境准备

MASM、Debug.exe、Link.exe,这是进行汇编的三个基本软件,其中MASM的部分高版本是不支持8086汇编的,这也是为什么VS2017下的8086汇编失败的原因(笔者个人观点)

Vim:文本编辑软件不再多做说明

上述软件均打包在:

链接:https://pan.baidu.com/s/1euPutS16fZmbsQq9Kolinw

四、编译环境配置

1、创建目录

~$ mkdir DOSBox           #在用户主目录创建DOSBox目录(这个目录的名字和位置可以自由指定)作为C盘的映射地址,在DOSBox里通过挂载后C盘的目录其实就是DOSBox目录了,DOSBox的盘符为c:\\> 其实是个虚拟C盘,

 在DOSBox里你可以在该文件夹下运行任何的DOS程序. 如果这些DOS程序是独立的可执行文件,仅仅需要把它们复制到~/DOSBox目录下并在DOSBox内运行它们.对于另外的程序,你可能需要它们的安装程序,进行安装。


~$ cd DOSBox            #进入DOSBox 目录创建下面的目录
~$ mkdir MASM             #MASM编译程序存放目录
~$ mkdir -p VIM/VIM71         #VIM安装的路径
~$ mkdir ASM                                          #汇编程序存放的目录
~$ mkdir FILE             #备用

2、放置软件

将链接下载的软件解压,并将:

MASM.EXE、debug.exe、LINK.EXE移动到:文件夹~/MASM,构建编译环境

 

 

vim-install.zip解压后,将里面的所以文件移动到文件夹 ~/VIM/VIM71

 

 

 

 

3、配置DOSbox环境文件

------------------------------------------------
~$ vim .dosbox/dosbox-0.74.conf          #dosbox程序运行后才会生产这个文件
-----------------------------------------------

末尾添加:
-----------------------------------------------
mount c ~/DOSDox
path=%path%;\\MASM
path=%path%;\\VIM\\VIM71
c:
-----------------------------------------------
mount c ~/DOSBox : 这行是挂载驱动器c盘到目录~/DOSbox(这里我们也可以用绝对路径),从而使C盘映射到~/DOSBox目录
默认情况下DOSBox并没有开启C:\\.如果要给一个,我们必须在虚拟机挂载一个. 实际上, 这意味着我们必须为DOSBox创建一个可以做为C:\\的目录.

path=%path%;\\MASM : 相当于将目录MASM路径加入了path中,当执行masm,link,debug命令时不用进入目录MASM。不添加该路径必须进入MASM目录才能够进行masm,link,debug操作。

path=%path%;\\VIM\\VIM71 : 相当于将目录VIM\\VIM71路径加入了path中,当执行vim命令时不用进入目录VIM\\VIM71。不添加该路径必须进入VIM\\VIM71目录才能够进行vim操作。

 

 

五、在上面的配置完成后在打开DOSBox进行VIM的安装,实际上现在是可以使用的,只是没有高亮等配置,完整安装:

-----------------------------------------------

c:\\>cd VIM\\VIM71
c:VIM\\VIM71>install

-----------------------------------------------

 

 

 

打开vim

c:\\>vim

 

 

 

 

 

 

六、Ubuntu下安装DOSbox,及窗口缩放配置(解决字太小问题)
这里主要讲一下DOSbox的缩放。
装完DOSbox之后发现字真的非常小,快瞎了,找到了一个解决方法。
使用vim(或者其他软件)修改配置文件:

-----------------------------------------------
~$ vim .dosbox/dosbox-0.74.conf
-----------------------------------------------

修改配置文件中的
-----------------------------------------------
#fullresolution=original
fullresolution=1024x768
#windowresolution=original
windowresolution=1024x768
output=opengl
hwscale=2.00
-----------------------------------------------
注意事项:
1.其中1024x768的x是字母不能用星号(×)
2.需要添加一句hwscale=2.00,原本是不存在的。

 

七、DOSBOX 快捷键及 MS-DOS 命令

1、全屏/退出全屏:alt+enter
2、释放鼠标:ctrl+F10
3、exit:退出DOSBOX
4、dir 显示目录内容,可选参数:/w 只显示文件名,/P 显示部分内容,*.exe 筛选出可执行文件
5、cd 进入目录,cd .. 退回上一级目录
6、md 新建目录
7、rd 删除目录
8、cls 清空屏幕
9、copy 复制文件
10、del 删除文件
11、deltree 删除整个文件夹
12、ren 重命名
13、ver显示当前版本号
14、type 输出文本文件内容
15、echo 显示消息

 

参考:

https://wiki.ubuntu.org.cn/DOSBox

 

https://www.jianshu.com/p/b0ff4da31480

https://www.bbsmax.com/A/VGzlBQEw5b/

http://blog.sina.com.cn/s/blog_14f9d2b790102x3at.html

https://blog.csdn.net/weixin_38709708/article/details/83057207

https://blog.csdn.net/qq_41584385/article/details/101855795

 

以上是关于Ubuntu18.04/Linux下安装DosBox进行8086汇编的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机ubuntu-编译属于自己的linux内核

虚拟机ubuntu-编译属于自己的linux内核

mysql的快速入门

在win10 64位下搭建汇编环境

Debug的使用

ubuntu下怎么安装sendmail