搭建汇编语言开发环境总结 利用DOSBox+TASM/MASM

TASM汇编程序开发环境配置

本文介绍如何在电脑上搭建汇编语言开发环境。

由于汇编语言开发工具TASM和MASM只能在16位系统中使用,目前大多数电脑都是64位的,无法运行它们,所以需要使用模拟器来模拟16位环境。

如果嫌麻烦可以使用点解这个链接,利用终端自动化编译运行MASM/TASM代码,通过脚本(终端)简化一些过程

需要准备的文件或者软件

  • Dosbox汇编工具运行所需的16位环境,可以使用 Dosbox 软件软件模拟
  • 汇编工具集 tasm+masm+edit下载
    • Borland公司的TASM汇编工具集
      • TASM.EXE汇编工具
      • TLINK.EXE链接工具
      • TD.EXE调试工具
      • 其他程序文件
    • 微软的MASM汇编程序集
      • MASM.EXE编译工具
      • LINK.EXE 链接工具
      • debug.exe 调试工具
      • 其他程序
  • 代码编辑器

如果不配置一键运行可以参考一下内容,手动运行

使用Dosbox手动编辑运行程序代码

  1. 下载上文链接中的文件,安装编辑器,dosbox,将工具集解压
  2. 点击压缩包中的dosbox.exe即可运行dosbox,右击dosbox.exe可以添加到桌面和开始菜单,当然也可以去官网下载dosbox
  3. 点击dosbox后,在dosbox中通过如命令的形式进行操作

0 准备工作

1.编辑配置文件1(可忽略)
  • 可以通过编辑配置文件的方式,简化一些操作,如自动执行命令(比如自动挂载文件夹)、调整窗口大小详见附2
  • DOSBox.exe安装目录之下,会有dosbox.conf也可能后缀为.bat文件,以纯文本格式打开它,可以在里面配置。
  • 常用代码段见附2
2. 打开Dosbox
  • 如果是使用的是安装程序进行安装的,应该可以直接在开始菜单或者桌面快捷方式打开
  • 如果使用的是便携版程序,可以将程序解压到一个目录,找到DOSBox.exe 文件运行它,可以右击固定到开始菜单或者发送到桌面
  • 打开dosbox之后会有两个窗口,
    1. 一个是状态窗口,如下左图,可以看到目前的配置文件为C:\Users\ASUS\AppData\Local\DOSBox\dosbox-0.74.conf,可以修改它实现调整窗口大小等功能
    2. 模拟的dos窗口,在里面执行相关命令

在这里插入图片描述

在dosbox中执行命令以实现汇编链接运行调试等

i 建立dosbox访问电脑的文件夹的映射关系(挂载)

dosbox不可以直接访问电脑文件夹,所以打开dosbox后,需要将需要dosbox访问的文件夹告诉程序,如

  • mount c d:\DOS\asm告诉DOSBox我在dosbox中输入d实际上是指这个文件夹
  • mount d d:\DOS\code注意dosbox命令(包括文件路径)是不区分大小写的
    这里我假设我在d:\DOS\asm中放了我的TASM汇编工具集(下面重点介绍TASM;MASM类似)

1.编辑汇编程序

  • 可以在汇编工具集所在目录下使用记事本、vscode、notepad++等工具编辑源代码程序,文件后缀名改成.asm(注意在文件管理器的查看中勾选显示拓展名)以a1.asm为例。2
    • 将编辑好的代码保存到需要的文件夹重命名为.asm后缀
    • 如果看不到后缀名,在查看选项卡中勾选“隐藏的项目”复选框
  • 可以使用文件夹里面的EDIT.COM编辑源代码程序,在DOSBox命令行中输入edit进入程序,编辑完成后可以点击左上角FILE保存(save)、另存为(save as)、退出(exit)。
    • dosbox中输入edit进入edit程序
    • dosbox中输入edit a1.asm编辑这个文件,没有则为新建这个并编辑
    • 前提:edit相关程序edit.com 等在当前目录或者设置为了path环境变量

2. 编译运行程序

在dosbox中输入相关命令

2.1 使用TASM编译连接运行调试
  • 输入tasm.exe/zi a1.asm 汇编a1.asm为源代码文件
  • 输入tlink/v/3 a1.obj 链接程序,不加参数可能无法调试
  • 输入td a1.exe 调试程序
    注:此处后缀名均可省略,dosbox下总是不区分大小写
2.2 使用masm编译连接调试

首先进入到masm的文件夹中,使用mount d d:\asm\masm挂载,使用d:进入目录。

命令:功能
masm name得到目标程序文件即obj文件
link name生成可执行文件即exe文件
name.exe运行该程序,有结果就输入,
若需要查看存储器和寄存器情况,就需要进行debug模式了
debug name.exe对指定程序进行debug
debug不特定

根据不同的debug命令进行想要的操作
常用命令 debug模式下:

-g :执行完name.exe文件显示运行结果
-a :编写汇编命令
-t :单步执行
-p :直接执行完不是单步执行
-u :反编译
-r :查看修改寄存器的值
-d :查看内存单元
-e :修改内存单元
-? :查看指令帮助

最近使用的常用命令的详细说明:

-d:查看128个内存单元内容。
-d 段地址:偏移地址
查看指定地址128个内存单元的内容。
-d 段地址:偏移地址1 偏移地址2
查看指定地址1 到 指定地址2 内存单元的内容。
-d 段地址:偏移地址 位移量
查看指定地址开始的位移量个长度的内存单元内容
-t:ma
单步执行每条指令,每执行一条指令就显示寄存器内容和逻辑地址还有执行的指令。
指定地址1 到 指定地址2 内存单元的内容。
-d 段地址:偏移地址 位移量
查看指定地址开始的位移量个长度的内存单元内容
-t:ma
单步执行每条指令,每执行一条指令就显示寄存器内容和逻辑地址还有执行的指令。

附录

附1 dosbox命令

通常指令加上/?后可以查看对应的帮助信息,如type/?,但是在dosbox下运行的程序查看帮助的方式通常为/help,比如masm查看帮助需要使用masm/help
值得注意的是在运行的程序后加上程序所需的参数的时候需要使用的是反斜杠(back slash’’)而在指定目录的时候需要使用的是(forward slash’/’)
在这里插入图片描述

附1.1 dosbox常用命令解释

dosbox命令行不区分大小写但是运行程序的参数区分参数大小写
命令和程序只能调用当前盘符下面的文件或文件夹
MOUNT命令:将计算机中的一个目录制定为一个盘,如下图中的example就是将d盘的dosprogs目录指定位dosbox中的c盘
mount命令的帮助信息
指定目录之后可以使用盘符加上冒号切换盘符,如z:,c:
DIR命令:查看目录,比如刚刚使用了C:切换到了C盘之后,显示的就是这个盘对应的MOUNT命令指定的文件夹里面的文件,也可以在DIR后面加上需要
CD命令,指定当前浏览的目录,比如刚刚使用了C:切换到了C盘之后,这时的当前目录为C:,使用CD MASM就将masm文件夹指定位当前文件夹
cd ,, #返回父目录
cd c:\codex设置当前目录为虚拟目录的c:\codex
运行程序 直接输入程序名即可运行程序,如:
TASM.EXE A.ASM这里两个后缀名通常可以省略,文件可以在当前文件夹子目录中,如MASM\MASM CODE\O1.ASM

附2 dosbox配置文件

2.1 [AUTOEXEC]自动执行(自重将常用文件夹挂载到doxbox)

在dosbox.conj中写入代码,dosbox打开时自动执行,例如

[AUTOEXEC]
mount c d:\DOS\asm
mount d d:\DOS\mario
c:
2.2 [sdl]调整dos窗口大小

在dosbox.conj 中写入

[sdl]
fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=1080x800
output=opengl
autolock=true
sensitivity=100
waittrue
priority=higher,normal
mapperfile=mapper-0.74.map
usescancodes=true

调整分辨率在上面代码中的windowresolution中调整
点击Dosbox.exe就可以运行了,右键可以发送到桌面和固定到开始菜单

附3 dosbox快捷键

常用的dosbox快捷键有:

  • CTRL+F5dosbox自带的截图工具,以png格式保存截图到安装目录的capture文件夹之下
  • CTRL+F9强行关闭dosbox
  • CTRL+F10将鼠标固定到dosbox里面,或者解除固定

这里是DOSBox v0.74-3 Manual提供的快捷键表格,鼠标总是停留在doxbox中时可以使用ctrl+F10解决,使用ctrl+F10F11调整cpu

ALT-ENTERSwitch to full screen and back. 全屏或退出全屏
ALT-PAUSEPause emulation (hit ALT-PAUSE again to continue).
CTRL-F1Start the keymapper.
CTRL-F4Change between mounted floppy/CD images. Update directory cache for all drives.
CTRL-ALT-F5Start/Stop creating a movie of the screen. (avi video capturing)
CTRL-F5Save a screenshot. (PNG format)
CTRL-F6Start/Stop recording sound output to a wave file.
CTRL-ALT-F7Start/Stop recording of OPL commands. (DRO format)
CTRL-ALT-F8Start/Stop the recording of raw MIDI commands.
CTRL-F7Decrease frameskip.
CTRL-F8Increase frameskip.
CTRL-F9Kill DOSBox.
CTRL-``F10`Capture/Release the mouse.
CTRL-``F11`Slow down emulation (Decrease DOSBox Cycles).
CTRL-``F12`Speed up emulation (Increase DOSBox Cycles)3.
ALT-F12Unlock speed (turbo button/fast forward)4
F11, ALT-F11(machine=cga) change tint in NTSC output modes5
F11(machine=hercules) cycle through amber, green, white colouring5

内容算不上是完全原创,算是整合吧


  1. 在软件安装目录下以及用户文件夹目录下都有配置文件,在打开的 ↩︎

  2. 也就是说编辑的源代码要和tasm.exe、tlink.exe、td.exe在同一目录之下,如果不这样做,可以通过在dosbox中将汇编工具集设置到path中等方法实现,
    在dosbox中编辑 ↩︎

  3. Once you increase your DOSBox cycles beyond your computer CPU resources, it will produce the same effect as slowing down the emulation. This maximum will vary from computer to computer. ↩︎

  4. You need free CPU resources for this (the more you have, the faster it goes), so it won’t work at all with cycles=max or a too high amount of fixed cycles. You have to keep the keys pressed for it to work! ↩︎

  5. These keys won’t work if you saved a mapper file earlier with a different machine type. So either reassign them or reset the mapper. ↩︎ ↩︎

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值