Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика 01 - Структ прогр, WinAsm Studio - для студ .doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Директивы объявления констант

Для присвоения значений константам применяются директивы объявления констант. Существует 3 директивы:

  1. Директива равенства – сопоставляет с именем константы числовое значение. Это значение может быть переопределено в программе. Формат директивы равенства: имя = выражение. Например, const1 = 50.

  2. Директива EQU – сопоставляет с именем константы числовое значение или строку символов. Описанная таким образом константа не может быть переопределена в ходе программы. Формат использования:

имя EQU число

имя EQU <число1, число2, …>

Команды пересылки данных

Рассмотрим две команды пересылки данных.

1) Команда MOV – копирует данные из одного операнда в другой

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

MOV операнд-получатель, операнд-отправитель

Операнд-отправитель – место, откуда пересылают данные

Операнд-получатель – место, куда пересылают данные

Возможны следующие варианты отправителя и получателя:

MOV reg, reg

MOV mem, reg

MOV reg, mem

MOV mem, immed

MOV reg, immeg

где reg – регистр ЦП, mem – место в памяти (например, переменная),

immed – непосредственное значение (например, 2Bh).

В качестве регистра-получателя нельзя использовать CS и IP, поскольку они определяют последовательность выполнения машинных команд.

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

2) Команда XCHG (от exchange) – обменивает содержимое двух регистров или содержание регистра и переменной. Возможны следующие варианты использования.

XCHG reg, reg

XCHG reg, mem

XCHG mem, reg

Также отсутствует возможность использования двух операндов памяти.

Арифметические команды.

Рассмотрим основные арифметические операции, позволяющие выполнять действия с целыми числами.

1) Команды инкремента и декремента

INC операнд – команда инкремента (значение операнда увеличивается на единицу).

DEC операнд – команда декремента (значение операнда уменьшается на единицу).

В этом случае в качестве операнда рассматривается регистр процессора или участок памяти (например, переменной).

2) Команды сложения

ADD операнд-получатель, операнд-отправитель (складывает операнд-отправитель с операндом-получателем и помещает результат в операнд-получатель; исходный операнд-отправитель при этом не изменяется).

Одной из разновидностей команды ADD является команда ADC. Она имеет такой же формат:

ADC операнд-получатель, операнд-отправитель

Особенностью команды ADC является то, что ЦП в процессе ее выполнения складывает операнд-отправитель с операндом-получателем, но дополнительно производит операцию сложения полученного результата со значением флага CF (флаг переноса) из регистра флагов процессора.

3) Команда вычитания

SUB операнд-получатель, операнд-отправитель (вычитает из операнда-получателя операнд-отправитель и помещает результат в операнд-получатель).