Современные технологии создания программного обеспечения



   Factoring-concurrent.nl        

Cамоучитель по Assembler

Микропроцессоры корпорации Intel и персональные компьютеры на их базе прошли не очень длинный во времени, но значительный по существу путь развития, на протяжении которого кардинально изменялись и возможности и даже сами принципы их архитектуры. В то же время, внос в микропроцессор принципиальные изменения, разработчики были вынуждены постоянно иметь в виду необходимость обеспечения совмести мости новых моделей со старыми, чтобы не отпугивать потенциального покупателя перспективой полной замены освоенного или разработанного им программного обеспечения. В результате современные микропроцессоры типа Pentium, обеспечивая такие возможности, как 32-битную адресацию почти неограниченных объемов памяти, многозадачный режим с одновременным выполнением нескольких программ, аппаратных средства защиты операционной системы и прикладных программ друг друга, богатый набор дополнительных эффективных команд и способе адресации, в то же время могут работать (и часто работают) в режиме первых микропроцессоров типа 8086, используя всего лишь 1 мегабайт оперативной памяти, 16-разрядные операнды (т. е. числа в диапазоне до 216 - 1 = 65535) и ограниченный состав команд. Поскольку программирование на языке ассемблера напрямую затрагивает аппаратные возможности микропроцессора, прежде всего следует выяснить, в какой степени программист может использовать новые возможности микропроцессоров в своих программах и какие проблемы программной несовместимости могут при этом возникнуть.

Введение
Реальный и защищенный режимы прежде всего принципиально различаются способом обращения к оперативной памяти компьютера. Метод адресации памяти, используемый в реальном режиме, позволяет адресовать память лишь в пределах 1 Мбайт; в защищенном режиме используется другой механизм (из-за чего, в частности, эти режимы и оказались полностью несовместимыми), позволяющий обращаться к памяти объемом до 4 Гбайт.

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

Взаимодействие оперативной
Взаимодействие оперативной - 2
Взаимодействие оперативной - 3
Распределение адресного пространства
Распределение адресного пространства - 2
Распределение адресного пространства - 3
Распределение адресного пространства - 4
Регистры процессора
Регистры процессора - 2
Регистры процессора - 3

Процесс подготовки и отладки программы
Рассматривая листинг, можно отметить ряд полезных моментов общего характера. Предложения программы с операторами assume, segment, ends, end, как уже отмечалось ранее, не транслируются в какие-либо машинные коды и не находят отражения в памяти. Они нужны лишь для передачи транслятору служебной информации о способе трансляции команд (assume), границах сегментов (segment и end) и строке, на которой следует завершить обработку исходного текста (end).

Процесс подготовки и отладки программы
Процесс подготовки и отладки программы - 2
Процесс подготовки и отладки программы - 3
Процесс подготовки и отладки программы - 4
Процесс подготовки и отладки программы - 5
Процесс подготовки и отладки программы - 6
Процесс подготовки и отладки программы - 7
Процесс подготовки и отладки программы - 8
Представление данных
Представление данных - 2

Организация приложений MS-DOS
Как уже отмечалось выше, язык ассемблера является отражением архитектуры процессора, и изучение языка в сущности означает изучение системы команд и способов адресации, реализуемых процессором. Одна ко любой язык программирования полезен лишь постольку, поскольку на нем можно написать какие-то работоспособные программы. В то же время трудно представить себе реальную программу, которая выполняет чисто логические или вычислительные действия, ничего не вводя и не выводя и не взаимодействуя с другими программами. Однако такие вопросы, как организация выполнимой программы, ее запуск, взаимодействие с разнообразными аппаратными и программными объектами вычислительной системы (клавиатурой, дисками, таймером, памятью, системными драй верами и проч.) и, наконец, завершение являются прерогативой операционной системы.

Организация приложений MS-DOS
Организация приложений MS-DOS - 2
Организация приложений MS-DOS - 3
Организация приложений MS-DOS - 4
Организация приложений MS-DOS - 5
Организация приложений MS-DOS - 6
Организация приложений MS-DOS - 7
Организация приложений MS-DOS - 8
Организация приложений MS-DOS - 9
Организация приложений MS-DOS - 10

Архитектурные особенности
Операционная система MS-DOS, язык ассемблера МП 86 и методы программирования микропроцессоров корпорации Intel разрабатывались применительно к 16-разрядному процессору 8086 и тому режиму, который впоследствии получил название реального. Появление процессора 80386 знаменовало собой начато нового этапа в развитии операционных систем и прикладного программирования - этапа многозадачных графических операционных систем защищенного режима типа Windows и 32-разрядных прикладных программ. При этом, как уже отмечалось во введении, все архитектурные средства 86-го процессора входят в состав любого современного процессора, который, таким образом, можно условно разделить на две части - МП 86 и дополнительные средства, обеспечивающие защищенный режим, 32-разрядную адресацию и прочее.

Архитектурные особенности
Архитектурные особенности - 2
Дополнительные режимы адресации
Дополнительные режимы адресации - 2
Использование 32-разрядных процессоров
Использование 32-разрядных процессоров - 2
Использование 32-разрядных процессоров - 3
Использование 32-разрядных процессоров - 4
Использование 32-разрядных процессоров - 5
Использование 32-разрядных процессоров - 6

Система команд процессоров Intel
В разделах статей, начинающихся с обозначения 386+, описываются отличия действия рассматриваемой команды в современных 32-разрядных процессорах (80386, i486, Pentium). Как правило, эти отличия заключаются в возможности использования не только 8- и 16-разрядных, но и 32-разрядных операндов, а также расширенных режимов адресации памяти. Обычные 16-разрядные программы реального режима вполне могут использовать расширенные регистры процессора (ЕАХ, ЕВХ и проч.), 32-битовые ячейки памяти и варианты команд для их обработки.

Команды предназначены для ввода
INT Программное прерывание
INT Программное прерывание - 2
INT Программное прерывание - 3
MP Безусловный переход
MP Безусловный переход - 2
MP Безусловный переход - 3
MP Безусловный переход - 4
LEAVE Выход из процедуры высокого уровня
Регистр таблицы дескрипторов

Как написать игру для ZX Spectrum на ассемблере

Эта книга адресована в первую очередь тем, кого уже перестал удовлетворять несколько ограниченный и неповоротливый Бейсик и кто мечтает наконец научиться писать программы на ассемблере. Книга рассчитана на достаточно подготовленного читателя, прошедшего «боевое крещение» Бейсиком, а новичкам в программировании мы можем порекомендовать первую книгу из серии «Как написать игру для ZX Spectrum». Надеемся также, что и профессионалы смогут найти здесь для себя некоторые зерна истины.
Как и в предшествующей книге, речь здесь пойдет преимущественно об игровых программах, однако хотим вас предупредить заранее, что ассемблер - штука серьезная и нам не раз придется погружаться в пучины мудреных понятий и терминов. Но со своей стороны мы обещаем сделать эти погружения не слишком головокружительными, смягчив суровую необходимость занимательными примерами.
Возможно, вас несколько смутили только что прочитанные строки, да и раньше вам, быть может, не раз приходилось слышать, мол, писать программы на ассемблере невероятно сложно. Но, право, не так страшен ассемблер, как его малюют, а что касается сложностей, так вспомните свои первые шаги в том же Бейсике.

Загрузочная картинка к игре JUGGERNAUT
Часто только это изображение и называют заставкой, хотя на самом деле это лишь первая ее часть, помогающая игроку морально подготовиться к тяготам предстоящего сражения или лишениям, связанным с поисками сокровищ. Однако в солидных игровых программах заставка чаще всего разбивается на несколько частей, именуемых кадрами. Объясняется это очень просто: перед началом игры на экране должно появиться столь большое количество информации, что впихнуть ее в один кадр практически невозможно.

Меню программы EAGLES NEST
Игровое пространство
Игровое пространство программы DIZZY4
Взаимодействие с играющим
Оценка игровой ситуации
Оценка игровой ситуации в игре GUN FRIGHT
Звуковое сопровождение игры
Машинные коды и ассемблер

Спрайт из игры FIST
Рассмотрим пример вывода спрайта произвольной конфигурации (7.1). Не правда ли, многие узнали в нем одного из персонажей игры FIST. Все дело в том, что этот спрайт как нельзя лучше демонстрирует эффективность предложенной нами процедуры PTBL, поскольку его форма заметно отличается от прямоугольной. Управляющая часть программы получилась довольно короткой

Спрайт-генератор
Спрайт-генератор - 2
Спрайт-генератор - 3
Спрайт-генератор - 4
Спрайт-генератор - 5
Мультипликация
Перемещение спрайта скроллингом окна
Перемещение спрайта скроллингом окна - 2
Перемещение спрайта скроллингом окна - 3
Перемещение спрайта скроллингом окна - 4

Современные технологии создания программного обеспечения

Накопленный к настоящему времени опыт создания систем ПО показывает, что это сложная и трудоемкая работа, требующая высокой квалификации участвующих в ней специалистов. Однако до настоящего времени создание таких систем нередко выполняется на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ПО. По данным Института программной инженерии (Software Engineering Institute, SEI) в последние годы до 80% всего эксплуатируемого ПО разрабатывалось вообще без использования какой-либо дисциплины проектирования, методом "code and fix" (кодирования и исправления ошибок).
Проблемы создания ПО следуют из его свойств. Еще в 1975 г. Фредерик Брукс, проанализировав свой уникальный по тем временам опыт руководства крупнейшим проектом разработки операционной системы OS/360, определил перечень неотъемлемых свойств ПО: сложность, согласованность, изменяемость и незримость.

Особенности современных проектов
Особенности современных проектов - 2
Особенности современных проектов - 3
Особенности современных проектов - 4
Особенности современных проектов - 5
Тенденции в программной инженерии
Тенденции в программной инженерии - 2
Визуальное моделирование
Методы структурного анализа и проектирования
Метод SADT

Free Pascal в UNIX
Компьютерная сеть дома
Технологии программирования на базе Microsoft Solutions Framework
Освоение с нуля FreeHand
Самоучитель по FreeHand
Руководство пользователя программы Announcement System Management
Учебный курс по CorelDRAW 12
Работа в Microsoft FrontPage XP
Фомичев Алексей - Пусть Бог Не Вмешивается
Парадигмы программирования
Интернет и безопасность в нем
Фэйзер Джейн - Джудит
Делаем из цветной картинки черно-белую
Язык преобразований XSL
Проектирование доменов и развертывание Active Directory
Гамильтон Дональд - Инквизиторы
Жаков Лев - Чудес Не Бывает
Газаров Артур - Маска
Секреты программирования игр
Графика для Windows библиотека программиста средствами DirectDraw