Лучшие вопросы
Таймлайн
Чат
Перспективы

Program Segment Prefix

Из Википедии, свободной энциклопедии

Remove ads

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

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

Подробнее Offset (Смещение), Size (Размер) ...

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

Подробнее Offset (Смещение), Size (Размер) ...

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

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

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

org   100h

; int 21h подфункция 9 требует '$' для завершения строки
xor   bx, bx
mov   bl, [80h]
mov   byte [bx + 81h], '$'

; вывод строки
mov   ah, 9
mov   dx, 81h
int   21h

; завершение
mov   ax, 4C00h
int   21h
Remove ads

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads