â ðåãèñòðå AX çíà÷åíèå ñ÷åò÷èêà
ASSUME CS:CODE
0000 TIMER PROC FAR
0000 1E PUSH DS ; Çàíåñåíèå àäðåñà âîçâðàòà
0001 B8 0000 MOV AX, 0
0004 50 PUSH AX
0005 B0 B6 MOV AL, 10110110B ; Âûáîðêà òàéìåðà 2
0007 E6 43 OUT 43H, AL
0009 B8 0500 MOV AX, 500H
000C E6 42 OUT 42H, AL ; Òàéìåð 2 óñòàíîâëåí íà 500 îòñ÷åòîâ
000E 8A C4 MOV AL, AH
0010 E6 42 OUT 42H, AL
0012 E8 001D R CALL LOW_TO_HIGH ; Âûáîðêà âðåìåíè ïåðâîãî ïåðåõîäà ñ 0 íà 1
0015 8B D8 MOV BX, AX ; Ñîõðàíåíèå çíà÷åíèÿ â ðåãèñòðå BX
0017 E8 001D R CALL LOW_TO_HIGH ; Âûáîðêà âðåìåíè âòîðîãî ïåðåõîäà ñ 0 íà 1
001A 2B D8 SUB BX, AX ; Âû÷èòàÿ ïîëó÷àåì äëèíó öèêëà
001C CB RET
001D TIMER ENDP
Ôèã. 8.5 Óïðàâëåíèå ñèñòåìíûì òàéìåðîì (íà÷àëî)
;--------------------------------------------
; Ýòà ïîäïðîãðàììà æäåò ïåðåõîäà ñ íèæíåãî óðîâíÿ
; ñèãíàëà íà âåðõíèé (ñ 0 íà 1) â òàéìåðå 2
; è âîçâðàùàåò â ðåãèñòðå AX çíà÷åíèå ñ÷åò÷èêà òàéìåðà 0
;--------------------------------------------
001D LOW_TO_HIGH PROC NEAR
001D E4 62 IN AL, 62H ; Ïðîâåðêà ðàçðÿäà òàéìåðà 2
001F A8 20 TEST AL, 20H
Ñîäåðæàíèå Íàçàä Âïåðåä