Директива DB (define byte, определить байт)

По директиве DB определяются данные размером в байт. Ассемблер вычисляет операнды и записывает их значения в последовательные байты памяти. Первому из этих байтов присваивается указанное имя, по которому на этот байт можно ссылаться в программе.

Способы задания операндов:

·? (знак неопределенного значения). Значение переменной можно не определять.

Пример: Х DB?

· Константное выражение со значением от –128 до 255.

Пример: А DB 254

· Множественная инициализация

Пример: переменная – массив из 5 элементов

A DB 1, 2, 3, 4, 5

Конструкция повторения DUP

Пример: байтовый массив А из 5 элементов с начальным значением 0 для каждого из них.

A DB 0, 0, 0, 0, 0

A DB 5 DUP (0)

Директива DW (define word, определить слово)

Директивой DW описываются переменные размером в слово. Аналогична директиве DB.

Способы задания операндов:

· Операнд?

Пример: A DW?

· Константное выражение со значением от -32768 до 65535

Пример: В DW 1234h

C DW -2

· Адресное выражение

Пример: C DB?

D DW С

· Несколько операндов, конструкция повторения

Пример:

E DW 40000, 3 DUP (?); E DW 40000,?,?,?

Директива DD (define double word, определить двойное слово)

По директиве DD описываются переменные, под которые отводятся двойные слова. Директива похожа на две предыдущие.

Способы задания операндов:

· Операнд?

· Целое число со значением от -231 до 232-1

· Константное выражение (со значением от -215 до 216-1)

· Адресное выражение (операнд задает абсолютный адрес)

· Несколько операндов, конструкция повторения

Директивы эквивалентности и присваивания

Описывают константы.

Директива EQU (equal, равно) – директива эквивалентности.

Синтаксис:

<имя> EQU <операнд>

Операнд – имя

Пример: Если используется регистр АХ для вычисления суммы, то его можно обозначить SUM и далее использовать имя SUM:

SUM EQU AX

Операнд – константное выражение

N EQU 100

K EQU 2*N-1

X DB N DUP (?)

X DB 100 DUP (?)

Операнд – текст

S EQU ‘Ошибка’

Директива присваивания

<имя> = <константное выражение>

K=10

A DW K; A DW 10

K=K+4

B DB K; B DB 14

Структура программы. Логические сегменты

И их параметры

Логический сегмент – именованная область памяти, адресуемая с неизменным значением одного из сегментных регистров.

Программный сегмент имеет следующую структуру:

<имя сегмента> SEGMENT <параметры>

<предложение>

<предложение>

<имя сегмента> ENDS

Пример программного сегмента:

A SEGMENT

X DW?

A ENDS

Директива ASSUME

ASSUME <пара> {, <пара>}

где <пара> - это <сегментный регистр>:<имя сегмента>

Пример:

ASSUME ES: A, DS: B, CS: C


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: