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