Продвижение сайта стоимость самая доступная.
Лучшие книги интернета
Материалы предоставлены только для просмотра. Любое использование материалов в коммерческих целях запрещено

63Робер Журден



    ZSEG SEGMENT
    ZSEG ENDS
    ;-в сегменте данных
    OVERLAY_SEG DW ?
    OVERLAY_OFFSET DW ? ;смещение оверлея
    CODE_SEG DW ? ;сегмент оверлея - должен
    PATH DB 'A:OVERLAY.EXE' ;следовать за смещением
    0BLOCK DD 0 ;4-байтный блок параметров
    ;-освобождаем память
    MOV CODE_SEG,CS ;создаем копию CS
    MOV AX,ES ;копируем значение сегмента PSP
    MOV BX,ZSEG ;адрес сегмента конца программы
    SUB BX,AX ;вычисляем разность
    MOV AH,4AH ;номер функции SETBLOCK
    INT 21H ;освобождаем память
    JC SETBLK_ERR ;флаг переноса говорит об ошибке
    ;-отводим память для оверлея
    MOV BX,100H ;отводим для оверлея 1000H байт
    MOV AH,48H ;функция отведения памяти
    INT 21H ;теперь AX:0 указывает на блок
    JC ALLOCATION_ERR ;флаг переноса говорит об ошибке
    MOV OVERLAY_SEG,AX ;запасаем адрес сегмента оверлея
    ;-вычисление смещения оверлея в кодовом сегменте
    MOV AX,CODE_SEG ;вычитаем значение сегмента оверлея
    MOV BX,OVERLAY_SEG ;из значения сегмента кода
    SUB BX,AX ;BX содержит число параграфов
    MOV CL,4 ;сдвигаем это число на 4 бита влево

Предыдущая страница    63    Следующая страница




1470594787