Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dekanat_metodichka_Kursovaya_VMSiS.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.22 Mб
Скачать

2.6.3. Описание основных используемых в работе команд

1. ORG – Задание счетчика размещения в памяти

Устанавливает ассемблерный счетчик размещения в соответствии с выражением.

2. DB – Описание байта

[name] DB initialvalue,,,.

Размещает и инициализирует один или более байтов (по 8 бит) памяти. Аргумент «initialvalue» может быть задан одним из следующих способов:

  • целое число (например, 12);

  • строка (например, 'message');

  • константное выражение (например, 2 * 5);

  • оператор DUP (например, 10 DUP (?));

  • знак вопроса «?» (например, 0,1,?,2).

Примечания:

Когда имеется аргумент name (он не является обязательным), то ассемблер создает переменную, значение смещения которой равно текущему значению счетчика размещения. Эта переменная будет иметь тип BYTE.

3. MOV – Пересылка (байта или слова)

Признаки не меняются.

Команда: MOV destination, source.

Логика: destination = source.

MOV пересылает по адресу destination байт или слово, находящееся по адресу «source».

4. IN – accumulator, port.

Логика: accumulator = (port).

IN передает байт или слово из заданного порта port в AL или AX. Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.

5. AND – destination, source.

Логика: destination = destination AND source.

AND выполняет логическое умножение побитно над своими операндами и засылает результат по назначению «destination». Оба операнда могут быть словами или байтами.

6. CMP – destination, source.

Логика: Установка признаков в соответствии с результатом.

(destination - source)

CMP сравнивает два числа, вычитая операнд source из операнда destination, и изменяет значения признаков. CMP не изменяет сами операнды. Операндами могут быть байты или слова.

7. OUT – port, accumulator.

Логика: (port) = accumulator.

OUT передает байт или слово из AL или AX в заданный порт.

Адрес порта может определяться как непосредственным байтовым значением (в диапазоне 0-255), так и с использованием косвенной адресации по регистру DX.

8. JE, JZ – Переход если равно

Признаки не меняются.

Команда: JE short-label.

Условие перехода: Jump if ZF = 1.

Команда JE используется после команд CMP и SUB и передает управление по метке short-label, если первый операнд был равен второму. Цель перехода должна лежать в пределах от -128 до 127 байтов от следующей команды.

Примечания:

Если для JZ указать переход «0», то она будет выполняться как JE.

9. JMP – Безусловный переход

Признаки не меняются.

Команда: JMP target.

Условие перехода: переход осуществляется всегда.

Команда JMP всегда передает управление в место, определяемое операндом «target». В отличие от команды CALL, JMP не запоминает значение IP, т.к. появление команды возврата RET не ожидается. Переход внутри сегмента может быть задан как операндом типа память, так и через 16-битный регистр. Переход во внешний сегмент может быть задан только через операнд типа память.

10. XOR – Исключающее ИЛИ

Признаки:

O

D

I

T

S

Z

A

P

C

0

*

*

*

*

0

Команда: XOR destination, source.

Логика: destination = destination XOR source.

XOR выполняет операцию исключающего или побитно над своими операндами и засылает результат по назначению «destination».

Оба операнда могут быть словами или байтами.

Команда XOR устанавливает каждый бит результата в «1», если в точности один из соответствующих битов операндов равен «1».

11. CALL – Вызов подпрограммы

Признаки не меняются.

Команда: CALL procedure_name.

Применяется для удобства разбиения программы на подпрограммы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]