Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!