Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM / asm_лр_ир_copy / О_ASM_ЛР1т.doc
Скачиваний:
8
Добавлен:
15.02.2015
Размер:
237.57 Кб
Скачать

2.6.2 Псевдооператори визначення ідентифікаторів

Для присвоєння деякому виразу або ідентифікатору символічного імені застосовуються псевдооператори: equ (equal – рівняється) і "=" (дорівнює).

В ході трансляції програми замість цього ідентифікатора асемблер підставить відповідний вираз. Вираз може бути представлений константами, іменами міток, символічними іменами й рядками в апострофах. Синтаксис псевдооператора equ:

ім'я_ідентифікатора equ рядок або

ім'я_ідентифікатора equ числовий_вираз

Синтаксис псевдооператора “=”:

ім'я_ідентифікатора = числовий_вираз

Незважаючи на зовнішню й функціональну подібність псевдооператори equ й “=” відрізняються наступним чином:

  • за допомогою equ ідентифікатору можна ставити у відповідність як числові вирази, так і текстові рядки, а псевдооператор “=” може використатися тільки із числовими вирази;

  • ідентифікатори, які визначені за допомогою “=”, можна перевизначити у вихідному тексті програми, а визначені з використанням equ – не можна.

Псевдооператор equ зручно використати для настроювання програми на конкретні умови виконання, заміни складних у позначенні об'єктів, багаторазово використовуваних у програмі, більше простими іменами інше. Псевдооператор “=” зручно використати для визначення простих, не залежних від місця завантаження програми в пам’ять, математичних виразів. Головна умова, щоб транслятор міг обчислити ці вирази під час трансляції.

Наприклад:

a1 equ 25h ;незмінне значення

a2 equ 37h

help equ ‘Клавіша F1’ ;опис символьного рядка

r1 equ a1 + a2 ;знаходження суми двох операндів

count1 equ cx ;перейменувати регістр

mas_1 equ ds: [bx+si] ;адреса масиву

r2 = a1 + a2 ;обчислення виразу

r2 = 5Ch ;константа

r3 = r2 – 02h ;обчислення виразу

2.6.3 Директиви опису даних

Асемблер надає дуже широкий набір засобів опису й обробки даних. Для опису простих типів даних у програмі використаються директиви, які, по суті є вказівками транслятору на виділення певного обсягу пам'яті.

Директиви опису даних простих типів дозволяють описати дані типу байт, слово, подвійне слово. Синтаксист цих директив має такий вигляд:

[Ім'я] db Вираз [, вираз...]

[Ім'я] dw Вираз [, вираз...]

[Ім'я] dd Вираз [, вираз...]

Ім'я — деяке символічне ім'я мітки або комірки пам'яті в сегменті даних, яке використовується в програмі.

Директиви db, dw, dd дозволяють резервувати пам'ять для даних розміром 1, 2 та 4 байта. Крім того за допомогою директиви db можна задавати символьний рядок з одного або більше символів. Рядок береться в лапки. У цьому випадку визначається стільки байт, скільки символів у рядку.

Для резервування даних замість виразу може бути знак питання (?), який показує, що вміст поля не визначено, тобто резервується.

Якщо потрібно задати декілька однакових значень, використовується вираз повторення n dup(x), де dup - операція дублювання, n - кількість повторів, x - інформація, яку потрібно занести в пам’ять.

Рядок може містити таку кількість символів, яка може розміститися в 132 позиціях.

Наприклад:

.data

perem_1 db 0ffh

perem_2 dw 3a7fh

perem_3 dd 0f54d567ah

pole_1 db 10dup (7)

pole_2 db 5 dup (?)

B_Tabl_1 db 0, 0, 5, 18

db 20, 30, 40, 80

W_Tabl dw 1025, 1148,15

Для запису тексту в елемент пам’яті застосовується оператор db, при цьому текст береться в одинарні лапки

mm1 db 'Запустити програму ’ , ’ $ '

Соседние файлы в папке asm_лр_ир_copy