【发布时间】:2016-06-01 16:56:54
【问题描述】:
我需要制作一个可以写/读软盘B的迷你操作系统(从软盘A启动)。
环境是 vmware 工作站。软盘是 A.img 和 B.img。
在 A.img 中,我设置了一个 MBR 程序和一个 func.bin。我需要在 func.bin 中归档上述函数。以下是其中的一段代码sn-p。
... ; 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, 0x01改为mov dl, 0x00(A.img)或mov dl, 0x80(硬盘),都成功了。所以我想知道如何解决它。
更新我的问题:
B.img 已设置为“在 vm 运行时自动连接”。
A 的大小:31.5KB B的大小:1.44MB
【问题讨论】:
-
您是否将第二张软盘(驱动器 B:)设置为在启动时连接?我想知道您是否添加了第二张软盘(使用 B.img 的虚拟软盘),但您没有告诉它在 VM 启动时连接。
-
出于好奇。 A.img的文件大小是多少,B.img的大小是多少?
标签: io operating-system bios floppy