Assembler






IBM ,
().
-
.
"" . , ,
.

.
. 8.15,
.
RQM, ,
. ,
, .
 

.
8237 Intel, .

.
, .
,
. ,
, .
 
,
. . 8.21 ,
. . 2
. 1 3 -
-, 0
- .
0 ,
, , .
 
:
. ,
. ,
.
,
, .
,
.
 
. 8.21 BUFFER - .
BUFFER .
BUFFER ( 16)
CS, .
16 2.
4 "".
8237
16- . IBM PC
, .
, 1, 2 3.
4 ,
AL
.

Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:06:09
. 8.21 Page 1-1
 
PAGE ,132
TITLE . 8.21
 
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
 
= 0000 DMA EQU 0 ; DMA
0000 CODE SEGMENT
ASSUME CS:CODE
0000 DMA_SET PROC FAR
0000 1E PUSH DS ;
0001 2B C0 SUB AX, AX
0003 50 PUSH AX
 
0004 B0 46 MOV AL, 46H ; DMA
0006 E6 0B OUT DMA+11, AL ;
0008 E6 0C OUT DMA+12, AL
000A 8C C8 MOV AX, CS ;
000C B1 04 MOV CL, 4
000E D3 C0 ROL AX, CL ; 16
0010 8A E8 MOV CH, AL ; 4 CH
0012 24 F0 AND AL, 0F0H ;
0014 05 0032 R ADD AX, offset BUFFER ;
0017 80 D5 00 ADC CH, 0
001A E6 04 OUT DMA+4, AL ;
001C 8A C4 MOV AL, AH
001E E6 04 OUT DMA+4, AL ;
0020 8A C5 MOV AL, CH
0022 E6 81 OUT 081H, AL ;
 
0024 B8 01FF MOV AX, 511 ;
0027 E6 05 OUT DMA+5, AL ;
0029 8A C4 MOV AL, AH
002B E6 05 OUT DMA+5, AL ;
002D B0 02 MOV AL, 2 ; 2
002F E6 0A OUT DMA+10, AL
0031 CB RET
0032 DMA_SET ENDP
0032 0200[ BUFFER DB 512 DUP (?) ;
??
]
0232 CODE ENDS
END
 
. 8.21

. ,
2,
.
, ,
. , -
2.
.
 

.
, .
- , ""
, "" .

BIOS .