Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 165 166 167 168 169 170 171  172 173 174 175 176 177 178 ... 198
         ние  памятью),  то общей схемы работы с ними быть не может,  пос-
         кольку они часто  меняются  в  зависимости  от  среды  аппаратных
         средств, для которой предназначена именно эта реализация операци-
         онной системы MS-DOS. Именно этот случай имеет место с персональ-
         ным компьютером фирмы "ИБМ" IBM PC и совместимыми с ним компьюте-
         рами.  Системы,  имеющие коренным образом отличные  от  указанной
         архитектуры  аппаратных средств,  имеют и другие схемы управления
         памятью,  чем в реализациях операционной системы MS-DOS.  Даже  в
         таких, казалось бы, "стандартных" механизмах, как прерывания, су-
         ществуют коренные различия в их работе.

                                      - 13-2 -
              Следовательно, при  разработке  прикладных программ програм-
         мисту необходимо быть знакомым с особенностями используемой  вер-
         сии.  Знание  различий между разными версиями персональных компь-
         ютеров  особенно  важно  в   тех   случаях,   когда   программист
         разрабатывает  программу с целью ее широкого применения на разных
         вычислительных средствах.  Следует помнить, что существуют разные
         версии  операционной системы MS-DOS,  зависящие от конкретной вы-
         числительной машины, и что существует множество вычислительных ма-
         шин с разными архитектурами аппаратных средств и разными реализа-
         циями операционной системы MS-DOS.  Простое следование  указаниям
         технического  руководства  по  операционной  системе MS-DOS может
         оказаться дезориентирующим,  если  вы  разрабатываете  программу,
         предназначенную для  работы  под  всеми реализациями операционной
         системы MS-DOS.
              Эта глава  не предназначена заменить техническое руководство
         по операционной системе MS-DOS.  Настоящая глава просто представ-
         ляет  собой  обзор различий в версиях операционной системы MS-DOS
         и, следовательно, является дополнением к техническим руководствам
         по всем версиям операционной системы MS-DOS.
              Сведения в этой главе поделены на четыре темы,  для  которых
         представлены  различия между всеми версиями (начиная с версии 1.0
         и кончая версией 4.0).  Там, где авторы сочли нужным, в эту главу
         включена  специальная техническая информация и советы, касающиеся
         предлагаемых  процедур или нежелательных действий,  зависящих  от
         характера разрабатываемой вами прикладной программы.

                        Общие рекомендации по совместимости

              Разные уровни  совместимости  программных средств могут быть
         предоставлены программисту.  В большинстве случаев наиболее жела-
         тельно  иметь полную совместимость.  Но поскольку обычно мы любим
         разрабатывать "блестящие" программы,  мы часто используем "новей-
         шие и улучшенные" функции,  имеющиеся в нашей реализации операци-
         онной системы MS-DOS (какие-нибудь  замысловатые  функции  экрана
         или  прерывания специального назначения),  забывая о последствиях
         их несовместимости с другими версиями. Выбор уровня совместимости
         часто  представляет  собой компромиссный вариант.  В тех случаях,
         когда мы намереваемся достичь полной совместимости,  нужно следо-
         вать предложенным ниже правилам.
              1. Ни при каких обстоятельствах не следует  пользоваться  ни
                 одной  из  команд прерываний (команды INT) семейства мак-
                 ропроцессоров 8086, за исключением тех, которые специаль-
                 но предназначены для выполнения прерываний в операционной
                 системе MS-DOS.
              2. Никогда  не следует записывать данные в абсолютные адреса
                 памяти,  расположенные за пределами вашей программы. Пре-
                 доставьте  операционной  системе  MS-DOS  самой управлять
                 процессом использования памяти.
              3. Никогда  не  следует пользоваться командами INT и OUT се-
                 мейства микропроцессоров 8086.
              4. Следует  избегать использования таких команд, выполняемых
                 только микропроцессорами моделей 80188,  80186,  80286  и
                 80386,  как:
                 PUSH   непосредственное (непосредственное проталкивание)
                 PUSHA  (проталкивание  всех  регистров)
                 POPA   (выталкивание всех регистров)
                 SHR>1  (сдвиг вправо при непосредственном значении боль-

                                      - 13-3 -
                        шем 1)
                 SHL>1  (сдвиг влево при непосредственном  значении большем
                        1)
                 IMUL   регистр назначения,  источник, непосредственное зна-
                        чение (умножение непосредственное целого значения со
                        знаком)
                 INS    исходная строка, порт (в строку)
                 OUTS   порт, строка назначения (из строки)
                 ENTER  (процедура ввода)
                 LEAVE  (процедура выхода)
                 BOUND  (обнаружение значений,  выходящих за пределы диапа-
                        зона)

                    Следует избегать использования команды  POP  CS,  пос-
                 кольку  она  работает правильно только в микропроцессорах
                 моделей 8088 и 8086.  Вам следует также знать о существо-
                 вании  всех  других  различий в работе разных процессоров
                 семейства 8086.
                     Следует избегать  использования всех команд микропро-
                 цессоров 80286/80386:
                  LGDT,LIDT, и LLDT (загрузка таблицы дескрипторов)
                  INSB (ввод через порт,  работающий с байтами)
                  OUTSB (вывод строки в  порт,  работающий  с  байтами)
                  ARPL (настройка требуемого привилегированного уровня
                        режим защиты)
                  CLTS (сброс  флага переключения задач - режим защиты)
                  LAR (загрузка прав доступа -  режим  защиты)
                  LMSW  (загрузка слова состояния машины - режим защиты)
                  LSL (загрузка границ сегмента - режим защиты)
                  LTR (загрузка регистра задачи - режим защиты)
                  SGDT, SIDT, и SLDT ( сохранение таблицы дескрипторов -
                        режим защиты)
                 SMSW (сохранение слова состояния машины - режим защиты)
                 STR (сохранение  регистра  задачи  - режим защиты) VERR и
                 VERW (проверка считывания или записи - режим
                        защиты)

                      Следует избегать  использования  команд,  работающих
                 только в микропроцессоре 80386:
                 MOV специальные регистры (перейти к/от специальных регис-
                     тров)
                 MOVSX   (переход с расширением на знак)
                 MOVZX   (переход с расширением на нуль)
                 OUTSW (вывод строки в порт,  работающий со словами)
                 BSF и BSR (сканирование битов)
                 BT,  BTC,  BTR,  и BTS (проверки битов)
                 CWDE (преобразование слова в расширенное двойное)
                 INSW (ввод из порта,  работающего со словами)
                 LFS, LGS, и LSS (загрузка заднего указателя)
                 POPAD (выталкивание всего содержимого в 32-битовые
                         регистры)
                 POPFD (выталкивание флага в 32-битовый регистр флагов)
                 PUSHAD (проталкивание  всех  32-битовых регистров)
                 PUSHFD (проталкивание 32-битового регистра флагов)
                 SET  условие (установка  по  условию)
                 SHLD  и SHRD (сдвиг с удвоенной точностью)


                                      - 13-4 -
              5. Если вычислительная машина,  которую вы  используете  для
                 разработки своей программы, имеет хранящиеся в памяти ПЗУ
                 рутины,  никогда не обращайтесь к ним.  Даже не пытайтесь
                 их считывать.
              6. Для обеспечения полной совместимости никогда не  пользуй-
                 тесь  системным вызовом функций,  поддерживаемым версиями
                 операционной системы MS-DOS только старше версии  1.0. Но
                 поскольку   более   ранние  версии  операционной  системы
                 MS-DOS,  чем версия 2.0 уже не поддерживаются программным
                 обеспечением  фирм  "Майкрософт" и "ИБМ",  задание версии
                 2.0,   как минимально-допустимой,  предоставит вам больше
                 гибкости и удобств.
              7. Во время работы всегда убеждайтесь в том, что информация,
                 выведенная на экран, состоит только из стандартных симво-
                 лов ASCII* (шестнадцатиричные значения от 00 до 7F).  Из-
                 бегайте использования любых других символов,  таких, нап-
                 ример, которые  содержатся в расширенном наборе  символов
                 для персональных  компьютеров фирмы "ИБМ" и совместимых с
                 ними.

              Если во  время  работы вы понимаете,  что вынуждены нарушить
         одно из первых правил памяти,  вы можете нарушить и шестое прави-
         ло, т.к. первым вашим действием будет написание драйвера устройс-
         тва,  предназначенного для работы с какой-то машиной,  которая  в
         противном случае окажется несовместимой. И поскольку устанавлива-
         емые драйверы устройств поддерживаются только версиями операцион-
         ной системы MS-DOS,   начиная с 2.0 и выше,  вам придется исполь-
         зовать  обращение  к  функциям, не  поддерживаемыми  операционной
         системой  MS-DOS версий 1.0 и 1.1.  Если вам необходимо (или если
         вы хотите) нарушить правило 7,  напишите драйвер  устройства  для
         нужной  машины  или "универсальную" программу установки,  которая
         могла бы использоваться для настройки прикладной программы на ра-
         боту с различными терминалами и мониторами.  Программа установки,
         конечно, должна следовать хотя бы правилу 7.
              Поскольку одним из решений вопроса о  несовместимости  может
         быть написание драйвера устройства,  мы обнаруживаем, что уже на-
         рушаем правило 6,  которое предлагает понятие другого уровня сов-
         местимости,  тоже требующего рассмотрения.  Во многих случаях вам
         захочется нарушать правило 6 намеренно,  потому что не все версии
         операционной системы MS-DOS предоставляют возможность пользовать-
         ся именно теми обращениями к функциям,  которые вы хотите или ко-
         торые  вам  нужно  использовать.  Например,  если ваша прикладная
         программа широко пользуется каталогами,  имеющими  структуру  де-
         ревьев, вероятно вы захотите пользоваться вызовами функций, имею-
         щими номера с 39 по 3B. В этом случае уровень совместимости будет
         ограничиваться  возможностями версий 2.0 и выше операционной сис-
         темы MS-DOS и будет исключать  возможность  использования  версий
         1.0  и 1.1.  Аналогичным образом,  если ваша программа должна ис-
         пользовать сетевые функции,  поддерживаемые операционной системой
         MS-DOS  версии 3.1,  эта программа не будет совместима с версиями
         операционной системы MS-DOS, начиная с 1.0 по 2.1.
              Никогда не  забывайте четко указывать ограничения по совмес-
         тимости для вашей программы либо в исходном коде  программы, либо
         в  документации  на  нее  (желательно в обоих местах).  Если ваша
         программа предназначается для коммерческой реализации, убедитесь,
Предыдущая страница Следующая страница
1 ... 165 166 167 168 169 170 171  172 173 174 175 176 177 178 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама