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