ВУЗ:
Составители:
Рубрика:
- 32 -
ваться интерпретатором командных файлов (см. функцию 31). После
инициализации программа заносит в DX адрес последнего используе-
мого слова в текущем сегменте плюс один и выполняет команду INT
27. После этого DOS считает эту программу своей частью и не зати-
рает ее, загружая другие программы. Этот прием полезен для заг-
рузки таких программ, как пользовательские программы обработки
прерываний, которые должны постоянно находиться в памяти.
Но, это прерывание не может использоваться в программах типа
.EXE, так как они загружаются в старшие адреса памяти; оно восс-
танавливает значения векторов прерываний реакции на особые ситуа-
ции (прерывания 22, 23 и 24) точно так же, как это делает преры-
вание 20. Поэтому его нельзя использовать для задания резидентных
программ реакции на ошибку или Ctrl-Break. Максимальный размер
резидентой задачи для этого прерывания - 64К байт.
Пpимеp pешения задания
;Пpимеp pазpаботки пpеpывания со свободным номеpом
;пpеpывания
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP ('STACK ')
STACK ENDS
;-ДАННЫЕ
DATA SEGMENT PARA PUBLIC 'DATA'
KEEP_CS DW 0 ;СЕГМЕНТ ЗАМЕНЯЕМОГО ПРЕРЫВАНИЯ
KEEP_IP DW 0 ;СМЕЩЕНИЕ ЗАМЕНЯЕМОГО ПРЕРЫВАНИЯ
MESSAGE1 DB 'Сумма вычислена $'
MESSAGE2 DB 'Пеpеполнение $'
ARRAY DW 0,2,23,67,1000,-12,-76,45,37,89 ;Исходный массив
DATA ENDS
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG,ES:CSEG,DS:DATA,SS:STACK
;-pезидентная п pоцедуpа
BEGIN: PUSH DS
SUB AX,AX
PUSH AX
JMP set_up
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »