128
не являются обязательными), или разделов (например, в ассемблерах
MASM и Flat Assembler):
заголовок;
описание интерфейса и подключаемых библиотек;
описание данных (констант и переменных);
собственно команды.
Правила записи заголовка и интерфейса программы могут различаться в
разных версиях программы-переводчика (также называемой ассемблером).
Автор рекомендует для программ на ассемблере x86 использовать
свободно распространяемый Flat Assembler, снабженный довольно
солидным набором библиотек, включающих, в частности, неплохую
поддержку компьютерной графики.
Основная часть программы на языке ассемблера состоит из выражений.
Все выражения могут быть записаны в следующем условном виде:
[
Метка:] [
Оператор] [
Операнды] [
; Комментарий]
Выражения могут быть директивами ассемблера и мнемоническими
обозначениями команд. Различие между ними следующее. Мнемоника
команды ассемблером превращается в машинный код, кототрый затем
записывается в память программы и в ходе ее исполнения обрабатывается
процессором. Директивы называются также псевдокомандами — это некие
предписания ассемблеру, предназначенные для программы-переводчика, а
не процессора. Набор команд специфичен для каждого процессора
(архитектуры). Директивы определяются реализацией программы
ассемблирования.
Сначала рассмотрим запись программы на языке ассемблера с помощью
команд:
A1:
mov
ax,2 ; занесение в регистр AX процессора числа 2
mov
bx,2 ; занесение в регистр BX процессора числа 2
add
bx,ax;
сложение содержимого BX и AX, результат → в BX
Надеемся, приведенный фрагмент не вызвал у читателя затруднений . В
данном примере данные заносились и обрабатывались в регистрах общего
назначения процессора. Если данные хранятся в памяти, ячейке обычно
дается мнемоническое имя с помощью соответствующих
директив
ассемблера. Рассмотрим следующий пример (ассемблер MASM):
; в
разделе описания данных
S1 dw
2 ; занесение в ячейку числа 2 и ее обозначение как S1
S2 dw
3 ; занесение в ячейку числа 3 и ее обозначение как S2
S3 dw
? ; резервирование ячейки памяти с именем S3
P db
? ;
резервирование одного байта
129
MAS
dw 1,2,-
4,11,25; начиная с адреса
MAS занесены пять чисел
STR
db
'Привет'; начиная с адреса STR
идут байты строки символов
; в разделе описания команд они обычно
отделены друг от друга
sub
S2,S1; вычитание содержимого ячейки S1 из S2
Достарыңызбен бөлісу: