Ассемблер – это программа, которая переводит текст программы, написанной на языке ассемблера в машинный код. Однако сначала в повседневной речи, а затем и в литературе слово «ассемблер» стало также и названием самого языка программирования.
Несмотря на многообразие и простоту разработки программного обеспечения с использованием языков программирования высокого уровня, язык ассемблера до сих пор используется. На ассемблере пишут:
· все, что требует максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критические ко времени выполнения и объему участки программ;
· все, что взаимодействует с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеоплатами;
· все, что использует полностью возможности процессора: ядра многозадачных операционных систем, DPMI-серверы и вообще любые программы, переводящие процессор в защищенный режим;
· все, что полностью использует возможности операционной системы: вирусы и антивирусы, защиты от несанкционированного доступа, программы, обходящие эти защиты, и программы, защищающиеся от этих программ
|
|
Понятно, что, когда говорят «программа на ассемблере», имеют в виду язык, а когда говорят «турбоассемблер версии 2.0», имеют в виду программу, переводящую исходный текст программы на ассемблере в машинный код. Вместе с ассемблером обязательно должна быть еще одна программа – компоновщик (linker), которая и создает исполнимые файлы из одного или нескольких объектных модулей, полученных после запуска ассемблера (таблица 24). Помимо этого для разных целей могут потребоваться дополнительные вспомогательные программы – компиляторы ресурсов, расширители DOS и тому подобное.
Таблица 24 – Ассемблеры и компоновщики
Microsoft | Borland | |
DOS, 16 бит | masm или ml и link (16 бит) | tasm и tlink |
DOS, 32 бита | masm или ml и link (32 бита) | tasm и tlink |
Windows EXE | masm386 или ml и link (32 бита) | tasm и tlink32 |
Windows DLL | masm386 или ml и link (32 бита) | tasm и tlink32 |
Перед тем, как приступить к изучению языка ассемблера, необходимо ознакомиться с архитектурой процессоров, на которых будет выполняться программный код.
Архитектура процессоров IA-32