Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Команда JLE
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Команда JLE выполняет короткий переход, если первый операнд МЕНЬШЕ второго операнда или РАВЕН ему при выполнении операции сравнения с помощью команды CMP.
Синтаксис команды JLE:
JLE МЕТКА
О метках я рассказывал в статье о команде JMP. Повторяться не буду.
Инструкция JLE проверяет флаги SF, OF и ZF. Переход выполняется, если
- SF не равен OF
- или ZF = 1
Сама же инструкция JLE при работе никакие флаги не изменяет.
Инструкция JLE входит в список команд условного перехода, но, в отличие от многих из этих команд, может работать и с отрицательными числами.
Если вы помните, то команда JBE делает то же самое, то есть выполняет переход, если первый операнд меньше или равен второму. Однако команда JBE может работать только с положительными числами, в то время как JLE - как с положительными, так и с отрицательными.
Пример использования команды JLE приведён ниже:
.model tiny .code ORG 100h start: MOV AL, -5 ; AL = -5 MOV AH, 0 ; AH = 0 CMP AL, AH ; AL < AH, ZF = 0, CF = 0 JBE lblJBE ;Так как AL < AH, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ ;Но команда JBE не работает с отрицательными числами, ;поэтому следующие инструкции БУДУТ выполнены, ;а перехода к метке lblJBE НЕ будет MOV AH, 20 lblJBE: MOV AL, -5 ; AL = -5 MOV AH, 0 ; AH = 6 CMP AL, AH ; AL < AH, ZF = 0, CF = 1 JLE lblJLE ;Так как AL < AH, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ ;Поэтому следующие инструкции НЕ будут выполнены, ;а будет переход сразу к метке lblJLE MOV AH, 20 lblJLE: MOV AH, 15 END start
Для сравнения здесь также показана инструкция JBE с теми же параметрами. Однако, в случае с JBE не будет перехода к метке, хотя AL < AH, потому что инструкция JBE не работает с отрицательными числами.
А вот команда JLE выполнит переход к метке, потому что она сможет понять, что в AL находится отрицательное значение, которое, разумеется, меньше нуля (меньше числа в регистре AH).
Всё остальное подробно расписано комментариях, поэтому что-то ещё добавлять нет смысла. Если нужно более подробно, то см. видео выше.
В конце, как всегда, расскажу, почему эта команда ассемблера называется JLE. Буква J - это первая буква слова слова JUMP (прыжок, переход), буква L - это первая буква слова LESS (меньше, менее, ниже). А буква Е - это первая буква слова EQUAL (одинаковый, равный). Таким образом набор слов, от которых взяты первые буквы имени команды JLE, можно перевести как “переход, если меньше или равно”.
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |