Фев 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!$»
Как видно из примеров они сложны для понимания, но было бы желание. Но для начала он не подходит, я бы рекомендовал изучить какой-нибудь язык высокого уровня, ведь его возможностей хватает для решения многих задач.