小编Hop*_*ful的帖子

什么会在Int 13h中导致磁盘读取错误?

我一直在用NASM编写一个测试程序,该函数用于int 13h从引导磁盘读取扇区,但每次使用sudo qemu-system-i386 load_disk.bin运行汇编程序时,它都会为我提供以下输出:

磁盘读取错误!磁盘读取错误!磁盘读取错误!*磁盘读取错误!*磁盘读取错误!*

如果设置了进位标志(CF),则可以预期。我一直在寻找答案的几天,并尝试了许多不同的解决方案(跳转到ES:BX之后jc test,将启动驱动器保存在DL...中),但似乎没有任何效果。
这是我的程序:

[bits 16]                       ;real mode 
[org 0x7c00] 

mov [DISK], dl                  ;save boot drive value 

xor ax, ax                      ;setting up stack 
cli 
mov ss, ax 
mov sp, 0x7c00 
sti 

mov di, 5       `               ;counter for number of tries 
read_disk:                      
mov ah, 0x00                    ;resetting disk 
int 0x13 
mov bx, 0x9000                  ;data buffer 
mov es, bx 
mov bx ,0x0000                   
mov ah, 0x02                    ; function number …
Run Code Online (Sandbox Code Playgroud)

assembly bios nasm bootloader x86-16

5
推荐指数
1
解决办法
577
查看次数

标签 统计

assembly ×1

bios ×1

bootloader ×1

nasm ×1

x86-16 ×1