Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / Lab_moto / 1.doc
Скачиваний:
16
Добавлен:
16.04.2013
Размер:
211.97 Кб
Скачать

Кросс-ассемблер. Формат исходной программы. Формат оператора.

Исходная программа составляется из команд (операторов) языка ассемблер. Каждый оператор должен быть записан на одной строке. Строка может содержать до 80 символов. Операторы ассемблера имют 4 поля, которые опознаются по порядку следования внутри строки и разделяются символами между полями. Основной формат оператора следующий:

[метка:] Команда операнд [;коментарии]

Поля метки и комментариев необязательные. Поля команды и операнда взаимозависимые и отделяются пробелами или табуляцией. Поле операнда может быть как необходимым, так и необязательным, в зависимости от контекста команды. Рассмотрим поля, входящие в состав оператора, подробнее.

Поле метки.

Метка - это определяемый пользователем элемент программы на языке ассемблера, который ставится в соответствие адресу текущей команды. Метку можно использовать в командах перхода и присваивания, указывая вместо адреса ячейки надлежащую метку. При описании метки можно использовать символы: A-Z, a-z, 0-9, . (точка), $ (знак доллара) и _ (подчеркивание). Поле метки отделяется от следующего поля двоеточием (:).

Примечания:

·метка не может начинаться с цифры;

·метка может иметь произвольную длину, но только первые 8 символов являются значащими.

Поле команды.

Поле команды определяет выполняемую ассемблером функцию. В поле команды может содержаться либо мнемоника команды, либо директива ассемблера (см. ниже). Все лишние пробелы и табуляции перед и после команды отбрасываются. Поле команды отделяется от поля операнда пробелом(ами) или табуляцией.

Поле операнда.

Поле операнда используется только в том случае, если команде необходим операнд. Операнд может также быть выражением. При использовании нескольких операндов их следует разделять запятыми. При определении операндов возможно использование выражений, которые приведены в таблицах ниже.

Унарные операторы.

знак меньше (<)

младший байт значения выражения

<0h0800=0h00

знак больше (>)

старший байт значения выражения

>0h0800=0h80

знак плюс (+)

положительное значение

+23=23

знак минус (-)

отрицательное значение (инверсия старшего бита)

-0h13=0h93

тильда (~)

инверсия числа

~0h00=0hFF

апостроф (')

код символа

'А=0h41

кавычки (")

код строки

"AB=0h4142

Двуоперандные выражения.

символ

назначение

пример

двойной знак меньше (<<)

a<<n - сдвиг а на n бит влево

0h0800<<4=0h8000

двойной знак больше (>>)

a>>n - сдвиг а на n бит вправо

0h0800>>4=0h0080

знак плюс (+)

a+b - арифметическое сложение

3+5=8

знак минус (-)

a-b - арифметическое вычитание

3-5=-2

звездочка (*)

a*b - арифметическое умножение (16-ти битовое знаковое)

3*2=6

косая черта (/)

a/b - арифметическое деление (16-ти битовое знаковое)

0hF0/2=0h78

амперсанд (&)

a&b - логическая операция AND

0b0101&0b0011=1

вертикальная черта (|)

a|b - логическая операция OR

0b0101|0b1001=0b0D

крышка или стрелочка (^)

a^b - логическая операция ХOR

0b0101^0b0110=3

Временное переключение систем счисления.

символ

назначение

0b, 0B

двоичная система

0@, 0o, 0O, 0q, 0Q

восьмеричная система

0d, 0D

десятичная система

0h, 0H, 0x, 0X

шестнадцатиричная система

Соседние файлы в папке Lab_moto