- •«Пермский национальный исследовательский политехнический университет»
- •Цель работы
- •Индивидуальное задание
- •1.Теоретические сведения
- •Основные команды языка Ассемблер
- •Команды пересылки.
- •1) Пересылка данных
- •2) Пересылка адресов
- •4) Пересылка в стек и из стека
- •Арифметические операции.
- •1) Команды счёта
- •2) Арифметические операции над двоичными кодами.
- •3) Команда сравнения:
- •Команды корректировки.
- •Команды логических операций.
- •1) Поразрядные логические операции:
- •2) Команды сдвига
- •Команды передачи управления.
- •Команды организации цикла.
- •Команды вызова процедур и возврата из них.
- •Команды прерываний и возврата из них.
- •Функции ввода/вывода dos.
- •2.Расчетно-графическая часть
- •Листинг программы:
- •Библиографический список
Команды передачи управления.
Позволяют изменять естественный порядок выполнения программы. С точки зрения работы процессора CS, IP регистры, хранящие адрес текущей программы передачи управления изменения содержимого IP и CS.
1) Команда безусловного перехода. Формат команды: JMP <метка>. Для перехода в другие сегменты нужно указать атрибут far. Формат команды: JMP far <метка>.
Пример:
MOV…
M1: ADD…
JMP M1
2) Команда условного перехода. Формат команды: JXX <метка> Если некоторое условие (зависящее от команды) выполняется, то происходит передача управления по метке.
Таблица 2- Возможные команды условного перехода
Мнемоника |
Формат |
Комментарий |
JA/JNBE |
JA близ_метка |
Перейти, если выше |
JAE/JNB |
JAE близ_метка |
Перейти, если выше или равно |
JB/JBAE/JC |
JB близ_метка |
Перейти, если ниже |
JBE/JNA |
JBE близ_метка |
Перейти, если ниже или равно |
JCXZ |
JCXZ близ_метка |
Перейти, если CX=0 |
JE/JZ |
JE близ_метка |
Перейти, если равно |
JG/JNLE |
JG близ_метка |
Перейти, если больше |
JGE/JNL |
JGE близ_метка |
Перейти, если больше или равно |
JL/JNGE |
JL близ_метка |
Перейти, если меньше |
JLE/JNG |
JLE близ_метка |
Перейти, если меньше или равно |
JNC |
JNC близ_метка |
Перейти, если нет переноса |
JNE/JNZ |
JNE близ_метка |
Перейти, если не равно |
JNO |
JNO близ_метка |
Перейти, если нет переполнения |
JNP/JPO |
JNP близ_метка |
Перейти, если нечетный |
JO |
JO близ_метка |
Перейти, если перенос |
JP/JPE |
JP близ_метка |
Перейти, если четный |
JS |
JS близ_метка |
Перейти, если отрицательный |
Здесь выше или ниже(A-above, B-below) относятся к беззнаковым операндам; больше или меньше (G-greater, L-lower) относятся к знаковым операндам.
Пример:
JE <метка>
СMP [BX], AL
JNE M1
MOV [SI], AL
M1: INC [SI]
INC [BX]
Команды организации цикла.
В качестве счётчика циклов используется регистр СХ. Исполнение: из содержимого СХ вычитается единица, после чего УУ процессора проверяет СХ на равенство нулю. Если СХ=0, то выполняется следующая (за LOOP) команда; возврат на метку.
Таблица 3-Варианты команды LOOP
Мнемоника |
Формат |
Комментарий |
LOOP |
LOOP близ_метка |
Повторять цикл |
LOOPE/LOOPZ |
LOOPE близ_метка |
Повторять, пока равны |
LOOPNE/LOOPNZ |
LOOPNE близ_метка |
Повторять, пока не равны |
Пример:
MOV CX, 40 ;дополним в массиве 40 байт.
……….
M1: ……….
CMP [BX], AL
LOOPNE M1
MOV [SI], AL
