Se desea controlar un LED conectado al bit menos significativo del byte de ES sólo escritura ES_LED, de modo que permanezca por siempre un segundo prendido y otro segundo apagado-
Nota: La interrupción TIMER es la O8h y se ejecuta 18 veces por segundo.
Aca pongo la parte del código en asembler que tengo duda:
ES_LED equ ....
cantTics db 0 ;[ Acá estoy definiendo que cantTics sea una variable de tipo byte y que se inicialice su valor en cero?]
estadoLED db 0
principal proc
move byte ptr CS:[cantTics],0 ;{ Aca dice que esto es igual a hacer cantTics=0, pero nose porque lo hace devuelta si ya lo hizo más arriba. Tambien supongo que asume que las variables declaradas se almacenaron en el rango del CS}
move byte ptr CS:[estadoLED],0
xor al,al
out dx,al
cli ; { Porque recién aca deshabilita interrupciones y no lo hace antes en el programa,osea porque cli no es la primera instrucción dentro del programa?}
xor ax,ax
xor bx,bx
mov es,ax
mov word ptr es:[bx+8*4], offset TIMER
mov word ptr es:[bx+8*4 ,cs ; { aca supongo que tembien supone que el segmento de la rutina TIMER es cs?}
sti;
principal endp.