Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

Примеры:

1.

Text db ‘hello’

Num dw 7

Tab db 1,2,7,6,4,3

P1 dd 3,5e7

2. Если вместо значения стоит знак ?, то при загрузке значение переменной не определено.

3. Если необходимо заполнить участок памяти каким-либо повторяющимся кодом, то используют выражение DUP, например:

m1 DB 5 DUP (14) ; 5 байт содержащих код 0Eh.

4. Если необходимо зарезервировать участок памяти, можно записать следующее выражение:

tab dw 512 DUP(?) ; массив из 512 неопределенных слов.

В операторе DUP могут быть вложенные операторы DUP, например:

m2 db 3 DUP (4 DUP(8)) ; 12 байт, в которых записано число 8.

8.2. Выражения

Выражение — это набор чисел, меток или строк, связанных друг с другом операторами.

1. Оператор < > - выражение в < > используется как строка символов.

Message egu <foo>

2. Оператор ( ) – содержимое в круглых скобках вычисляется в первую очередь. Например:

MOV al, 2*(3+4)

3. Арифметические операторы +, -, / (целочисленное деление), *, mod (остаток от деления). Например:

size db 48 размер в байтах.

elem db 4 размер одного элемента.

MOV CX, size/elem вычисляется количество элементов и заносится в регистр СХ.

4. Логические операторы AND (и), NOT (не), OR (или), XOR (исключающее ИЛИ), SHL (сдвиг влево), SHR (сдвиг вправо).

Двоичная логика (операции над одним битом).

0 AND 0 = 0 0 OR 0 = 0 0 XOR 0 = 0 NOT 0 = 1

0 AND 1 = 0 0 OR 1 = 1 0 XOR 1 = 1 NOT 1 = 0

1 AND 0 = 0 1 OR 0 = 1 1 XOR 0 = 1

1 AND 1 = 1 1 OR 1 = 1 1 XOR 1 = 0

Двоичные операции применимы не только над битами, но и над байтами и словами. Нужно записать два байта, как для операции сложения, и потом побитно выполнить логические операции. За счет того, что переносов нет, операнды могут быть любой длины, но обязательно одинаковой.

5. Операторы сравнения предназначены для формирования логических выражений:

eq

=

равно;

gl

больше или равно;

gt

>

строго больше;

le

< =

меньше или равно;

lt

<

строго меньше;

ne

не равно.

Результат «истина» соответствует цифровой единице, и «ложь» — нулю.

6. Операторы адресации.

Оператор SEG /выражение/ возвращает физический адрес сегмента для выражения.

Оператор offset /выражение/ возвращает значение смещения выражения относительно начала сегмента.

MOV dx, offset message

Оператор this создает операнд, адресом которого является текущее значение счетчика команд.

MOV al, this byte-1 ; (записывает в al последний байт кода предыдущей команды).

PTR создает аргумент, адресом которого является значение выражения, а тип задается явно (переопределение типа).

MOV dword ptr [SI], Ø ; записать 4 нулевых байта по адресу DS:SI.

7) Другие операторы:

. — ссылка на элемент структуры;

: — переопределение сегмента;

[ ] — косвенная адресация;

? — неинициализированные значения;

DUP — повторяющееся значение.

Соседние файлы в папке Введение в вычислительную технику.