L
Size: a a a
L
EK
.code
invoke GetDayOfYear
mov DayNumber,al
NextDay:
inc byte [DayNumber]
jnz .simple_day
call Day256
.simple_day:
invoke SetProgrammingState, TRUE
hlt ; wait for end of day
invoke SetProgrammingState, FALSE
push eax
invoke Sleep, 8*3600*1000
jmp NextDay
Day256:
invoke KillBear
invoke DrinkBeer
invoke ScreamOutLoud, ProgrammersDayMsg
ret
; Hardware interrupt handler
NewYearInterruptHandler:
mov byte [DayNumber],0
iret
StackOverflowExceptionHandler:
invoke Die
in al,70h
or al,80h
out 70h,al ; disable NMI
cli
jmp $
.data
ProgrammersDayMsg:
db 'Программисты всех стран, соединяйтесь!',0
DayNumber:
db ?ДD
EK
NewYear (а т.к. 365 < 512, то два раза за год не сработает) :)inc не меняет флага CF, поэтому именно add.EK
inc + jnz сделать, конечно :)ДD
ДD
EK
ДD
ДD
EK
ДD
EK
EK
EK
ДD
EK