Assembler - язык неограниченных возможностей


Пример программы - часть 3


; значения селекторов selectors: Sel_flatDS dw ? Sel_flatCS dw ?

; стек для нашей 32-битной программы DPMI_data: ; и временная область данных DPMI одновременно db 16384 dup (?) PM_stack_bottom: PM_seg ends

; стек 16-битной программы, который использует DPMI-сервер при переключении режимов ; Windows 95 требует 16 байт ; CWSDPMI требует 32 байта ; QDPMI требует 96 байт ; мы выберем по максимуму RM_stack segment byte stack "stack" use16 db 96 dup (?) RM_stack ends end RM_entry ; точка входа для DOS - RM_entry

Несмотря на то что DPMI разрешает пользоваться многими прерываниями напрямую и всеми через функцию 0300h, он все равно требует некоторой подготовки для переключения режимов. Кроме того, программа, использующая DPMI для переключения режимов, должна сочетать в себе 16-битный и 32-битный сегменты, что неудобно с точки зрения практического программирования. На самом деле для написания приложений, идущих в защищенном режиме под DOS, никто не применяет переключение режимов вообще — это делают специальные программы, называющиеся расширителями DOS.





Начало  Назад  Вперед