Win32ASM Минимальное приложение



         

Задача 2.


Между тем, вопрос о минимальном приложении - это вам не "кто идет за "Клинским" (конечно же, тот, кого в прошлый раз от "Балтики-медового" мутило), и даже не "кто потом пойдет сдавать бутылки" (конечно же, тот, кого систематически дерут в раздевалке!). Минимальное приложение - это есмъ альфа и омега программирования, сцилла и харибда отладки, инь и ян сопровождения и даже (давайте не будем бояться этой правды жихни!) эпос и анус раскрутки программного продукта! И именно поэтому за много-много лет никто так и не усомнился в правоте Кнута, который утверждал, что если:


(где
- это программа, а
- операционная система)

то бессильна даже банка со сметаной, и все, что в этом случае остается - брать в руки биту и идти в лес, выгонять из дубовых дупел пчел.

  Как свидетельствует вышеозначенная формула, вопрос о минимальном приложении (речь идет именно о приложениях, то бишь applications, а вовсе не о каких-нибудь там VxD) - совсем не простейший, и представляет отнюдь не академический интерес. Даже прибалдевшему от морковки кролику должно быть очевидно, что любое приложение обязано выполнить как минимум две не такие уж и простые задачи:

  а) стартовать, получив при этом нормальный доступ к ресурсам рабочей среды,
  и
  б) завершиться, оставив эту рабочую среду работоспособной.

  В языках высокого уровня подобные процессы обставлены всяческим сервисом - тут тебе и табун девок, накачанных силиконом; и водитель, готовый хоть на руках тащить автомобиль на стоянку; и услужливый швейцар, который при необходимости занесет на повороте хвост, если таковой, конечно же, имеется; и крашеный негр Ванька-каин, который в любое время суток до блеска готов отполировать ботинки...
  Программа же на ассемблере - это дитя совершенно иных, воистину спартанских условий. Лишенный всего вышеперечисленного, ассемблер, с одной стороны, дает программисту абсолютную власть над компьютером, но с другой... Если вы вдруг достанете свою ракетницу и возжелаете сделать рокетджамп в надежде допрыгнуть до мегахелса, то служба охраны отнюдь не кинется прикрывать своими бронированными телами остальных жильцов пятизвездочной с двумя плюсами гостиницы! Ракетница - одно из самых крутых оружий в Quakе. Рокетджамп - это такой прыжок, когда из ракетницы (в прыжке!) стреляешь себе под ноги и из-за этого очень высоко подпрыгиваешь, при этом сжигая определенное количество пунктов здоровья. Мегахелс, однако, тебе их потом с лихвой восстанавливает. Quake - рулез! Каждый низкоуровневый программист должен любить Кваку!!)

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

  А раз любвеобильной мамочки рядом с нами не будет, то прежде чем взять в руки это мощнейшее "оружие", надо сначала сходить в аптеку и закупиться не только зеленкой и йодом, но и всевозможными средствами контрацепции. И только тогда, в полном вооружении, брать в руки черный с черепушкой флаг, вешать на шею барабан и отправляться в густой таежный лес, учиться делать рокетджамп и брать медведя голыми руками...

 




Содержание  Назад  Вперед