.


:




:

































 

 

 

 


IBM PC




IBM PC 58059. 8 , , 16 ( IRQ0 ( ). IRQ0 IRQ7 - 8H - 0FH, IRQ8 - IRQ15 70H - 77H.

. 6). IBM PC (, ..), - ( ..).

IRQ0 ( ). IRQ0 IRQ7 - 8H - 0FH, IRQ8 - IRQ15 70H - 77H.

. 6

(IRQ)
 
 
 
  COM1
  COM2
 
 
  LPT1
  CMOS
  -
10-12
 
 
 

- : 20 21.

. 1. Turbo Pascal :

Begin

{ .3,4}

Repeat

Repeat

Until Keypressed; { }

Ch:=ReadKey; { }

Case Ch of

...{ }

End; {Case}

Until Ch=E; { E}

{ .3,4}

End.

Crt.

. 2. Turbo Pascal MS DOS. DOS . , , . , ( ) . Dos - :

Type

Registers=record

Case integer of

0: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Word); {16- . }

1: (AL,AH,BL,BH,CL,CH,DL,DH); {8- . }

End; {Case}

End;

16- 8- .

DOS - :

Intr - :

Intr(< : Byte>,<: Registers>);

MSDOS - 33 ($21):

MSDOS(<: Registers>).

$21 DOS (85 ). MSDOS Intr $21.

:

Uses dos;

Var r: Registers;

Begin

r.AH:=$30; { AH $21}

MSDOS(r); { $21} {Intr($21,r)}

Writeln ( DOS:, r.AL,.,r.AH);

End.

.3. :

;

Pointer;

, ;

, .2 ;

.

- . Interrupt (), :

Procedure ProcInt (Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:Word); Interrupt;

Begin

{ }

End;

Interrupt . , .

. - 12. - , .

. Dos .

GetIntVec - :

GetIntVec (< : Byte>,< : Pointer>);

SetIntVec - :

SetIntVec (< : Byte>,< : Pointer>;

Addr, :

SetIntVec($61,Addr(ProcInt));

.4. , 18,2 . , .. .

BIOS $1C, , . $1C , . , (. .3.).

( ) -. / . 0,055. , 1, , 18 . , ( ), ( , ..).

.5. , .. . Pascal Mem, MemW MemL. Mem Byte; MemW Word; MemL Longint. , . Word; , . . :

S:= Mem [$0000:$FFFF];

MemW [$4000:$0001]:=3578;

, , Addr, Pointer. Pointer . Pointer Seg(X) Ofs(X ), Word (, ).

1. ?

2. ?

3. ?

4. TP7.0, MSDOS.

5. .

6. .

7. ?

8. 8086 ?

9. 8086 ?

10. ?

11. IBM PC?

2





:


: 2016-11-24; !; : 426 |


:

:

.
==> ...

1452 - | 1432 -


© 2015-2024 lektsii.org - -

: 0.012 .