"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора SUB BX,AX ;вычислить размер программы
MOV AH,4AH ;номер функции INT 21H ;перераспределение ;---указываем на блок параметров MOV AX,SEG PARAMETERS ;в ES - сегмент MOV ES,AX MOV BX,OFFSET PARAMETERS ;в BX - смещение ;---сохранить копии SS и SP MOV KEEP_SS,SS ;сохраняем SS MOV KEEP_SP,SP ;сохраняем SP ;---указываем на строку имени файла MOV DX,OFFSET FILENAME ;смещение - в DX MOV AX,SEG FILENAME ;сегмент - в DS MOV DS,AX ;---загрузка программы MOV AH,4BH ;функция EXEC MOV AL,0 ;выбираем "загрузку и запуск" INT 21H ;запускаем задачу ;---впоследствии, восстанавливаем регистры MOV AX,DSEG ;восстанавливаем DS MOV SS,KEEP_SS ;восстанавливаем SS MOV SP,KEEP_SP ;восстанавливаем SP ;---в конце программы создаем фиктивный сегмент ZSEG SEGMENT ;см. [1.3.1] ZSEG ENDS .h3 1.3.3 Использование команд интерфейса с пользователем из программы. ----------------------------------------------------------------------- Программа может иметь в своем распоряжении полный набор команд интерфейса с пользователем DOS, таких как DIR или CHKDSK. Когда эти команды используются из программы, загружается и запускается вторая копию COMMAND.COM. Хотя такой подход может сэкономить много усилий при программировании, для его успешной реализации требуется достаточное количество памяти для этой второй копии и Ваша программа может попасть в ловушку если памяти недостаточно. Высокий уровень. Бейсик 3.0 может загрузить вторую копию COMMAND.COM с помощью оператора SHELL. SHELL обсуждается в [1.3.2]. COMMAND.COM загру- жается когда не указано имя файла, поэтому вводя просто SHELL, Вы |
|
|