русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Условный переход


Дата добавления: 2014-10-07; просмотров: 1558; Нарушение авторских прав


Команда условного перехода организует передачу управления при выполнении определённого в команде условия, в противном случае переход осуществляется на команду, следующую за инструкцией условного перехода. Условия определяются текущим состоянием флагов процес­сора. Каждая из 30 команд условных переходов проверяет определенную ком­би­нацию флагов.

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

Jусловие - условный переход .

Это набор команд, выполняющих переход, если удовлетворяется соответствующее условие. При использовании после команды cmp, условия приобретают формулировки, соответствующие отношениям между операндами cmp.

Значение аббревиатур в названии команды jcc

Обозначение Англ. Русский Тип операндов
e equal Равно любые
n not Не любые
g greater Больше числа со знаком
l less Меньше числа со знаком
a above Выше (больше) числа без знака
b bellow Ниже (меньше) числа без знака

Эти команды осуществляют переходы типа short и near

 

Перечень команд условного перехода для команды cmp

Условие Мнемокод
со знаком без знака
ОП-1 =ОП_2 je equal
ОП-1 < >ОП_2 jne not equal
ОП-1 <ОП_2 jl low jnqe not greater or equal jb below jnae not above or equal
ОП-1 <= ОП_2 jle low or equal jngnot greater jbe below not equal jnanotabove
ОП-1 > ОП_2 jggreater jnle not low or equal jaabove jnbe not below or equal
ОП-1 => ОП_2 jge greater or equal jnlnot lower jae above or equal jnbnot below

Циклы

Инструкция, организующая программный цикл имеет вид:



loop[<условие повторения цикла>] <метка короткого перехода>

Инструкция loop использует содержимое регистра СХ как счетчик повторений цикла. Команда loop уменьшает содержимое регистра СХ на 1 и передает управление по адресу, определяемому меткой перехода, если содержимое СХ ≠ 0, в противном случае выполняется следующая за LOOP инструкция. Подобно условным переходам инструкции этой группы могут осуществлять только короткие передачи управления, т.е. в пределах от -128 до +127.

Добавление к инструкции loop<условие повторения цикла> позволяет ввести дополнительные логические условия на повторение цикла:

· loope/loopz – повторять, пока ноль;

· loopne/loopnz – повторять, пока не ноль.

Проверка флага ZF осуществляется командой loop. Цикл повторяется, если содержимое СХ ≠ 0 и выполняется соответствующее условие, в противном случае выполняется следующая за loop инструкция.

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

· Дан массив из десяти слов, содержащих целые числа. Требуется найти максимальное значение в массиве.

Текст программы:

.data

· max dw ?

· mass dw 10,24,76,479,-347,281,-24,70,124,97

· .stack 100h

· .code

start: mov ax, @data

mov ds, ax ; Загрузить сегментный адрес данных

lea bx, mass ; Загрузить адрес смещения массива

mov cx, 10 ; Установить счетчик повторений цикла

mov ax, [bx] ; Первый элемент массива в Аккумулятор

beg: cmp [bx], ax ; Сравнить текущий элемент массива с максимальным

jl no ; он меньше

mov ax, [bx] ; он больше или равен

no: inc bx ; Следующий элемент

inc bx ; массива

loop beg

mov max, ax

quit: mov ax,4C00h ; Код завершения 0

int 21h ; Выход в DOS

end start

Заменить все отрицательные числа нулями. Массив байт.

.data

· mass db 1,2,7,-4,-34,28,-24,7,12,9

· .stack 100h

· .code

start: mov ax, @data

mov ds, ax ; Загрузить сегментный адрес данных

lea bx, mass ; Загрузить адрес смещения массива

mov cx, 10 ; Установить счетчик повторений цикла

mov al, 0

beg: cmp [bx], ax ; Сравнить текущий элемент массива с нулём

jg no ; он больше

mov [bx], al ; обнуление элемента массива

no: inc bx ; Следующий элемент массива

loop beg

quit: mov ax,4C00h ; Код завершения 0

int 21h ; Выход в DOS

end start

Найти сумму абсолютных величин. Массив байт.

.data

sum db ?

· mass db 1,2,7,-4,-3, 8,-2,7,12,9

· .stack 100h

· .code

start: mov ax, @data

mov ds, ax ; Загрузить сегментный адрес данных

lea bx, mass ; Загрузить адрес смещения массива

mov cx, 10 ; Установить счетчик повторений цикла

beg: mov dl, [bx]

cmp dl, 0 ; Сравнить текущий элемент массива с нулём

jg no ; он больше

neg dl ; изменение знака элемента массива

no: add sum,dx

inc bx ; Следующий элемент массива

loop beg

quit: mov ax,4C00h ; Код завершения 0

int 21h ; Выход в DOS

end start

xlat



<== предыдущая лекция | следующая лекция ==>
Безусловные переходы | На bx -адрес таблицы пересчёта, на al возвращается код числа


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.782 сек.