能力值:
( LV4,RANK:50 )
|
-
-
2 楼
你的真機,
指的是 Windows 下的 DOS-Box 吧?
直接開機進 DOS 再試看看?
|
能力值:
( LV7,RANK:110 )
|
-
-
3 楼
我写的程序是一个在软盘里的引导扇区~
也就是说,真机 其实是无操作系统的环境 ,这时我使用的是真实的软盘~
不过我使用Virtual PC,不管是img镜像,还是真实的软盘,都会出现这个问题~
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
这应该是 MicroSoft 和 Windows 本身的问题。
非法命令的信息是由 Windows 发出的吗?
|
能力值:
( LV7,RANK:110 )
|
-
-
5 楼
这个非法命令,是BIOS程序的返回值~
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
我猜想, 是 Virtual PC 內建的 BIOS 不支持直接讀取磁區嗎?
|
能力值:
(RANK:300 )
|
-
-
7 楼
xor ax, ax
mov sp,0x7bff ;看看你的栈
mov bx, 0xAE20
mov es, ax ; read to es:bx
mov ax, 0x201 ; ah=2 - read sectors, al - sectors num
mov cx, 1 ;
mov dx, 0x00 ; 1st floppy disk
int 0x13
你该贴出代码来看看的...好大家分析一下..
|
能力值:
( LV7,RANK:110 )
|
-
-
8 楼
嘿嘿,解决了,不过不明所以~
果然是栈的问题。。。
我程序一开始得栈设ss=0x9000,sp=0
后来改为ss=0x8000,sp=0
就可以了
bochs和virtual PC、真机,的不同结果应该是因为不同的BIOS程序~
不过还是有点不解~
0x90000-0x9FFFF这段内存BIOS应该是不使用的吧~
为什么会有影响呢~
求解释,分就给先让我明白真相的的人吧~
|
|
|