1

我需要制作一个可以写入/读取软盘 B 的迷你操作系统(从软盘 A 启动)。

环境是vmware工作站。软盘是 A.img 和 B.img。

在 A.img 中,我设置了一个 MBR 程序和一个 func.bin。我需要在 func.bin 中归档上述函数。以下是其中的代码片段。

...             ; set es:bx
mov ah, 0x03    ; read sectors
mov al, 0x01    ; 1 sector
mov ch, 0x00    ; cylinder
mov cl, 0x03    ; sector
mov dh, 0x00    ; head
mov dl, 0x01    ; B.img
int 0x13

然后我得到了返回码:ah = 0x01。它的意思是“非法命令”,但我不知道是什么原因造成的。

我尝试改成mov dl, 0x01mov dl, 0x00A.img)或mov dl, 0x80(硬盘),都成功了。所以我想知道如何解决它。


更新我的问题:
B.img 已设置为“在 vm 运行时自动连接”。

A 大小:31.5KB B 大小:1.44MB

4

1 回答 1

1

问题已由我自己解决。

这是由于我不知道VM的配置引起的。

默认情况下,虚拟机的 BIOS 中仅启用一个软盘驱动器。如果要向虚拟机添加第二个软盘驱动器,请在虚拟机窗口内单击并在虚拟机启动时按 F2 以进入 BIOS 设置实用程序。在主屏幕上,选择 Legacy Diskette B: 并使用数字键盘上的加号 (+) 和减号 (-) 键选择要使用的软盘驱动器类型。然后按 F10 保存更改并关闭 BIOS 设置实用程序。

https://www.vmware.com/support/ws5/doc/ws_disk_add_floppy.html

于 2016-06-02T07:08:48.257 回答