Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

DATA Непосредственный операнд AF,PF,CF Флажки условий



3.5 Общий формат ассемблерной команды

Метка: Мнемоника Операнд, Операнд; Комментарий

Первым символом в метке должна быть буква. Все имена регистров являются зарезервированными и их использовать в качестве метки нельзя. Они используются для указания соответствующих регистров.

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

Операнды - регистры, метки данных или непосредственные данные.

3.6 Определение данных

Формат операторов резервирования и инициализации данных:

Переменная Мнемоника Операнд,...,Операнд; Комментарий

Переменной назначается смещение первого резервируемого байта.

Мнемоника определяет длину каждого операнда:

1) DB (определить байт);

2) DW (определить слово);

3) DD (определить двойное слово).

Операнды показывают инициализируемые данные или объем резервируемого пространства. Операнд резервирует место без инициализации. Выражение может содержать константу напр. 25 или? для неопределенного значения.

Примеры:

Data_Byte DB 104,56,12

Data_word DW 100H,FFH,-5

Data_DW DD 5*25,0FFFDH,1

Data_str DB ‘H’,’E’,’L’,’L’,’O’

Data_str1 DB ‘HELLO’

При определении большого числа ячеек можно применять оператор повторения DUP (Операнд,...,Операнд).Например конструкции:

Arr DB 30 DUP(1,2) - зарезервирует 30 однобайтовых ячеек с начальными значениями 1 в нечетных и 2 в четных;

ММ1 DB 15 DUP (14) - означает, что по адресу ММ1 находятся 15 байт содержащих шестнадцатиричную цифру 0ЕH.

3.7 Команды языка ассемблер

В персональных ЭВМ форматы команд достаточно разнообразны. Имеются команды с одним или двумя операндами.

Например:

1) формат команды “регистр - регистр” (2 байта);

2) формат команды “регистр - память” (2 - 4 байта);

3) формат команды “регистр - непосредственный операнд” (3 - 4 байта);

4) формат команды “память- непосредственный операнд” (3-6 байтов).

3.7.1 Команды передачи данных

Предназначены для пересылок данных, адресов и непосредственных операндов в регистры или в ячейки памяти. Их описание представлено в таблице 1.

Таблица 1 - Формат команд передачи данных

Название команды Мнемоника и формат команды Описание действия
Передать MOV DST,SRC (DST)(SRC)
Загрузить эффективный адрес LEA DST,SRC (REG) (SRC)
Загрузить в DS указатель LDS DST,SRC (REG) (SRC) (DS) (SRC+2)
Загрузить в ES указатель LES DST,SRC (REG) (SRC) (ES) (SRC+2)
Обменять XCHG OPR1,OPR2 (OPR1) (OPR2)

Ни один из флажков не изменяется.

Режимы адресации. Получатель не может быть непосредственным и не может быть CS. В командах LEA, LES, LDS операнд REG не может быть сегментным регистром, а источник не может иметь непосредственный или регистровый режим. В команде MOV один из операндов должен быть регистром. В команде XCHG хотя бы один из операндов должен быть регистром, но ни один из операндов не может быть сегментным регистром.

3.7.2 Команды двоичных сложений и вычитаний

Применяются для выполнения арифметических операций над двоичными, упакованными и неупакованными двоично-кодированными десятичными числами. Их описание представлено в таблице 2.

Таблица 2 - Формат команд двоичных сложений и вычитаний

Название команды Мнемоника и формат команды Описание действия
Сложить ADD DST,SRC (DST)(SRC) + (DST)
Сложить с переносом ADC DST,SRC (DST) (SRC) + (DST) +(CF)
Вычесть SUB DST,SRC (DST)(DST) - (SRC)
Вычесть с заемом SBB DST,SRC (DST)(DST)-(SRC)-(CF)

Модифицируются все флажки условий.

Режимы адресации. Один из операндов должен находиться в регистре. Другой операнд может иметь любой режим адресации.

3.7.3 Однооперандные команды двоичной арифметики и команды сравнения

Применяются для увеличения или уменьшения на единицу операнда и для сравнения двух операндов. Их описание представлено в таблице 3.

Таблица 3 - Формат однооперандных команд двоичной арифметики и команды сравнения

Название команды Мнемоника и формат команды Описание действия
Инкремент INC OPR (OPR)(OPR) + 1
Декремент DEC OPR (OPR)(OPR) - 1
Изменить знак NEG OPR (OPR)(OPR) - (OPR)
Сравнить CMP OPR1,OPR2 (OPR1) - (OPR2)

Модифицируются все флажки условий, но команды INC и DEC не воздействуют на флажок CF.

Режимы адресации. В командах INC, DEC, NEG не допускается непосредственный режим. В команде CMP один из операндов должен быть регистром. Другой операнд может иметь любой режим адресации, но OPR1 не может быть непосредственным значением.

3.7.4 Команды двоичных умножения и деления

1) Умножить со знаком.

IMUL SRC

операнды-байты: (AX) (AL)*(SRC),

операнды-слова: (DX:AX) (AX)*(SRC).

Произведения со знаком. Знак определяется по алгебраическим правилам.





Дата публикования: 2015-10-09; Прочитано: 421 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...