.


:




:

































 

 

 

 


BIOS . 4- , BIOS 0000: 046Ch - . 24 , 0000: 0470h 1.

䳿, - . 2 , . 0000: 0440h , . . 0, .

, - INT 1Ch. ϳ INT 1Ch IRET, INT 1Ch . - 䳿.

, INT 1Ch INT 8h , INT 1Ch . , .

INT 1Ch IRET. INT 8h, . , , :


mov al, 20h
out 20h, al

Intel 8253 ( ' IBM PC IBM PC / XT) 8254 ( ' IBM PC / AT IBM PS / 2), . 8254.

8253 8254, (

. :

0, 4 - .

1, 5 - .

2, 3 -

CR CE CLOCK, GATE 1. CE CLOCK. , GATE 0. GATE 1, . CR, .

򳺿 . GATE CR CE, .

CR CE . OUT ' GATE 1. ().

' .
0

0 ( , ). 3 18,2 . INT 8h.
1

1 ' '. OUT DMA, '. , ' '.
2

2 ' , .

?

, 0 , ( 18,2 ). ϳ .

2, , , . .

/ :

40h - 0;

41h - 1;

42h - 2;

43h -
#include <stdio.h>

#include <conio.h>

 

int main()

{

unsigned i;

 

printf("\n\n 0\n-------\n");

 

outp(0x43, 0xe2);

 

printf("\n : %02.2X",

inp(0x40));

 

outp(0x43, 0x00);

 

i = inp(0x40);

i = (inp(0x40) << 8) + i;

 

printf("\n : %04.4X",i);

 

printf("\n\n 1\n-------\n");

outp(0x43, 0xe4);

printf("\: %02.2X",inp(0x41));

outp(0x43, 0x40);

i = inp(0x41);

i = (inp(0x41) << 8) + i;

printf("\n : %04.4X",i);

 

printf("\n\n 2\n-------\n");

outp(0x43, 0xe8);

printf("\: %02.2X",inp(0x42));

outp(0x43, 0x80);

i = inp(0x42);

i = (inp(0x42) << 8) + i;

printf("\n: %04.4X",i);

return 0;

 

 

 

 

 



<== | ==>
. | ?
:


: 2016-12-31; !; : 325 |


:

:

, ; , .
==> ...

1868 - | 1644 -


© 2015-2024 lektsii.org - -

: 0.018 .