send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Reloj en ASM

  • 0 Respuestas
  • 1913 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ProcessKill

  • *
  • Underc0der
  • Mensajes: 154
  • Actividad:
    0%
  • Reputación 0
  • Arriba los hackers de Argentina!
    • Ver Perfil
    • Email
« en: Febrero 24, 2010, 03:58:34 pm »
Código: ASM
  1. PIC     EQU     20H        
  2. EOI     EQU     20H
  3. TIMER   EQU     10H
  4. NF10    EQU     9H
  5. NRELOJ  EQU     1CH
  6.  
  7.  
  8.         ORG 36
  9. F10_IP      DW      ?
  10. F10_CS      DW      0000
  11.  
  12.         ORG 70H
  13. RELOJ_IP    DW      ?
  14. RELOJ_CS    DW      0000
  15.  
  16.  
  17.         ORG 1000H
  18. PULSACIONES     DW      0
  19. PULSADA         DB      0
  20.  
  21.  
  22.  
  23. HORAS           DB      30H
  24.                 DB      30H
  25.                 DB      ":"
  26. MINUTOS         DB      30H
  27.                 DB      30H
  28. FIN             DB      ?
  29. ;.........................................
  30.  
  31.  
  32.  
  33.         ORG 5000H
  34. ; Rutina de atencion a la interrupcion de f10.
  35. RUTINA_F10:PUSH AX
  36.         INC PULSACIONES
  37.         MOV PULSADA,1        
  38.  
  39.         MOV AL,EOI
  40.         OUT EOI,AL
  41.         POP AX
  42.         IRET
  43. ;...............................................
  44.         ORG 6000H
  45. RUTINA_RELOJ:PUSH AX
  46.  
  47.         INC MINUTOS+1
  48.         CMP MINUTOS+1,3AH
  49.         JNZ  seis
  50.         MOV MINUTOS+1,30H
  51.         INC MINUTOS
  52.         CMP MINUTOS,36H
  53.         JNZ seis
  54.         MOV MINUTOS, 30H
  55. cuatro:  INC HORAS+1
  56.         CMP HORAS+1,34H
  57.         JNZ cinco
  58.         CMP HORAS,32H
  59.         JNZ cinco
  60.         MOV HORAS,30H
  61.         MOV HORAS+1,30H
  62.         JMP seis
  63. cinco:  CMP HORAS+1,3AH
  64.         JNZ seis
  65.         MOV HORAS+1,30H
  66.         INC HORAS
  67. ; Pone el contador del timer a 0
  68. seis:   MOV AL,0
  69.         OUT TIMER,AL
  70.         MOV AL,EOI
  71.         OUT EOI,AL
  72.         POP AX
  73.         IRET
  74. ;.............................................
  75.         ORG 2000H
  76. ; Modifica los vectores de interrupcion y
  77. ; programa al PIC,y al TIMER.
  78.  
  79. INICIO: CLI
  80.  
  81.  
  82.         MOV F10_IP, (OFFSET RUTINA_F10)
  83.         MOV RELOJ_IP, (OFFSET RUTINA_RELOJ)
  84.         MOV AL,0FCH
  85.         OUT PIC+1,AL
  86.         MOV AL,NF10
  87.         OUT PIC+4,AL
  88.         MOV AL,NRELOJ
  89.         OUT PIC+5,AL
  90.         MOV AL,120
  91.         OUT TIMER+1,AL
  92.         MOV AL,0
  93.         OUT TIMER,AL
  94.         MOV BX, OFFSET HORAS
  95.         MOV AL,(OFFSET FIN)-(OFFSET HORAS)
  96.  
  97.         STI
  98.  
  99. bucle:  CMP PULSADA,1
  100.         JNZ bucle
  101.         MOV PULSADA,0
  102.         INT 7
  103.         JMP bucle
  104.  
  105.         END
« Última modificación: Junio 03, 2013, 11:28:59 am por Expermicid »

 

¿Te gustó el post? COMPARTILO!