Как работают программы и как их пишут?

Фев 17 2012

Deprecated. preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/private_1/data/www/linuxguru. ru/wp-content/plugins/wp-code-highlight/wp-code-highlight. php on line 68

Запуская какую-нибудьпрограмму или игру некоторые из вас задаются вопросом, как – же они работают. Этот вопрос очень интересный, как и ответ на негоя постараюсь сегодня ответить…

Любая программа или игра хранится на носителях информации, например жесткий диск, карта памяти, CD или DVD-диск или еще какие-нибудь другие, но после запуска она загружается в оперативную память компьютера или другого устройства и оттуда начинает свою работу.

Специальная информация ( машинные коды ) по блокам передаются процессору, а тот в свою очередь их перерабатывает и выполняет: производит вычисления, передает команды видеопроцессору, звуковой карте или внешним устройства через контроллеры.

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

Различают два вида программирования:

1. > низкоуровневый

2. > высокоуровневый

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

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

FASM, MASM, TASM, NASM

На всех из них пишут на ассемблере, но у них разные диалекты. Все они распространены в равной доле, но сейчас мы рассмотрим только FASM.

Здесь приведу пример программы на ассемблере для Windows и DOC:

Windows :

include ‘win32ax. inc’.codemain. invoke MessageBox. NULL. ‘Hello, World!’. ‘Example_cod:’. MB_OKinvoke ExitProcess. 0.end main

DOC :

org 100h

mov ah,9h

mov dx, hello

int 21h

mov ah,8h

int 21h

int 20h

hello db 13,10,»Hello, World!$»

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