ВУЗ:
Составители:
Рубрика:
10
Лекция №3
Структура программы на ассемблере.
Программист или любой другой пользователь может использовать любые высокоуровневые
средства, вплоть до построения виртуальных миров, и возможно даже не подозревать, что на
самом деле компьютер выполняет команды языка, на котором написана программа, а их
трансформация представление в форме скучной и унылой последовательности совсем другого
языка – машинного. Поэтому не случайно все языки имеют средства связи с языком ассемблера,
т.к. решить аппаратные проблемы невозможно без знания языка. Поэтому решать проблемы
связанные с аппаратурой невозможно без знания ассемблера.
• Вспомним, что ассемблер является символичным аналогом машинного языка, поэтому он
относится к машинно-зависимым языкам. Поэтому программа написанная на ассемблере, должна
отражать все особенности архитектуры МП: организацию памяти, способы адресации операндов,
правила использования регистров и т.д. Из-за необходимости учета подобных особенностей
ассемблер уникален для каждого типа МП.
• Программа на ассемблере представляет собой совокупность блоков памяти, называемых
сегментами памяти. Программа может состоять из одного или нескольких таких блоков-
сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых
занимает отдельную строку кода программы.
• Предложения ассемблера бывают четырех типов:
o команды, или инструкции, представляющие собой символические аналоги
машинных команд. В процессе трансляции инструкции ассемблера преобразуются в
соответствующие команды МП
o макрокоманды – оформляемые определенным образом предложения текста
программы, замещаемые во время трансляции другими предложениями.
o директивы, являющиеся указанием транслятору ассемблера на выполнения
некоторых действий. У директив нет аналогов в машинном представлении
o строки комментариев, содержащие любые символы, в том числе и буквы русского
алфавита. Комментарии игнорируются транслятором.
Рассмотрим формат команды ассемблера:
[Метка:] Мнемокод [операнд] [;комментарий]
Обязательным здесь является только мнемокод. В зависимости от команды может не быть
операндов, может быть один или два операнда.
Метка – служит для присвоения имени команде. На эту метку можно будет ссылаться из
любой части программы. Она может содержать до 31 символа и заканчиваться двоеточием
и содержать символы алфавита от a до Z. и от a до z, цифры от 0 до 9 и символы ?, ., @,, _,
$.
Метка не должна начинаться с цифры. Если используется «.», то она должна быть первым
символом метки. Имя метки не должно совпадать с названием команд. В метку не должны
вставляться пробелы.
Комментарии – должны быть отделены от команд ;. Это комментарии к команде,
программе и блоку команд.
Мнемокод – это имя команды МП.
Поле операндов – в поле операндов может быть0, 1 или 2 операнда в зависимости от типа
команды. Операнд – часть команды, макрокоманды или директивы ассемблера,
обозначающие объекты, над которыми производятся действия. Операнды ассемблера
описываются выражениями с числовыми и текстовыми константами, метками и
идентификаторами переменных с использованием знаков операций и некоторых
зарезервированных слов.
Если в команде 2 операнда, то первый операнд называется приемником, а второй источником.
Например:
MOV AX, CX ; содержимое регистра cx перемещается в ax
Для работы с данными их помещают в сегмент данных.
Описание сегмента данных осуществляется с помощью директивы
Лекция №3 Структура программы на ассемблере. Программист или любой другой пользователь может использовать любые высокоуровневые средства, вплоть до построения виртуальных миров, и возможно даже не подозревать, что на самом деле компьютер выполняет команды языка, на котором написана программа, а их трансформация представление в форме скучной и унылой последовательности совсем другого языка – машинного. Поэтому не случайно все языки имеют средства связи с языком ассемблера, т.к. решить аппаратные проблемы невозможно без знания языка. Поэтому решать проблемы связанные с аппаратурой невозможно без знания ассемблера. • Вспомним, что ассемблер является символичным аналогом машинного языка, поэтому он относится к машинно-зависимым языкам. Поэтому программа написанная на ассемблере, должна отражать все особенности архитектуры МП: организацию памяти, способы адресации операндов, правила использования регистров и т.д. Из-за необходимости учета подобных особенностей ассемблер уникален для каждого типа МП. • Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков- сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых занимает отдельную строку кода программы. • Предложения ассемблера бывают четырех типов: o команды, или инструкции, представляющие собой символические аналоги машинных команд. В процессе трансляции инструкции ассемблера преобразуются в соответствующие команды МП o макрокоманды – оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями. o директивы, являющиеся указанием транслятору ассемблера на выполнения некоторых действий. У директив нет аналогов в машинном представлении o строки комментариев, содержащие любые символы, в том числе и буквы русского алфавита. Комментарии игнорируются транслятором. Рассмотрим формат команды ассемблера: [Метка:] Мнемокод [операнд] [;комментарий] Обязательным здесь является только мнемокод. В зависимости от команды может не быть операндов, может быть один или два операнда. Метка – служит для присвоения имени команде. На эту метку можно будет ссылаться из любой части программы. Она может содержать до 31 символа и заканчиваться двоеточием и содержать символы алфавита от a до Z. и от a до z, цифры от 0 до 9 и символы ?, ., @,, _, $. Метка не должна начинаться с цифры. Если используется «.», то она должна быть первым символом метки. Имя метки не должно совпадать с названием команд. В метку не должны вставляться пробелы. Комментарии – должны быть отделены от команд ;. Это комментарии к команде, программе и блоку команд. Мнемокод – это имя команды МП. Поле операндов – в поле операндов может быть0, 1 или 2 операнда в зависимости от типа команды. Операнд – часть команды, макрокоманды или директивы ассемблера, обозначающие объекты, над которыми производятся действия. Операнды ассемблера описываются выражениями с числовыми и текстовыми константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов. Если в команде 2 операнда, то первый операнд называется приемником, а второй источником. Например: MOV AX, CX ; содержимое регистра cx перемещается в ax Для работы с данными их помещают в сегмент данных. Описание сегмента данных осуществляется с помощью директивы 10
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »