1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| ;--------------------------------------------------
; Programme affichage de l'heure en assembleur
;--------------------------------------------------
TITLE DISPLAY HOUR - programme prototype
;--------------------------------------------------
ASSUME CS:CSEG, DS:CSEG, ES:CSEG
CSEG SEGMENT
ORG 100H
;*****programme principal
MAIN:
; Lecture de l'heure du RTC
MOV AH, 2
INT 1AH
; Appel de la sous-fonction 2CH de l'interruption 21H pour obtenir l'heure
MOV AH, 2CH
INT 21H
; Affichage des heures (dizaine)
MOV AH, 0
MOV AL, CH
MOV BH, 10
DIV BH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage des heure (unités)
MOV AL, AH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage du séparateur ':'
MOV DL, ':'
MOV AH, 02H
INT 21H
; Affichage des minutes (dizaines)
MOV AH, 0
MOV AL, CL
MOV BH, 10
DIV BH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage des minutes (unités)
MOV AL, AH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage du séparateur ':'
MOV DL, ':'
MOV AH, 02H
INT 21H
; Affichage des secondes (dizaines)
MOV AH, 0
MOV AL, DH
MOV BH, 10
DIV BH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage des secondes (unités)
MOV AL, AH
ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
; Affichage d'une nouvelle ligne
MOV DL, 0AH
MOV AH, 02H
INT 21H
; Attente d'une seconde
MOV AH, 86H
MOV CX, 150
INT 15H
; Boucle infinie
JMP MAIN
; Fin du programme
MOV AH, 4CH
INT 21H
;****************zone de données
CSEG ENDS
END MAIN
;----------------------------------------fin de programme |
Partager