Когда и кем создается PSP (Program Segment Prefix)?

Рейтинг: 1Ответов: 1Опубликовано: 01.03.2015

Когда и кем (программа) создается PSP? Посмотрел книгу Финогенова, там написано, что создается "системой", но данная формулировка ничего не прояснила. И еще вопрос касаемо наличия этого самого PSP в файлах СОМ и ЕХЕ. PSP создается после загрузки в память или в файле ЕХЕ все-таки он есть?

Ответы

▲ 1Принят

@azaznioo, буквально как написано у Финогенова - блок PSP создается операционной системой DOS при загрузке исполняемого файла в память - для этого на ассемблере при создании COM файла и выполняется команда org 100h - чтобы система эти 100h (256) байт заполнила PSP, а дальше уже загрузилась сама программа.

Касательно наличия этого блока в EXE - он создается, но находится не непосредственно перед кодом/данными программы, а совершенно в другом месте. Адрес его сегмента при запуске программы лежит в ds, а смещение можно получить с помощью функции 62h прерывания 21h, результат будет находиться в регистре bx.

Статья на Википедии.