|
|
|
|
Выполнение вызова функций в режиме совместимости
Второй способ выполнения обращения к функциям, предоставляемый операционной системой MS-DOS для обеспечения совместимости с
другими операционными системами, конкретно предназначен для операционных систем CP/M-80 и CP/M-86. Этот способ в действительности не обеспечивает возможность запуска программ операционной системы CP/M под управлением операционной системы MS-DOS. Он только
упрощает и облегчает преобразование программ операционной системы
CP/M в программы операционной системы MS-DOS тем, что при этом не
всегда требуется переопределение процедуры обращения к функциям.
Но, однако, Вам, вероятно, придется менять многие номера функций.
Данный способ пригоден только для функций с номерами от 0 до 24h
операционной системы MS-DOS. Возможно, Вы встретитесь с трудностями при использовании регистров в некоторых обращениях к функциям, поэтому следует избегать использования этого метода, если
только вы не собираетесь тестировать вашу программу до ее полного
преобразования. Операционная система MS-DOS требует, чтобы обращение к функциям с использованием этого второго способа выполнялось следующим образом:
1. Сохранение содержимого регистров AX, BX, CX и DХ путем
выталкивания их значений в стек.
2. Помещение номера функции в регистр CL. (Могут использоваться только номера функций, начиная с 0 и до 24h).
3. Помещение других данных в регистры, указанные для выполнения заданной функции, если это нужно.
4. Произвести внутрисегментное обращение к адресу 5 внутри
текущего сегмента программы. Этот адрес содержит длинное
обращение к диспетчеру функций операционной системы
MS-DOS.
5. В зависимости от выполняемой функции, переменные данные
возвращаются в указанных регистрах для возможности их
дальнейшего считывания и использования в вашей программе.
Некоторые функции ничего не возвращают. Примечание: Эта
процедура всегда стирает содержимое регистра AX. Все остальные регистры ведут себя так же, как и при использовании стандартной процедуры обращения к функциям.
6. Восстановление исходного содержания регистров.
|
|