Инструкция JB


Что такое JavaScript Что такое JavaScript

Если вы интересуетесь программированием вообще, и сайтостроением в частности, то вы наверняка слышали слово JavaScript. И, если вы до сих пор не узнали толком, что же это такое, то пришло время сделать это. Подробнее...

Инструкция 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 (низкий). То есть название этой команды можно вольно перевести как “переход, если ниже (меньше)”.



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика