已在VM中安装MS-DOS,但是不知道怎么把已生成的exe文件在其中调试
本帖最后由 laocaiye 于 2025-3-18 15:49 编辑如题
在VM中的MS-DOS环境下运行和调试已生成的 `.exe` 文件,你可以按照以下步骤操作:
1. 将EXE文件传输到MS-DOS
你可以使用以下方法之一将 `.exe` 文件传输到MS-DOS虚拟机:
[*] 使用软盘映像(.img 或 .vfd)
[*] 通过ISO镜像(.iso)
[*] 直接在VM的共享文件夹中复制(如果支持)
[*] 使用DOSBox(如果你用的是DOSBox而非VM)
2. 进入MS-DOS并运行EXE文件
在MS-DOS命令行中,进入存放 `.exe` 文件的目录,例如:
C:
CD \MYFOLDER
MYPROGRAM.EXE
3. 使用MS-DOS调试工具进行调试
MS-DOS自带 `DEBUG` 工具,你可以用它来调试EXE文件:
DEBUG MYPROGRAM.EXE
然后你可以使用 `?` 命令查看可用的调试指令,例如 `U`(反汇编)、`G`(运行)、`T`(单步执行)等。
4. 使用更高级的调试工具(如Turbo Debugger)
如果你需要更强大的调试功能,可以使用Borland的Turbo Debugger(TD),它提供了更友好的界面:
TD MYPROGRAM.EXE
Turbo Debugger 需要单独下载并安装到MS-DOS环境中。
总结
你可以使用 `DEBUG` 或 `Turbo Debugger` 来调试 `.exe` 文件,具体方法取决于你的需求和工具的可用性。如果你遇到文件传输问题,可以尝试使用软盘映像或ISO镜像。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 如果我把我的汇编代码保存在G:\asm_code文件夹中,并且已经在VM中设置了文件及共享,那么如何才能在MS-DOS中进入到这个文件夹? laocaiye 发表于 2025-03-18 15:11
如果我把我的汇编代码保存在G:\asm_code文件夹中,并 ...
在MS-DOS中访问VM共享的 `G:\asm_code` 文件夹,通常需要以下步骤:
### **1. 确保共享文件夹可用**
如果你使用的是 **VirtualBox** 或 **VMware**,你需要安装 **增强工具(Guest Additions / VMware Tools)**,然后在VM设置中启用共享文件夹。
### **2. 进入MS-DOS并挂载共享文件夹**
在MS-DOS中,通常无法直接访问Windows的 `G:\` 盘符,因此你需要使用 **网络映射** 或 **虚拟驱动器**。
#### **方法1:使用 `MSCDEX` 挂载CD-ROM(适用于ISO共享)**
如果你是通过ISO镜像共享文件,可以使用 `MSCDEX` 驱动程序:
MSCDEX /D:MSCD001
然后使用:
D:
或
E:
尝试访问你的文件。
#### **方法2:使用 `NET USE` 挂载网络共享(适用于VMware/VirtualBox)**
如果你的VM支持 **网络共享**,可以尝试:
NET USE G: \\VMSHARE\asm_code
然后进入:
G:
CD asm_code
#### **方法3:手动复制文件**
如果共享文件夹无法直接访问,你可以:
1. **在Windows中创建软盘映像(.img)**,然后用 `WinImage` 或 `IMDisk` 复制 `asm_code` 文件夹到软盘映像。
2. **在VM中加载软盘映像**,然后在MS-DOS中访问 `A:` 盘。
### **3. 进入 `asm_code` 目录**
如果 `G:` 盘已经正确挂载,你可以使用:
G:
CD asm_code
DIR
来查看文件。
### **总结**
- **如果是ISO共享**,使用 `MSCDEX` 访问。
- **如果是网络共享**,使用 `NET USE` 挂载。
- **如果无法直接访问**,可以使用软盘映像或ISO镜像复制文件。
如果你遇到问题,可以提供你的VM软件(VirtualBox/VMware)和MS-DOS版本,我可以给出更具体的解决方案!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 算了,放弃了,为了个实验,还需要学习那么多乱七八糟的知识。 laocaiye 发表于 2025-03-18 15:15
算了,放弃了,为了个实验,还需要学习那么多乱七八糟 ...
如果你觉得学习这些内容太麻烦,可以考虑使用 **DOSBox** 代替虚拟机,它更容易在现代系统上运行MS-DOS程序,并且可以直接访问本机文件夹。这样你就不需要折腾共享文件夹的问题了。
如果你还是想在VM里运行,可以告诉我你的具体环境(比如使用的是 **VMware** 还是 **VirtualBox**,MS-DOS 版本是多少),我可以帮你简化步骤,让你更快完成实验!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 用dosbox-x手动mount挂载,或者用visual studio code安装集成dosbox-x的nasm或masm插件,启动dosbox-x时自动将当前目录挂载
kansnow 发表于 2025-3-19 23:54
用dosbox-x手动mount挂载,或者用visual studio code安装集成dosbox-x的nasm或masm插件,启动dosbox-x时自 ...
我是为了在DOS实模式下测试第十五章外部中断代码,因为需要在实模式下访问硬件。其他我都是用DOSBOX,但是在DOSBOX中无法运行需要测试的程序。 laocaiye 发表于 2025-3-20 07:41
我是为了在DOS实模式下测试第十五章外部中断代码,因为需要在实模式下访问硬件。其他我都是用DOSBOX,但 ...
考虑使用pcem或者86box怎么样,那个是真机仿真的可以实现你想要的效果,那个实验和小甲鱼的课后我都是用的pcem模拟器去做的。 是那个访问端口获取时间信息的那个题目吗?用pcem有一个好处是可以方便调试书本的实验二制作小型的启动软盘程序的那个。{:10_279:} 如果使用仿真器的话建议在仿真器搭建的是286以上机型,我记得的有个实验在8086机型上的效果和书本不一致原因就是8086机型的BIOS没有提供除法溢出的中断处理程序来着但是286以上机型没问题 健康快乐 发表于 2025-3-24 18:20
考虑使用pcem或者86box怎么样,那个是真机仿真的可以实现你想要的效果,那个实验和小甲鱼的课后我都是用 ...
谢谢!
页:
[1]