2.4. Префикс программного сегмента

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).

      Когда программа получает управление,  DS:0 и ES:0 указывают

 на началo  ее PSP. Информация,  хранящаяся в PSP,  позволяет Вам

 проанализировать  командную  строку,   узнать  размер  свободной

 памяти, найти системный контекст и т. д.

 

 Смещение  Длина  Содержимое              Комментарий

 ───────────────────────────────────────────────────────────────

                  ┌───────┐ EXE-программы могут передавать сюда

  +0        2     │INT 20h│ управление для своего завершения

                  ├───────┤

  +2        2     │MemTop │ Сегментный адрес вершины блока памяти,

                  ├───┬───┘ выделенного программе

  +4        1             (резерв)

                  ├───┴─────────────────┐ CALL FAR диспетчера

  +5        5     │CALL|смещение|сегмент│ функций DOS (т. е. то же,

                  └────┬────────┬───────┘ что Int 21h)

  +6        2          │ Avail  │ Свободно байтов в сегменте программы

                  ┌────┴────┬───┴────┐(только для .COM-файлов)

  +0Ah      4     │смещение | сегмент│ Адрес завершения. См. Int 22h

                  ├─────────|────────┤

  +0Eh      4     │смещение | сегмент│ Адрес обработки Ctrl-Break.

                  ├─────────|────────┤ См.Int 23h

  +12h      4     │смещение | сегмент│ Адрес обработки фатальных

                  ├─────────┴────────┴──┐ошибок. См. Int 24h

  +16h     16h      используется ДОС  

                  ├─────────┬───────────┘

  +2Ch      2     │ EnvSeg  │ Сегментный адрес системного контекста

                  ├─────────┴───────────┐

  +2Eh     2Eh      используется ДОС  

                  ├─────────────────────┤

  +5Ch     10h           FCB1          │ FCB для 1-го параметра

                  ├─────────────────────┤ командной строки

  +6Ch     14h           FCB2          │ FCB для 2-го параметра

                  ├───┬─────────────────┘ командной строки

  +80h      1     │Len│ Количество символов в командной строке

                  ├───┴─────────────────┐(и начало DTA по умолчанию)

  +81h     7Fh         CmdStr          │ Командная строка

                  └─────────────────────┘

  100h                                    Размер PSP

 

      Примечания:

 

      1.  MemTop содержит  размер памяти,  доступнoй программе, в

 параграфах.

 

      2. При  создании PSP в  него копируются значения  Int 22h -

 Int 24h; ДОС использует эти значения для восстановления векторов

 после завершения  работы программы. Поэтому  программы не должны

 изменять данные в адресах PSP 00h-5Bh.

 

      3. FCB1 и FCB2 заполняются системой  при разборе  командной

 строки и имеют формат неоткрытых  FCB. Помните, что при открытии

 первого  FCB второй  будет испорчен,  т. к. для FCB1 отведено 16

 байтов, а размер открытого FCB - 37 байтов.

 

      4. CmdStr  содержит  строку команд,  полученную от  DOS, за

 исключением символов переопределения ввода-вывода.

 

      См. также: Функции управления процессами

                 Прерывания ДОС

                 Управляющий блок файла (FCB).

Вы находитесь в разделе: 

Добавить коментарий