Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2022-11-24 | 19 |
5.00
из
|
Заказать работу |
|
|
Каждая ассемблерная команда состоит из двух частей: операционной (мнемоника), определяющей «что делать», и адресной (операндной), определяющей «с чем делать».
В самом общем виде команда на языке ассемблера в форме Бэкуса-Наура выглядит следующим образом (в квадратных скобках указаны необязательные компоненты) [14, 16]:
[ Метка: ] Мнемоника [ Операнды ] [; Комментарий ]
Метка (символьный адрес команды в сегменте кода) представляет собой идентификатор, то есть последовательность букв и цифр, начинающуюся с буквы. При этом используются буквы латинского алфавита и цифры в диапазоне от 0 до 9. Символы метки могут разделяться знаком подчеркивания.
Все имена регистров являются зарезервированными и использовать их в качестве метки нельзя. Они применяются для указания соответствующих регистров. Символьный адрес команды является необязательным. Он указывается в команде тогда, когда на неё ссылаются в командах условного, безусловного переходов или цикла.
Мнемоника (команда) указывает транслятору с ассемблера, какое действие должен выполнить данный оператор.
Операнды – это регистры, метки (адреса) данных или непосредственно данные. В зависимости от формата команды количество операндов может варьироваться: ни одного (безадресная команда), один (одноадресная команда) или два (двухадресная команда). Разрядность операндов должна совпадать.
Комментарий служит для пояснения действий команды или директивы ассемблера. После точки с запятой комментарий записывается на одной строке. Для продолжения комментария на последующих стоках он записывается после точки с запятой. Комментарий является необязательным.
Таким образом, из всех компонентов команды в обязательном порядке указывается сам оператор и необходимые для его выполнения операнды.
|
Примеры:
add ah, al; Сложение содержимого регистров ah и al
met: inc ah; Увеличение содержимого регистра ah на 1
mov ah, 25; Пересылка в регистр ah значения 25
inc cx; Увеличение содержимого регистра cx на 1
cli; Отключение маскируемых прерываний
Определение данных
В сегменте данных можно зарезервировать определённое количество байтов для размещения исходных данных или результатов работы программы, а также указать их начальные значения. Формат операторов резервирования и инициализации данных в общем случае имеет вид:
Метка Мнемоника Операнд [,Операнд… ] [; Комментарий ]
Метка (символьный адрес) обозначает смещение (номер ячейки в сегменте данных) первого резервируемого байта. Метка в сегменте данных обладает теми же свойствами, что и метка в сегменте кода, но является обязательной.
Мнемоника определяет длину каждого операнда (табл. 1.1) [16, 18]:
Таблица 1.1. Основные типы данных
Тип | Мнемоника | Количество байт | Диапазон |
Байт | DB | 1 | 0..255 |
-128..127 | |||
Слово | DW | 2 | 0..65535 |
-32768…32767 | |||
Двойное слово | DD | 4 | 0...4294967295 |
-2147483648…2147483647 |
Операнды показывают инициализируемые данные или объем резервируемого пространства. Выражение может содержать константу или символ? для неопределенного значения.
Числовые константы используются для обозначения арифметических операндов и адресов памяти. Для числовых констант в языке ассемблера могут использоваться следующие числовые форматы.
1. Десятичный формат – допускает использование десятичных цифр от 0 до 9 и обозначается конечной буквой d, которую можно не указывать. Например, 45 или 45d.
2. Шестнадцатеричный формат – допускает использование шестнадцатеричных цифр от 0 до F и обозначается последней буквой h, например 3Fh. Если шестнадцатеричное число начинается с буквы (A, B, C, D, E, F), то первым символом такой константы должна быть цифра от 0 до 9. Например, 0Eh.
3. Двоичный формат – допускает использование цифр 0 и 1 и обозначается в конце буквой b. Например, 00001100b.
|
Символьные константы могут быть представлены кодами ASCII или самими символами, заключенными в апострофы, и имеют длину один байт. Например, 4Dh или ‘M’.
Приведем несколько примеров определений данных.
a1 db 104
По адресу a 1 зарезервирована байтовая ячейка, в которую помещается число 104 в десятичной системе счисления.
bw dw 0FFH
По адресу bw зарезервирована двухбайтовая ячейка, в которую помещается шестнадцатеричное число 0 FF.
sym1 db ‘L’
По адресу sym 1 зарезервирована байтовая ячейка, в которую помещается символ ‘ L ’.
По некоторому адресу можно резервировать несколько ячеек инициированных разными или одинаковыми значениями. Например, определение
arr db 2, 8, 5, 7, 3
резервирует по адресу arr 5 однобайтовых смежных ячеек со значениями, соответственно, 2, 8, 5, 7 и 3.
При инициализации массива ячеек символьными значениями также через запятую перечисляются ASCII-коды символов или сами символы в апострофах (следует помнить, что каждый символ занимает один байт). Например,
str db ‘a’, ‘s’, ‘s’, ‘e’, ‘m’, ‘b’, ‘l’, ‘e’, ‘r’
Также можно задать массив символов в виде строки, в которой слева направо перечисляются символы. Строка заключается в апострофы и для ее корректной обработки (в частности, вывода на экран) в конце указывается символ «$» – признак конца последовательности. Например,
str1 db ‘assembler’, ‘$’
str1 db ‘assembler$’
Данные определения резервируют 9 однобайтовых ячеек: в которых сначала перечисляются последовательно символы до знака «$», а потом символ «$».
Следует отметить, что символ «$» может использоваться в качестве признака конца не только символьной, но и числовой последовательности. Например,
arr db 2, 8, 5, 7, 3, ‘$’
Для определения большого числа ячеек с одинаковыми или повторяющимися значениями можно применять оператор повторения:
Метка Мнемоника Размер DUP (Операнд [, Операнд … ])
Метка, мнемоника и Операнды идентичны описанию аналогичных компонент, приведённых выше.
Размер – константа, характеризующая количество резервируемых ячеек. Например, определение
mas db 30 dup (1,2)
резервирует по адресу mas 30 однобайтовых ячеек с начальными значениями 1 в нечетных и 2 в четных байтах.
Согласно следующему определению,
mm1 db 15 dup (0ch)
в памяти по адресу mm 1 резервируется 15 байтовых ячеек, содержащих шестнадцатеричную цифру 0СH.
|
Если необходимо выделить ячейки памяти, но не инициализировать их начальными значениями, то в качестве поля Операнд используется символ?. Например, определение
arg dw 4 dup (?)
резервирует по адресу arg 4 ячейки, содержащие произвольные значения.
Далее рассмотрим подробное описание ассемблерной программы на примере программы сложения двух чисел.
|
|
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!