Assembler

Суточные реле и недельные реле времени смотрите здесь. |





0 8253 IBM PC.
0
8259. , , 0
, ( ,
).
0 ,
0. ( ) ,
. 1.19
, , 55
.
, . , 0
18.2 .
 
,
BIOS ,
. BIOS
, . ,
,
, .
 
18.2?
, 20 ,
"" ? .
 

.
, .
,
-, -
.
.
:
 
MOV CX, LOOP_VALUE
HERE:LOOP HERE
 
LOOP_VALUE ,
. ,
.
LOOP_VALUE, 0FFFFH,
250-.
 
, ,
, .
, , :
 
MOV CX, 0
HERE:
; ---
IN AL, DX
TEST AL, MASK_BIT
LOOPNE HERE
DONE:
; --- CX
 
,
. ,
, CX
0. -
, ,
10 20 .
. 840 ,

.
 
. 8.5 ,
.
2 .

Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:05:19
. 8.5 Page 1-1
 
PAGE ,132
TITLE . 8.5
 
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
 
0000 CODE SEGMENT
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
0021 75 FA JNZ LOW_TO_HIGH ; : 2
;
0023 WAIT_HIGH:
0023 E4 62 IN AL, 62H ; 2
0025 A8 20 TEST AL, 20H
0027 74 FA JZ WAIT_HIGH ; : 2
;
0029 B0 00 MOV AL, 0 ; -
002B E6 43 OUT 43H, AL ; 2, "" 2
002D 90 NOP
002E 90 NOP ; , 8253
002F E4 40 IN AL, 40H ;
0031 8A E0 MOV AH, AL
0033 90 NOP
0034 E4 40 IN AL, 40H ;
0036 86 E0 XCHG AH, AL
0038 C3 RET ; AX
0039 LOW_TO_HIGH ENDP
0039 CODE ENDS
END
 
. 8.5 ()
 
.
500H. ,

.
 
LOW_TO_HIGH,
, 2
.
;
, ,
.
( 43H), ""
0.
, .
,
16- .
 
, . 8.5
NOP.
.
8253, , IN OUT,
, 1 .
NOP ,
.

BX
. ,

2 .
, 2.
 
, 0
0 - .
, ,
, , . 0
,
, .
, ,
, 0 100H. 500H
0FC00H. 0
"" 0 0FFFFH,
.
- ,
0FFFFH, .
, ,
.
 
,
, 8000H.
6000H, 5B00H,
500H.
100H, 7C00H,
8500H.
, ,
.
 
,
BX 0A00H,
500H. ,

. 8253,
.
 
. 8.6 8253.

43H.
43H. "" ,
,
- 0B6H. , .
 
.
- .
0, 0 .
3 .
, ,
. ,
16-
.
A



D7 D6 D5 D4 D3 D2 D1 D0
Ŀ
SC1 SC0 RL1 RL0 M2 M1 M0 BCD

 

SC - :
SC1 SC0
Ŀ
0 0 0
Ĵ
0 1 1
Ĵ
1 0 2
Ĵ
1 1

 
RL - /:
RL1 RL0
Ŀ
0 0 (.
READ/WRITE)
Ĵ
1 0 / 򠠠
Ĵ
0 1 / 򠠠
Ĵ
1 1 / ,
-

 
M - :
M2 M1 M0
Ŀ
0 0 0 0
Ĵ
0 0 0 1
Ĵ
X 1 0 2
Ĵ
X 1 1 3
Ĵ
1 0 0 4
Ĵ
1 0 1 5

 
BCD:
Ŀ
0 16-
Ĵ
1
(BCD) (4- )

 
. 8.6 /
( Intel; Intel 1981.)A
0B6H,
, :
 
0B6H = 10110110B = 01 11 011 0
 
2.
16- ,
. ,
. , .
 
8253 .
, IBM, .
3 .
:
,
- . ,
, .
, , - .
,
, . - ,
0 3, . 8.5
0A00H, 500H,
.
.
 
, 27
. ,
.
 
, IBM PC -
0. .
.
(),
.
, .
. 0
0 8259,
.
 
,
.
,
55 .
, .
 
,
. BIOS
55 ,
,
.
55
5 ,
BIOS. ,
150 . ,
50 (
59500).
, ,
, 50 .
, 150 ,
.
 

. , 1
. 1,
. 2
.
. , , ,
2
. ,
BIOS 0 .
BIOS ,
,
. ,
0 , ,
.