Доступ к несуществующему сегменту в эмуляции Bochs

Я писал загрузчик, и когда я запускаю его с помощью Bochs, я получаю сообщение об ошибке "Доступ к несуществующему сегменту". Я не могу найти проблему. Мой код выглядит следующим образом:

[bits 16]
[org 0x7c00]

%include 'include\disp.asm'

start:

    xor ax, ax
    mov ds, ax
    mov es, ax

    mov bx, 0x8000
    mov ss, bx
    mov sp, ax

    pushf
    stc

    ;reset floppy to point to chs - 0/0/1 or LBA 1
    reset_floppy:

        mov ah, 00
        int 13h

        floppy_read_sector:

            xor ax, ax
            mov es, ax       ;load the second sector to the address pointed
            mov bx, 0x1000   ;by [es:bx] - 0x0000:0x1000

            mov ah, 02       ;load the sub-function 2 of INT 13 to read sectors 
            mov al, 01       ;number of sectors to read       
            mov ch, 00       
            mov cl, 02       ;sector to start read from
            mov dh, 00       ;head number
            int 13h

            jc .floppy_read_sector_error

            popf
            ;jmp 0x0:0x1000   ;jump to address 0x1000 where we have loaded the second sector

            ;mov si, testd
            ;call ind_printf
            cli
            hlt

            .floppy_read_sector_error:

                ;mov si, sector_read_error
                ;call ind_printf

                cli
                hlt

data:

    sector_read_error db 'cannot read sector 0/0/2 from disk!',0x0A,0x0D,0
    testd db 'test',0

times 510-($-$$) db 0
dw 0xAA55

Пожалуйста, помогите мне выйти из этого.

0 ответов

Другие вопросы по тегам