DOS:基本汇编语言开发环境配置及其增强

本秂侑毒 提交于 2019-12-17 03:41:47

前言(可跳过)

DOS,磁盘操作系统的缩写,一类古老的操作系统,如今的人们甚至可能都未曾听闻。但是,在三十年前,计算机上还没有普及图形界面的操作系统,人们依靠命令行来完成对文件的操作。无数程序员们戴着眼镜,在茶色窗户的大楼内,坐在显像管显示器前,依靠着简单的调试程序,打出一行行黑白的代码,这些代码共同构成了今天展现在我们眼前的五彩斑斓的图形界面的基础。 在那些缺乏便捷工具的日子里,人们依靠勤劳的双手,创造出了更加便捷的工具,这些工具更进一步帮助人们完成了更为复杂而高效的工具。通过这些更加高效的工具,程序员们最终打造出了如今精彩纷呈的计算机世界。
那是一段枯燥的日子,终日只有黑白字符相伴,但那也是一段精彩的日子,如今多彩的世界就是建立在那些日子的基础之上。 当如今我们用着极为便捷的编程工具时,是否有意识到,在那些缺乏高效工具的日子里,老一辈程序员是如何依靠简陋的工具以及命令行界面来打造出如今呈现在我们眼前的如此复杂而高效的集成开发环境的。那一代程序员,他们是否要比我们今人刻苦得多。如今的我们,是否早已忘记那些代码是如何编译实现的,是否对程序的底层架构一无所知。但是基础总是需要有人维护的,计算机世界是不可能只有高级语言的,总要有人去了解高级语言是如何实现的,总要有人在最底层去设计最基础的程序,而我们,是否和基础越来越遥远,是否浮于表面而没去在意那些最根本的事物。虽然windows很好用,但是总得有人去开发windows吧。

具体需求

基本要求:实现在DOS环境(DOSBox)下汇编语言的开发及调试
增强要求:实现在DOS环境(DOSBox)下图形界面的汇编语言开发及调试

基本要求的实现

1.安装并配置DOSBox

下载最新版DOSBox工具,以下为0.74版链接
链接: https://pan.baidu.com/s/1wRqiZ8pBW7GPPAFy1jHgsw
提取码: rr4i

解压在自定义路径中,最好是不含中文字符的路径,虽然含中文字符也可以运行。
解压后可以直接点击运行DOSBox.exe,会产生两个窗口:
第一个窗口第二个界面如果你的这两个界面如上所示,那么说明前期你的安装没有问题。接下来,我们要挂载硬盘,从而对计算机中的文件进行操作。因为直到此时,我们还没有办法打开计算机中的目录。
挂载命令:mount {disk} {directory}
比如 mount C D:\ASM\Fundament\Cpan 命令,就是把D:\ASM\Fundament\Cpan目录当做DOSBox中的c盘。注意,在DOS中目录不区分大小写。
挂载结果此时,C盘已经被设置为真实计算机中的D:\ASM\Fundament\Cpan目录,我们输入c:,便可以进入该目录,输入dir,即可查看该目录下的文件
dir结果如果不想每次输入时进行mount,我们可以打开与DOSBox.exe同目录下的DOSBox 0.74 Options.bat文件,此时会打开dosbox-0.74.conf文件,我们可以在最后一行加入相应的mount指令,并保存关闭。则在以后的运行中,mount指令会被自动运行。
修改结果

与此同时,如果希望对话框能放大,我们同样可以在dosbox-0.74.conf文件找到该部分,并进行相应的修改:
修改前
修改后:
修改后
其中,output要改为opengl,windowsresolution则设置为你想要的分辨率,中间使用x字母。再次打开DOSBox.exe,会发现界面出现了改变:
修改后界面在dos下可以通过输入help/all来查询可用指令,常用的指令有cd及dir、call。
cd用于进入目录cd…用于回到上一级目录dir用于显示当前目录下的文件,call用于运行程序(.com.bat.exe)也可不用输入call,直接输入程序名也可运行,切换磁盘分区则直接输入“分区符:”,如c:,D:等。
查询结果至此,DOS的基本配置完成。

2.MASM 2.0的安装

下载MASM 2.0版本,以下为其链接
链接: https://pan.baidu.com/s/1ev_cHrVI6RQlsCUnQeMZXA
提取码: xeqm

解压在挂载磁盘的目录路径中,一定是不含中文字符的路径,并且注意文件名不得超过8个字符
解压完成后,直接通过cd命令进入MASM目录,并使用call命令运行相应程序即可(也可直接输入程序名,如edit或者edit.com),如想进入编辑环境,输入edit(或者call edit.com),则进入编程界面。
shurujieguo
编程界面
在这里已经可以使用鼠标进行操作了,除了功能稀少以及界面比较简陋以外,其框架已经与当代图形界面开发环境基本相同,至此不在进行详细介绍。
在当前目录下,可以输入debug(或者call debug.com)来进入调试程序,
调试程序
如光标移至下一行,且如上图所示,前面有一个"-"符号,则说明已进入调试程序,在debug程序中,输入-q以退出。
其他debug详细命令可在网络中查询得知,本文不再详述。
DOS挂载目录下的文件也会显示在真实计算机目录中,故可以使用现代开发环境进行编程,或者记事本对asm文件进行修改,再放到相应的挂载目录下。
自此,基本汇编语言开发环境配置完成。

开发环境的增强

1.Windows 3.2的安装

windows 3.2是基于MS-DOS的图形界面操作系统,且支持中文显示,通过安装windows 3.2,我们可以在DOS环境下使用更多软件,如早期的PhotoShop和早期的Acrobat Reader。同时也可以正确显示中文,从而使用WPS软件。因为在未安装Windows 3.2时,WPS界面在DOSBox中不能正常显示。
WPS界面不正常显示下载Windows 3.2,以下为其链接
链接: https://pan.baidu.com/s/1nTk6OuB6mDtQrYmjHtvyKQ
提取码: qyz8

解压在挂载磁盘的目录路径中,一定是不含中文字符的路径,并且注意文件名不得超过8个字符
解压完成后,通过cd命令进入windows目录下的disk1目录,执行setup.exe文件(可输入setup或者call setup.exe),进入该界面。
安装界面按下回车,根据需要按下回车或者C键(回车为快捷安装,c为自定义安装),此处我选择自定义安装,进入选择windows安装目录界面:
选择安装目录有多久,我们的C盘下总是有个windows文件夹,但是,现在,c盘里没有windows文件夹,而我们,将会亲自决定windows的安装目录,哈哈。
稍等片刻
稍等片刻,安装程序会检查配置,然后进入下图界面。
配置界面
在该界面中的配置为DOSBox提供的环境配置,不需要更改,唯一需要注意的就是Language(语言)选项,确保它的值为Simplified Chinese(简体中文)。在确认没有错误后,选择No Changes,并按下回车键。安装开始!
然后要输入disk2所在目录,如果使用我上文提供的资源,它会在同disk1目录下的,即windows\disk2。
disk2目录接下来输入disk3目录,同上述disk2操作一样。如果中途要退出请按F3
disk3目录
接下来几次都是这样,直到disk8目录输入完成。突然,眼前一亮,进入下图界面:
(这里已经可以使用鼠标了)
安装程序界面根据提示输入用户名,然后注意不要安装打印机,其他部件可以自定义安装。
自定义安装
交换文件设置最好使用默认设置。
接下来,以同之前一样的方式输入disk9和diska、diskb、diskc(有这些目录)的目录。
输入目录然后进入该界面,此处我选择“修改前允许用户检查和编辑改动情况”,但后来事实证明还是选择“为用户做所有的修改” 最好。
修改因为其实我也不会检查和编辑。
更改界面
更改界面2
之后,即可成功安装Windows 3.2操作系统,并进入教程页面。

教程页面
但在如今这个时代,有谁会不用鼠标呢,哈哈。结束教程,来到该界面。
完成界面
在重新启动DOSBox后,我们发现即使输入win也不能启动windows系统。
win
这时,我们需要手动进入windows,在刚才安装windows系统的目录下(我设置为c:\windows)打开win程序(输入win或win.com或call win.com)
windows进入熟悉的操作系统windows了,后面就不用再说了吧。
自此,Windows 3.2安装完成。

2.MASM 6.11的安装

下载masm 6.11,以下为资源:
链接: https://pan.baidu.com/s/1COOTrOkIOVmvaCclo-3Yaw
提取码: upfy

解压并放入在挂载磁盘的目录路径中,一定是不含中文字符的路径,并且注意文件名不得超过8个字符
进入windows,使用windows主群组中的的文件管理器,(在上面的菜单栏切换磁盘)打开masm611目录下的disk1目录,运行setup.exe
masm目录
进入MASM安装界面:
masm界面
根据提示按下回车,选择第一个安装选项:
主菜单下一步选择安装系统,最好选择MS-DOS/Mircrosoft Windows,如安装在Microsoft Windows NT则程序只能运行在NTFS下,即不能运行在MS-DOS下。
安装系统
接下来需要两次选yes,包括安装PWB,即集成开发环境。再接下来是兼容性安装,这个看个人喜好吧,毕竟只能向下兼容(向1993年以前的程序)不是吗?然后是鼠标安装,选yes。然后是masm.exe安装,用于把masm5.1的文件转换成6.1的,还是看个人喜好。最后是复制帮助文件,选yes。然后是样例程序,我选yes。然后选安装盘,看个人喜好。剩下是有关安装目录的路径,我建议不要更改。然后选择NO CHANGES进行下一步。
安装结束接下来如果进入该界面,说明MASM 6.11安装成功,按下回车进入接下来的几个界面,说明了一些帮助配置windows系统的文件的路径。
环境配置环境配置2环境配置3
环境说明最后再次回到主界面,选择Exit SETUP退出安装。返回windows图形界面。
接下来,退出windows界面,运行MASM安装目录中的NEW-VARS.BAT,
bat运行结果接下来,将bin目录下的new-conf.sys文件中的设置复制到windows安装硬盘符(如C盘)下的config.sys
呃,dos下的操作比较复杂,我们关闭DOSBox,直接回到真实的windows操作系统下进行修改,
真实系统
如果CONFIG.SYS中已经有的设置,我们不要去改,只设置没有的。
设置
再打开bin目录下的NEW-SYS.INI文件 经查验,system.ini文件中的设置不需要替换为new-sys.ini中的内容,忽略该操作。
然后将MASM 6.11安装目录中的INIT目录下的TOOLS.PRE改名为TOOLS.INI。
剩下的himen.sys由于windows 3.2自身已经携带,故不需更改。
重新打开DOSBox,进入masm安装目录下的bin(使用cd命令进入下一目录),运行pwb。
如显示如下界面:
完成
则说明MASM 6.11安装成功。进入该界面后已经可以使用鼠标进行操作,故在此不对这一程序进行进一步详述。
虽然MASM 6.11的界面和MASM 2.0的界面很相似,但其实MASM 6.11已经可以在其中创建窗口并且移动和调整大小了。而这些在MASM 2.0中是不可实现的。
MASM 6.11的应用

图形界面下的运行

在Windows 3.2中安装MASM 6.11

打开windows 3.2中的主群组下的windows设置程序,在菜单栏的选项中选择安装应用程序:
设置
选择搜索应用程序,在MASM安装盘符下搜索,不断选择以上都不是,直到windows将硬盘上找到的应用程序全部显示出来,选择在MASM611目录下的Microsoft Macro Assembler,注意不要与MASM 2.0文件混淆,要选择MASM 6.11版本的程序。
选择选中好后,点击新增,将其安装成能在windows下运行(其实安装MASM 2.0也可)
安装
点击确认,程序立即安装完成,同时在主群组旁出现一个“应用程序”文件夹,打开并点击Programmer’s WorkBench即可在windows 3.2下打开开发环境。

安装Turbo C 2.0

下载Turbo C 2.0工具,以下为资源链接:
链接: https://pan.baidu.com/s/1kQW4Ljb5_OPxogGUBZLGTw
提取码: 7bcg
解压在挂载磁盘的目录路径中,一定是不含中文字符的路径,并且注意文件名不得超过8个字符。
解压完成后,进入DOSBox,运行TC201目录下disk1目录中的install.exe
TurboC安装界面按回车开始安装,首先我们要选择安装文件目录所在的磁盘分区,这里我选择D盘,因为我的Turbo C放在D盘中,然后我们要选择disk所在的目录,即TC201\DISK1目录,然后选择第一个选择,把Turbo C安装在硬盘中,然后我们要选择安装路径,在确认安装路径无误后,选择Start Installation开始安装。
选择在安装进行到一半后,会出现如下界面:
界面
此时,我们要在外界进行操作,把disk2目录下的东西移动到disk1之中,
该问题我已处理,在上文发送的资源链接中的Turbo C只有一个disk目录,我已经将三个目录中的文件合并。
错误如果安装过程中止会出现以上错误,遇到这个错误必须彻底删除已安装的文件并重新安装。

成功画面接下来如果要使用Turbo C 2.0只需进入TC目录输入TC(运行TC.EXE)即可。注意,Turbo C 2.0不支持鼠标。
TC界面自此,我们完成了Turbo C 2.0的安装。

总结与反思(可跳过)

这是我第一次尝试使用DOS系统,中间发生了很多问题,而且相比于现代的编程软件,当时的软件十分简陋。这不禁让我对那个年代的程序员产生了钦佩,他们能够使用这些简陋的工具来创造我们所使用的的复杂的工具,这是什么样的能力和精神呢。我写过一些代码,但全都是依靠现代工具的便捷来完成的,我的编程能力实际如何呢,在那个年代我恐怕连文本文件都不会编辑,谢谢那一辈人,为我们创造了今天如此好的条件。但我们这一代人也不能忘记这些简陋的工具,忘记这些高级应用层的基础,总是要有人来维护基础的,不可能每个人都用高级语言编程的,不是吗?
本篇文章所使用的办法为我在实际安装过程中所使用的办法,并不是最好的办法,如果各位读者还有什么更好的建议,欢迎在下方评论指点,谢谢,我会在有空的时候回复的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!