Program Segment Prefix

Program Segment Prefix

Program Segment Prefix (рус. Префикс программного сегмента, PSP) — структура данных, которая используется в операционных системах семейства DOS и CP/M для сохранения состояния компьютерных программ.

PSP в DOS имеет следующую структуру:

Offset (Смещение) Size (Размер) Contents (Содержание)
00-01 2 байта (код) Выход CP/M (всегда содержит INT 20)
02-03 машинное слово (2 байта) Объем оперативной памяти в пунктах
04 байт Зарезервировано
05-09 5 байтов (код) Дальний вызов совместимости кода CP/M в DOS
0A-0D dword (4 байта) Завершить адреса предыдущей программы (устаревший INT 22)
0E-11 dword Прервать адреса предыдущей программы (устаревший INT 23)
12-15 dword Адрес критической ошибки предыдущей программы (устаревший INT 24)
16-17 машинное слово Сегмент PSP вызывающего процесса (как правило, command.com - внутренний)
18-2B 20 байт en:Job File Table (внутренняя)
2C-2D машинное слово Сегмент переменных среды
2E-31 dword SS:SP на входе к последнему вызову INT 21 (внутренний)
32-33 машинное слово максимальное количество открытых файлов (внутренний - см. ниже)
34-37 dword Адрес ручных записей (внутренний - см. ниже)
38-4F 24 байта Зарезервировано
50-52 3 байта (код) Для вызова к DOS (всегда содержит INT 21 + RETF)
53-5B 9 байт Зарезервировано
5C-6B 16 байт Закрытый уровень FCB 1
6C-7F 20 байт Закрытый уровень FCB (перезаписан, если FCB 1 открыт)
80 1 байт Количество символов в командной строке
81-FF 127 байт Командная строка (завершается 0Dh)

PSP (Zero-Page или Base Page) в CP/M-86

Offset (Смещение) Size (Размер) Contents (Содержание)
00-02 3 байта Длина кодовой группы в байтах
03-04 машинное слово Адрес сегмента кодовой группы
05 Байт Флаг модели 8080 - установлен, если программа в одном сегменте
06-08 машинное слово Длина группы данных в байтах
09-0A машинное слово Адрес сегмента группы данных
0B Байт Зарезервировано
0C-11 Дескриптор дополнительной группы - формат как для группы данных
12-17 Дескриптор группы стека - формат как для группы данных
18-1D Дескриптор группы X1 - формат как для группы данных
1E-23 Дескриптор группы X2 - формат как для группы данных
24-29 Дескриптор группы X3 - формат как для группы данных
2A-2F Дескриптор группы X4 - формат как для группы данных
30-4F Зарезервировано
50 Байт Диск, с какого была загружена программа (CP/M 3)
51-52 Word Address of the password for the first FCB (CP/M 3)
53 Byte Length of the password for the first FCB (CP/M 3)
54-55 Word Address of the password for the second FCB (CP/M 3)
56 Byte Length of the password for the second FCB (CP/M 3)
57-5B Bytes Reserved
5C-6B Default FCB 1
6C-7F Default FCB 2 (overwritten if FCB 1 is opened)
80 Byte Количество символов в командной строке
81-FF Bytes Командная строка

PSP наиболее часто используется для получения аргументов из командной строки программой под DOS, например, команда "foo.exe -a -f" исполнит (запустит) файл foo.exe с аргументами '-a' и '-f'.

Сегментный адрес PSP будет занесён в регистр DS в момент исполнения программы. Также он может быть позже определён через использование прерывания №21 подфункции №62. Это прерывание возвратит адрес PSP в регистр BX.[1]

Кроме этого, в .COM-программах можно обратится непосредственно к PSP только при помощи смещений в списке выше. 00h указывает на начало PSP, FFh указывает на конец, и т.д. Например, следующий код отображает аргументы командной строки:

org   100h

; int 21h subfunction 9 requires '$' to terminate string
xor   bx, bx
mov   bl, [80h]
mov   byte [bx + 81h], '$'

; print the string
mov   ah, 9
mov   dx, 81h
int   21h

; exit
mov   ax, 4C00h
int   21h

Примечания

  1. INT 21,62 - Get PSP address (DOS 3.x). Архивировано из первоисточника 27 апреля 2012.

Внешние ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Program Segment Prefix" в других словарях:

  • Program Segment Prefix — The Program Segment Prefix (PSP) is a data structure used in DOS systems to store the state of a program.It has the following structure:The PSP is most often used to get the command line arguments of a DOS program, for example the command foo.exe …   Wikipedia

  • Program Segment Prefix — Als Programmsegmentpräfix (engl. Program Segment Prefix, PSP) bezeichnet man die ersten 256 Byte eines von MS DOS geladenen Programmes. Das PSP ist nicht in den ausführbaren Exe oder Com Dateien enthalten, sondern wird beim Laden des Programmes… …   Deutsch Wikipedia

  • Préfixe de Segment de Programme — Le Préfixe de Segment de Programme (Program Segment Prefix, ou PSP) est une structure de données utilisées par les systèmes DOS. Elle est construite pour chaque processus créé (.com ou .exe), et fait 256 octets de données spéciales. Pour les… …   Wikipédia en Français

  • Zero page (CP/M) — The Zero Page (or Base Page) is a data structure used in CP/M systems for programs to communicate with the operating system. In 8 bit CP/M versions it is located in the first 256 bytes of memory, hence its name.The equivalent structure in MS DOS… …   Wikipedia

  • Com-Datei — Eine Com Datei ist eine ausführbare Datei in CP/M, MS DOS und zu MS DOS kompatiblen Betriebssystemen. Der Name leitet sich aus der Dateinamenserweiterung „.com“ ab, die für das englische Wort command („Befehl“) steht. Viele Shell Werkzeuge wie… …   Deutsch Wikipedia

  • Psp — steht für: verschiedene Parteien Pacifistisch Socialistische Partij, eine ehemalige niederländische Partei Partido Socialista Puertorriqueño, eine ehemalige puerto ricanische Partei Partido Socialista del Perú, eine sozialistische Partei aus Peru …   Deutsch Wikipedia

  • PSP — comp. abbr. Paper Tape Space comp. abbr. Programmable Signal Processor engin. abbr. Planned Schedule Performance telecom. abbr. Planned Schedule Performance abbr. Personal Software Products (IBM) abbr. Program Segment Prefix (DOS) abbr.… …   United dictionary of abbreviations and acronyms

  • MS-DOS — This article is about Microsoft MS DOS. For other compatible operating systems of the DOS family, see DOS. MS DOS An example of MS DOS s command line interface, this one showing that the current directory is the root of drive C …   Wikipedia

  • Windows 95 — Part of the Microsoft Windows family …   Wikipedia

  • SoftRAM — Infobox Software name = SoftRAM and SoftRAM95 caption = Packaging claimed that SoftRAM could double your memory developer = Syncronys latest release version = 1995 latest release date = August 1995 operating system = Microsoft Windows genre =… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»