"Роберт Джордайн. Справочное пособие программиста - 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 DS,AX
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, Вы