Il est parfois pratique de savoir quel année possède 366 jours dans le calendrier grégorien. On appel s'est année, les années bissextile. A l'aide du code source Assembleur 80x86 suivant, vous trouverez la réponse que vous souhaitez :
- .MODEL small
- .STACK 100h
- .DATA
- Message1 DB ' est une année bissextile','$'
- CRLF DB 13,10,'$'
- .CODE
- PrintDigit PROC NEAR
- OR AX,AX
- JNS Positif
- PUSH AX
- MOV AH,02h
- MOV DL,'-'
- INT 21h
- POP AX
- NEG AX
- Positif:
- MOV BX,10
- XOR CX,CX
- NextDigit:
- XOR DX,DX
- DIV BX
- PUSH DX
- INC CX
- OR AX,AX
- JNZ NextDigit
- PrintOneDigit:
- POP AX
- ADD AL,48
- MOV DL,AL
- MOV AH,02h
- INT 21h
- LOOP PrintOneDigit
- RET
- ENDP
-
- IsLeapYear PROC NEAR
- MOV DX,AX
- MOV CX,AX
- AND AX,3
- JNZ @isleapyearFalse
- MOV DI,100
- XCHG AX,DX
- XOR DX,DX
- DIV DI
- OR DX,DX
- JNZ @isleapyearTrue
- MOV DI,400
- XCHG AX,CX
- XOR DX,DX
- DIV DI
- OR DX,DX
- JZ @isleapyearTrue
- @isleapyearFalse:
- MOV AX,0
- RET
- @isleapyearTrue:
- MOV AX,1
- RET
- ENDP
-
- .startup
- MOV AX,1900
- @Restart:
- PUSH AX
- CALL IsLeapYear
- OR AX,AX
- JZ @Next
- POP AX
- PUSH AX
- CALL PrintDigit
- MOV AX,@data
- MOV DS,AX
- MOV AH,9
- MOV DX,OFFSET Message1
- INT 21h
- MOV AH,9
- MOV DX,OFFSET CRLF
- INT 21h
-
- @Next:
- POP AX
- INC AX
- CMP AX,2009
- JNGE @Restart
-
- MOV AX,4C00h
- INT 21h
- END
on obtiendra le résultat suivant :
1904 est une année bissextile1908 est une année bissextile
1912 est une année bissextile
1916 est une année bissextile
1920 est une année bissextile
1924 est une année bissextile
1928 est une année bissextile
1932 est une année bissextile
1936 est une année bissextile
1940 est une année bissextile
1944 est une année bissextile
1948 est une année bissextile
1952 est une année bissextile
1956 est une année bissextile
1960 est une année bissextile
1964 est une année bissextile
1968 est une année bissextile
1972 est une année bissextile
1976 est une année bissextile
1980 est une année bissextile
1984 est une année bissextile
1988 est une année bissextile
1992 est une année bissextile
1996 est une année bissextile
2000 est une année bissextile
2004 est une année bissextile
2008 est une année bissextile
Si par exemple vous utilisez le Turbo Assembleur version 5.0, vous n'aurez que les trois commandes suivantes a effectuer pour voir le résultat en supposant que le programme s'appel «leapyear.asm» :
TASM leapyear.asm TLINK leapyear.obj leapyear.exe |
Dernière mise à jour : Vendredi, le 4 mars 2016