【求助】int 13h 读取软盘扇区 返回错误码:1
org07c00h;--------第一扇区--------;初始化段寄存器、堆栈标识xorax,axmovds,axmovss,axmovsp,100hmovax,0b...
org 07c00h
;-------- 第一扇区 --------
;初始化段寄存器、堆栈标识
xor ax,ax
mov ds,ax
mov ss,ax
mov sp,100h
mov ax,0b800h
mov gs,ax
;载入其他扇区
xor si,si
LABEL_BOOT:
xor ah,ah;复位软驱
xor dl,dl
int 13h
mov ah,2;读软盘
mov ax,7e0h;目的位置
mov es,ax
mov bx,0
mov dl,0;驱动器号
mov ch,0;柱面号
mov dh,0;磁头号
mov cl,2;扇区号
mov al,1;扇区数
int 13h
jnc LABEL_NEXT
inc si
cmp si,6
jb LABEL_BOOT
mov word[gs:1600],0c41h
.sleep:
hlt
jmp .sleep
;引导扇区标识
times 510-($-$$) db 0
dw 0xaa55
;-------- 其他扇区 --------
LABEL_NEXT:
mov word[gs:1600],0c42h
.sleep:
hlt
jmp .sleep
;文件尾填充
times 1474560-($-$$) db 0
在VMware Workstation中运行,返回错误码1
刚刚检查了一下功能号和参数,没有发现问题
把7e0h改为820h后int 13h正常返回,但 jnc 8200h 后仍然会死机 展开
;-------- 第一扇区 --------
;初始化段寄存器、堆栈标识
xor ax,ax
mov ds,ax
mov ss,ax
mov sp,100h
mov ax,0b800h
mov gs,ax
;载入其他扇区
xor si,si
LABEL_BOOT:
xor ah,ah;复位软驱
xor dl,dl
int 13h
mov ah,2;读软盘
mov ax,7e0h;目的位置
mov es,ax
mov bx,0
mov dl,0;驱动器号
mov ch,0;柱面号
mov dh,0;磁头号
mov cl,2;扇区号
mov al,1;扇区数
int 13h
jnc LABEL_NEXT
inc si
cmp si,6
jb LABEL_BOOT
mov word[gs:1600],0c41h
.sleep:
hlt
jmp .sleep
;引导扇区标识
times 510-($-$$) db 0
dw 0xaa55
;-------- 其他扇区 --------
LABEL_NEXT:
mov word[gs:1600],0c42h
.sleep:
hlt
jmp .sleep
;文件尾填充
times 1474560-($-$$) db 0
在VMware Workstation中运行,返回错误码1
刚刚检查了一下功能号和参数,没有发现问题
把7e0h改为820h后int 13h正常返回,但 jnc 8200h 后仍然会死机 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询