Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Абрамову.doc
Скачиваний:
20
Добавлен:
07.06.2015
Размер:
676.86 Кб
Скачать

2.5 Префикс программного сегмента (psp)

Все программы для рассматриваемой системы работают под управлением DOS. В связи с этим при вызове командной строкой программы пользователя, DOS выполняет следующие действия:

1) создает копию блока "окружения среды";

2) резервирует область оперативной памяти ЭВМ для программы пользователя;

3) создает префикс программного сегмента (РSР);

4) загружает программу пользователя (программа загружается сразу за PSP);

5) производит настройку программы пользователя (если это необходимо) и сегментных регистров на область оперативной памяти, где расположена программа пользователя;

6) передает управление программе пользователя.

Наибольший интерес для прикладных программ представляет PSP. Расположение программы пользователя и PSP в оперативной памяти ЭВМ показано на рис.6.

Префикс программного сегмента это особая область памяти, предназначенная для связи программы пользователя с "родительским" процессом, т.е. работой всей системы под управлением DOS. Размер этой области равен 256 байт и имеет строгий формат. Из них первые 128 байт используются для непосредственной связи с головной программой и в дан- ном методическом руководстве рассматриваться не будут. Следующие 128 байт используются для размещения некоторых параметров, переданных программе пользователя из командной строки. Эти параметры можно использовать во время работы прикладной программы.

Рис.6. Расположение PSP в оперативной памяти ЭВМ

Например, прикладная программа была запущена из командной строки:

primer.exe t s / F:5 пример

В PSP эта строка будет расположена так, как приведено на рис.7.

Рис. 7. Расположение строки t s / F:5 пример в PSP

Отметим, что при запуске программы DOS производит настройку сегментных регистров по следующему правилу ЕХЕ программы:

в CS-загружается сегментный адрес запускаемого сегмента кода программы пользователя;

в SS-загружается сегментный адрес запускаемого сегмента стека программы пользователя;

в DS и ES- загружается сегментный адрес PSP.

По адресу хх080 расположена длина переданной программе строки (18 байт), а начиная с адреса хх081 расположена строка параметров, включая первый пробел (‘ ’), расположенный после названия программы. Необходимо отметить, что строка параметров заканчивается символами возврата каретки (0DH) и перевода строки (ОАН), необходимых для того, чтобы следующая выведенная на экран компьютера строка начиналась с новой строки. Признаком конца строки является Zero-бaйт (00H по адресу ххО93). Вся оставшаяся часть PSP, включая байт по адресу xxOFF, как правило, будет заполнена DOSom Zero-байтом. Таким образом, через PSP можно передать программе первые 124 байта из командной строки, следующие за названием программы. Также отметим, что копия параметров из командной строки в другую область памяти будет полной, включая знаки препинания, знаки псевдографики и национального алфавита.

2.6 Арифметические команды

Система команд рассматриваемого микропроцессора включает в себя команды для выполнения арифметических операций над двоичными, упакованными и неупакованными двоично-десятичными числами (BCD – числами). При этом над двоичными и неупакованными BCD – числами можно выполнять все четыре арифметические операции, а с упакованными BCD – числами только сложение и вычитание. Так как неупакованные BCD – числа удобно вводить и выводить в вычислительную систему, а сами арифметические операции проще выполнять в двоичной системе счисления, то чаще всего применяется алгоритм их преобразования:

1. числа вводятся в ЭВМ в неупакованном BCD – формате;

1. неупакованный BCD – формат преобразуется в двоичный формат;

2. в двоичном формате выполняются операции, заданные в программе;

3, результат, представленный в двоичном формате преобразуется в неупакованный BCD – формат и выводится из ЭВМ.