Salve ragazzi,
Allora io ho creato questo sistema operativo in assembly e volevo provarlo.
Ho compilato il mio kernel e un boot preso da internet poi li ho copiati su una chiavetta, da allora ho avviato il boot da chiavetta ma quando cercava un sistema operativo nella chiavetta non lo trovava.
Mi scriveva:Nessun sistema operativo trovato, premere un tasto per continuare ed infine mi avvia ubuntu come da norma.
Qualcuno sa dirmi dove sbaglio?
Questo è il boot:
http://blog.ishans.info/2012/01/19/a...om-usb-drives/
Questo è il mio kernel:
codice:
section .code

start:

    mov ah, 01h      ;Cursore on
    mov cx, 0607h    ;Modello cursore
    int 10h            ;Richiamo l' interrupt
    mov ah, 02h       ;Seleziono la funzione del bios
    mov dh, 0       ;Posiziono il cursore nella colonna '0'
    mov dl, 0        ;Posiziono il cursore nella riga '0'
    int 10h         ;Richiamo l' interrupt

main:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'O'     ;Condizione ASCII=O
    je sectorO      ;Salta se condizione è vera (ASCII=O)
    cmp al, 'c'     ;Condizione ASCII=c
    je sectorC      ;Salta se condizione è vera (ASCII=c)
    jmp main        ;Ripete l' operazione
    
sectorA:
sectorB:
sectorC:
    
    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'f'
    je createfile1
    cmp al, 'l'     ;Condizione ASCII=l
    je clearscreen1        ;Salta se condizione è vera (ASCII=l)
    jmp main

sectorD:
sectorE:
sectorF:
sectorG:
sectorH:
sectorI:
sectorL:
sectorM:
sectorN:
sectorO:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp  al, 'S'
    je versO
    jmp main

sectorP:
sectorQ:
sectorR:
sectorS:
sectorT:
sectorU:
sectorV:
sectorW:
sectorY:
sectorZ:
NumberSector:
SpecialSector:

createfile1:
    
    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'i'
    je createfile2
    jmp main
    
createfile2:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'l'
    je createfile3
    jmp main
    
createfile3:
    
    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'e'
    je createfile4
    jmp main
    
createfile4:

    mov ah, 02h
    add dh, 1
    int 10h
    
    mov ah, 02h
    add dh, 1
    int 10h
    jmp main

versO:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp  al, 'v'
    je versS
    jmp main

versS:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp  al, 'e'
    je vers1
    jmp main

vers1:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'r'
    je vers2
    jmp main

vers2:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 's'
    je vers3
    jmp main

vers3:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'i'
    je vers4
    jmp main
    
vers4:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'o'        ;Se al=o
    je vers5        ;Salta a vers5
    jmp main        ;Salta a main

vers5:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 'n'        ;Se al=n
    je vers6        ;Salta a vers6
    jmp main        ;Salta a main    

vers6:

    mov ah, 02h
    add dh, 1
    int 10h
    mov al, '1'        ;Posiziono '1' in al
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    mov al, '.'
    mov ah, 0eh
    int 10h
    mov al, '0'
    mov ah, 0eh
    int 10h
    mov al, ' '
    mov ah, 0eh
    int 10h
    mov al, 'A'
    mov ah, 0eh
    int 10h
    mov al, 'l'
    mov ah, 0eh
    int 10h
    mov al, 'p'
    mov ah, 0eh
    int 10h
    mov al, 'h'
    mov ah, 0eh
    int 10h
    mov al, 'a'
    mov ah, 0eh
    int 10h
    mov ah, 02h
    add dh, 1
    int 10h
    jmp main

clearscreen1:

    mov ah, 00h     ;Inserisce il carattere in 'al' sotto codice ASCII
    int 16h         ;Richiamo l' interrupt
    mov ah, 0eh     ;Stampa il carattere ASCII contenuto in 'al'
    int 10h         ;Richiamo l' interrupt
    cmp al, 's'     ;Condizione ASCII=s
    je clearscreen2 ;Salta se condizione è vera (ASCII=s)
    jmp main

clearscreen2:

    mov ah, 00h     ;Richiamo una funzione del bios
    mov al, 02h     ;Setto la funzione richiamata
    int 10h         ;Richiamo l' interrupt
    mov ah, 02h
    mov dh, 0
    mov dl, 0
    int 10h
    mov ah, 00h
    mov al, 02h
    int 10h
    jmp main

section .data

ret