Assembler - язык неограниченных возможностей


Загрузка и выполнение программ - часть 3



Функция DOS 4Bh — Загрузить и выполнить программу

Ввод: АН = 4Bh

AL = 00h — загрузить и выполнить

AL = 01h — загрузить и не выполнять

DS:DX — адрес ASCIZ-строки с полным именем программы

ES:BX — адрес блока параметров ЕРВ:

    +00h: слово — сегментный адрес окружения, которое будет скопировано для нового процесса (или 0, если используется текущее окружение)

    +02h: 4 байта — адрес командной строки для нового процесса

    +06h: 4 байта — адрес первого FCB для нового процесса

    +0Ah: 4 байта — адрес второго FCB для нового процесса

    +0Eh: 4 байта — здесь будет записан SS:SP нового процесса после его завершения (только для AL = 01)

    +12h: 4 байта — здесь будет записан CS:IP (точка входа) нового процесса после его завершения (только для AL = 01)

AL = 03h — загрузить как оверлей

DS:DX — адрес ASCIZ-строки с полным именем программы

ES:BX — адрес блока параметров:

    +00h: слово — сегментный адрес для загрузки оверлея

    +02h: слово — число, которое будет использовано в командах, использующих непосредственные сегментные адреса, — обычно то же самое число, что и в предыдущем поле. 0 для СОМ-файлов

AL = 05h — подготовиться к выполнению (DOS 5.0+)

DS:DX — адрес следующей структуры:

    +00h: слово — 00h

    +02h: слово:

    бит 0 — программа — ЕХЕ
    бит 1 — программа — оверлей

+04h: 4 байта — адрес ASCIZ-строки с именем новой программы

+08h: слово — сегментный адрес PSP новой программы

+0Ah: 4 байта — точка входа новой программы

+0Eh: 4 байта — размер программы, включая PSP

Вывод: CF = 0, если операция выполнена, ВХ и DX модифицируются,
CF = 1, если произошла ошибка, АХ = код ошибки (2 — файл не найден, 5 — доступ к файлу запрещен, 8 — не хватает памяти, 0Ah — неправильное окружение, 0Bh — неправильный формат)
<


Начало  Назад  Вперед