Команда 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, можно перевести как “переход, если меньше или равно”.



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

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