.


:




:

































 

 

 

 


. (Interrupt)




(Interrupt) . .

x86 ( ) (exception), , . int; . 256 , -, .

. , , x86.

, , . , ().

, . ( iret retf), ( ret 2). (far) á , .

, TSR (Terminate-and-Stay-Resident) , , , . , .

, / .

:

, ( );

, ;

, ;

, ;

, , .

().

1. .

New_Handler PROC FAR

push ;

;

pop ;

iret;

New_Handler ENDP

2. ( ) .

New_Handler PROC FAR

push ;

;

pop ;

jmp dword ptr cs:old_handler_off;

New_Handler ENDP

3. , (, )

New_Handler PROC FAR

push ;

;

pop ;

pushf;

call dword ptr cs:old_handler_off;

iret;

New_Handler ENDP

4. , , , .

New_Handler PROC FAR

push ;

;

pop ;

pushf;

call dword ptr cs:old_handler_off;

push

;

pop

iret;

New_Handler ENDP

, . , , , -, call far jmp far . ó :

pushf

push <segment_to_jmp>

push <offset_to_jmp>

retf

Ÿ jmp far, , . , , . : , , , , . call far.

, . .

mov al, 20h

out 20h, al

, , .

IF. , . , ( ret 2), FLAGS .

MS-DOS int 21h , .

AH = 25h . : AL , DS:DX .

AH = 35h . : AL . : ES:BX .

AH = 31h . : AL , DX ( ).

, , .


;

Start:

jmp Init

;

old_handler_off DW?

old_handler_seg DW?

;

New_Handler PROC FAR

call dword ptr cs:old_handler_off

iret

New_Handler ENDP

;

;

Init:

;

;

mov ah, 35h

mov al, <_>

int 21h

mov cs:old_handler_off, bx

mov cs:old_handler_seg, es

;

mov ah, 25h

mov al, <_>

mov dx, seg New_Handler

mov ds, dx

lea dx, New_Handler

int 21h

;

;

; ( TSR)

mov ax, 3100h

mov dx, offset Init

add dx, 0Fh

shr dx, 1

shr dx, 1

shr dx, 1

shr dx, 1

int 21h

END Init

Start: jmp END . , . , COM ( TINY) , . COM- ORG 100h PSP.

. , - , , . . MS‑DOS , ( ), .

: , , . . , , . , . , , . : , , , . .

, , , .

MS-DOS , . , . .

1. .

2. .

3. .

4. BIOS DOS.

5. () .

6. .

7. .

8. .

9. , .

10. .

4.3.1. , ( a) ( b).

 

4.3.2. , .

 

4.3.3. , .

 

4.3.4. , . , 1 11.

 

4.3.5. , .

 

4.3.6. , ( ).

 

4.3.7. , summa.

 

4.3.8. , .

 

4.3.9. , .

 

4.3.10. , (, ) ( go).

 

4.3.11. 21h , 09h ( ).

 

4.3.12. 21h , 09h , .

 

4.3.13. 21h , 09h .

 

4.3.14. 21h , 0Ah .

 

4.3.15. ( ).

( ) . . . .

 

16. ( ).

, BIOS DOS, , .

 

5

:

1) , ;

2) ;

3) .





:


: 2016-11-12; !; : 394 |


:

:

, .
==> ...

1448 - | 1386 -


© 2015-2024 lektsii.org - -

: 0.026 .