Книги-online
Глава 7 Алгоритмы. Алгоритмизация. Алгоритмические языки
7.15. Что такое язык ассемблера?
Язык ассемблера это машинно-зависимый язык низкого уровня, в котором
короткие мнемонические имена соответствуют отдельным машинным командам. Используется для представления в удобочитаемой
форме программ, записанных в машинном коде.
|
Язык ассемблера позволяет программисту пользоваться текстовыми мнемоническими
(то есть легко запоминаемыми человеком) кодами, по своему усмотрению
присваивать символические имена регистрам компьютера и памяти, а также
задавать удобные для себя способы адресации. Кроме того, он позволяет
использовать различные системы счисления (например, десятичную или
шестнадцатеричную) для представления числовых констант, использовать в
программе комментарии и др.
Программы, написанные на языке ассемблера, требуют значительно меньшего
объема памяти и времени выполнения. Знание программистом языка ассемблера
и машинного кода дает ему понимание архитектуры машины. Несмотря на то, что
большинство специалистов в области программного обеспечения разрабатывают
программы на языках высокого уровня, таких, как Object Pascal или C, наиболее
мощное и эффективное программное обеспечение полностью или частично написано
на языке ассемблера.
Языки высокого уровня были разработаны для того, чтобы освободить
программиста от учета технических особенностей конкретных компьютеров,
их архитектуры. В противоположность этому, язык ассемблера разработан с
целью учесть конкретную специфику процессора. Сдедовательно, для того,
чтобы написать программу на языке ассемблера для конкретного компьютера, важно
знать его архитектуру [57].
В качестве примера приведем программу на языке ассемблера для IBM PC.
Программа вычисляет значение a = b + c для целых a, b и c:
.MODEL SMALL
.DATA
b DW 5
c DW 3
a DW ?
.CODE
begin MOV AX,@DATA
MOV DS,AX
MOV AX,B
ADD AX,C
MOV A,AX
MOV AH,4CH
INT 21H
END begin
|
Директива .MODEL задает механизм распределения памяти под данные и команды.
Директива .DATA определяет начало участка программы с данными.
Директивы DW задают типы переменных и их значения.
Директива .CODE определяет начало участка программы с командами.
Команды MOV AX,@DATA и MOV DS,AX
записывают адрес сегмента данных в регистр DS (Data Segment).
Для вычисления a используются команды MOV AX, B,
ADD AX,C и MOV A,AX.
В директиве END задана метка первой выполняемой программы программы begin.
|
Перевод программы с языка ассемблера на машинный язык осуществляется
специальной программой, которая называется ассемблером и является,
по сути, простейшим транслятором.