File compilato + sorgente qui: Ora.zip
;Questo semplice programma legge dalla memoria CMOS i secondi, i minuti, l'ora e
;l'anno in corso.
.model small
.stack
.data
msg1 db "Ore: $"
msg2 db "Minuti: $"
msg3 db "Secondi: $ "
msg4 db "Giorno: $"
msg5 db "Anno: $ "
resto db ?
minuti db ?
secondi db ?
ore db ?
giorno db ?
anno db ?
.code
acapo macro
mov ah, 2
mov dl, 13
int 21h
mov ah, 2
mov dl, 10
int 21h
endm
inizio:
mov ax, @data
mov ds, ax
mov al, 4
out 70h, al
in al, 71h
mov ore, al
lea dx, msg1
mov ah, 9
int 21h
xor dx, dx
mov al, ore
mov ah, 00
mov bx, 16
div bl
mov resto, ah
mov dl, al
add dl, 30h
mov ah, 2
int 21h
mov dl, resto
add dl, 30h
mov ah, 2
int 21h
acapo
lea dx, msg2
mov ah, 9
int 21h
mov al, 2
out 70h, al
in al, 71h
mov minuti, al
xor dx, dx
mov al, minuti
mov ah, 00
mov bx, 16
div bl
mov resto, ah
mov dl, al
add dl, 30h
mov ah, 2
int 21h
mov dl, resto
add dl, 30h
mov ah, 2
int 21h
acapo
lea dx, msg3
mov ah, 9
int 21h
mov al, 0
out 70h, al
in al, 71h
mov secondi, al
xor dx, dx
mov al, secondi
mov ah, 00
mov bx, 16
div bl
mov resto, ah
mov dl, al
add dl, 30h
mov ah, 2
int 21h
mov dl, resto
add dl, 30h
mov ah, 2
int 21h
acapo
lea dx, msg4
mov ah, 9
int 21h
mov al, 6
out 70h, al
in al, 71h
mov giorno, al
xor dx, dx
mov al, giorno
mov ah, 00
mov bx, 16
div bl
mov resto, ah
mov dl, al
add dl, 30h
mov ah, 2
int 21h
mov dl, resto
add dl, 30h
mov ah, 2
int 21h
acapo
lea dx, msg5
mov ah, 9
int 21h
mov al, 9
out 70h, al
in al, 71h
mov anno, al
xor dx, dx
mov al, anno
mov ah, 00
mov bx, 16
div bl
mov resto, ah
mov dl, al
add dl, 30h
mov ah, 2
int 21h
mov dl, resto
add dl, 30h
mov ah, 2
int 21h
mov ah, 4ch
int 21h
end inizio |