小编Pal*_*arg的帖子

将扇区加载到内存时出现磁盘读取错误

我试图开发利用的bootloader 这个,但是当它时,它会显示:

disk read error!
Run Code Online (Sandbox Code Playgroud)

如果我忽略它,在后面的部分,它会显示我错误的内存映射.我也跟着其他一些消息来源但是徒劳无功.感觉就像我只是在复制他们正在做的事情.如果我做的甚至有点不同,每次都会产生一种新的错误.

我应该使用已经构建的引导加载程序还是该怎么做?

磁盘加载错误代码如下:

[org 0x7c00]

    KERNEL_OFFSET equ 0x1000    
    mov [BOOT_DRIVE], dl        
    mov bp, 0x9000          
    mov sp, bp  
    mov bx, MSG_REAL_MODE       
    call print_string           
    call load_kernel            
    jmp $

print_string:
    pusha
    mov ah, 0x0e

loop:
    mov al,[bx]
    cmp al, 0
    je return
    int 0x10
    inc bx
    jmp loop

return:
    popa
    ret

disk_load: 
    push dx                                              
    mov ah, 0x02                                   
    mov al, dh                                          
    mov ch, 0x00                                    
    mov dh, 0x00                                     
    mov cl, 0x02                                    
    int 0x13                                           
    jc disk_error                                  
    pop dx                                               
    cmp dh, …
Run Code Online (Sandbox Code Playgroud)

assembly kernel qemu osdev bootloader

10
推荐指数
1
解决办法
1130
查看次数

标签 统计

assembly ×1

bootloader ×1

kernel ×1

osdev ×1

qemu ×1