Низкоуровневое програмирование Главная - Реальный режим - Прерывания DOS - INT 2Eh: Выполнить команду DOS.

INT 2Eh: Выполнить команду DOS (НЕТ В ДОКУМЕНТАЦИИ).


Вход:
DS:SI = адрес выполняемой команды DOS в форме "Lstring" (должна быть доступная память для загрузки программы)

Выход:
SS,SP = разрушены

Это НЕДОКУМЕНТИРОВАННОЕ прерывание выполняет команду DOS, как если бы эта команда была введена в ответ на подсказку DOS.
При входе DS:SI указывает на строку, в первом байте которой содержится длина строки, а в последнем байте - 0Dh (символ 0Dh не входит в подсчет длины).

    DB 0Fh, "set PROMPT=$p$g", 0Dh; ** строка длиной 0fH байт **

Этот пример иллюстрирует основное использование этого сервиса -- он позволяет устанавливать значения в главном (корневом) окружении DOS. В любых других случаях предпочтительнее функция DOS 4bH (например, выполнить COMMAND.COM, передав как параметр строку "/c dos_cmd"), поскольку она полностью документирована.

Примечание:
Не забывайте сначала сжать текущий MCB посредством функции DOS 4Ah. Оставляйте МНОГО памяти для стека -- DOS буквально пожирает стек. SS и SP должны быть сохранены перед вызовом и восстановлены после. Этот сервис покрыт тайной. Он явно не используется ни одной программой DOS, включая COMMAND.COM. Из-за этой загадочности мы рекомендуем не использовать его.