![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Отладка микропроцессорных систем столь же эффективна, как и программа на машинном коде. Однако у ассемблерной программы появляется меньше ошибок из-за того, что она более понятна человеку. 8.1.6. Компиляторы При программировании на машинном коде или на языке АССЕМБЛЕР программист должен помнить массу деталей об используемых в программе переменных и способах их обработки. Любую операцию приходится строить как последовательность простых команд вплоть до получения окончательного результата. Когда разрабатывается сложная программа силами нескольких программистов, то они должны договориться о типах данных, размещении данных в памяти и способах передачи данных между программными сегментами. Оказалось, что при этом людям проще и удобнее программировать на языках высокого уровня, операторы которых напоминают языковые конструкции предложений английского языка. В условиях дефицита времени программу можно написать на языке высокого уровня, например БЕЙСИК или ПАСКАЛЬ, а затем преобразовать в машинный код с помощью программы, называемой компилятором. Процесс трансляции реализуется либо непосредственно, либо через промежуточный язык, который иногда называется псевдокодом. Один из вариантов заключается в том, чтобы преобразовать программу в ассемблерные мнемоники, которые затем ассемблируются в машинный код. Процесс трансляции довольно неэффективен, так как большинство компиляторов каждый оператор языка высокого уровня превращает в фиксированную последовательность ассемблерных мнемоник. Кодирование оказывается общим в том смысле, что оно используется всякий раз, когда один и тот же оператор встречается в программе на исходном языке. В каждом конкретном случае можно получить более эффективную программу, пользуясь непосредственно ассемблерными мнемониками. Типы данных обычно фиксированы, а это, в общем, приводит к распределению для переменной большего объема памяти, чем требуется. В большинстве компиляторов не предусмотрен поиск в программе повторяющихся частей, которые можно оформить в виде подпрограмм. Компилированные программы занимают больше памяти и дольше выполняются, чем эквивалентные про- граммы на языке АССЕМБЛЕР или на машинном коде. Во многих случаях увеличение объема требуемой памяти и времени выполнения не вызывает серьезных проблем, так как оно более чем компенсируется относительной простотой разработки прикладных программ. Часто критичными по времени оказываются только отдельные фрагменты прикладной программы; например, может потребоваться программа задержки с точно заданным временем. В таких ситуациях большинство компиляторов допускают введение ассемблерных фрагментов Поэтому критичные по времени исполнения фрагменты прикладной программы разрешается писать в ассемблерных мнемониках и при необходимости включать их в программу на языке высокого уровня. Нет правил, устанавливающих размер программы, когда оправдано применение языка высокого уровня. Многие программисты предпочитают пользоваться ассемблерными мнемониками для программ почти любого размера из-за простоты доступа к данным, ее размещению в памяти и простоты манипуляций битами в слове. Программирование на языке АССЕМБЛЕР не составляет особых проблем при разработке программ объемом до 8К, но при его превышении следует внимательно проанализировать возможность применения языка высокого уровня. 8.1.7. Мекеджер-памяти Термин менеджер памяти относится к нескольким системным программам, одна из которых при необходимости динамически перераспределяет адресуемое пространство памяти. Менеджер памяти в системе проектирования предназначен для разделения системной памяти между самой системой проектирования и целевой машиной в процессах моделирования и эмуляции. В системе проектирования обычно применяется 8-битный микропроцессор с 16-битной шиной адреса, которая может прямо адресовать любую из 65 536 (64К) ячеек памяти. Чтобы иметь возможность работать с очень большими программами, например с компилятором, система комплектуется памятью максимальной емкости, и поэтому любой выданный ЦП адрес имеет соответствующую ячейку в памяти. Когда к системе проектирования подключается целевая система, которая имеет свою память, то она вступает в конфликт с ячейками памяти системы проектирования. Для разрешения конфликта предусматривается селективное запрещение работы блоков памяти в системе проектирования и разрешение работы целевой системы. Таким образом, общее пространство памяти разделяется между двумя системами. Возможность селективного запрещения работы блоков памяти выполняет двоякую функцию. На этапе моделирования память целевой системы блокируется, и для ее эмуляции используется часть памяти системы проектирования. В результате моделирующие программы выполняются в системе проектирования, и по их реакциям контролируется поведение моделируемой целевой системы. Очевидно, этот подход имеет ограничения, так как реальные аппаратные средства целевой системы не используются, процессор в системе проектирования может отличаться от процессора целевой системы, и между ними возможны различия во временных характеристиках. Однако моделирование полезно как средство отладки программных средств до их выполнения в целевой системе. После отладки прикладных программ в системе проектирования их можно поместить в ЭИПЗУ, которое вставляется в целевую систему, или загрузить в ЗУПВ целевой системы из памяти системы проектирования. Чтобы предотвратить конфликты по адресам в обеих системах, вызывается менеджер памяти, который блокирует в системе проектирования адресное пространство, используемое целевой системой. Системе проектирования все же разрешается обращение к запрещенным ячейкам памяти, но она оперирует только ячейками, принадлежащими целевой системе. В этом случае целевая система выполняет находящиеся в ней программы со своим рабочим быстродействием, а система проектирования получает информацию о целевой системе путем опроса ее памяти. Такой режим работы может вызвать возможные конфликтные ситуации, так как при этом два устройства обращаются к общей памяти. Часто системе проектирования разрешается обращаться к общей памяти только после появления определенных событий, например после контрольного останова в программе. Целевая система при этом переводится в режим останова, и система проектирования обращается к памяти для индикации ее состояния и состояния ЦП после контрольного останова.
ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |