小编The*_*e04的帖子

BIOS 中断 13 读取扇区不起作用

我已经进入了汇编操作系统开发,目前我正在设置一个两阶段引导加载程序。我已经设置了第一阶段,但是当我重置磁盘并读取第二个扇区时,我在屏幕上看到了一堆乱码。当我尝试调用应该在 加载的代码时0x1000,没有任何反应(据我所知)。我试图找到解决方案,但我发现的解决方案似乎都不起作用,而且我的运气越来越差。这是我的完整代码:

    BITS 16

start:
    mov ax, 07C0h
    add ax, 288
    mov ss, ax
    mov sp, 4096
    
    mov ax, 07C0h
    mov ds, ax
    
    call reset
    call read_sector
    
    jmp sector
    
    text_string db "hello, world!", 0
    sector equ 1000h

reset:
    mov ah, 00h
    mov dl, 00h
    int 13h

read_sector:
    ; 1000h (used to be 07E0h, but changed as I realized that I probably needed to accomodate more space for the bootloader)
    mov ax, sector
    mov es, ax
    mov ah, 02h …
Run Code Online (Sandbox Code Playgroud)

assembly operating-system bootloader x86-16

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

标签 统计

assembly ×1

bootloader ×1

operating-system ×1

x86-16 ×1